subdomain

Syntax

subdomain {grain_id subdomain_number}
  • grain_id, subdomain_number = positve integer

Examples

subdomain {1 1}
subdomain {1 2} {2 3}
subdomain {1 1 2 1 3 1}

Description

This command sets the number of subdomains in each grain. Note that the curly brackets { and } in the syntax/examples are to separate different grains, the number of which is grain_number; all brackets should not be included in preparing cac.in.

In CAC, a unit is either the primitive unit cell of the lattice (for the atomistic domain) or a finite element (for the coarse-grained domain). Finite elements of different sizes are different types of unit. In a CAC simulation cell, each spatial region consisting of the same type of unit is a subdomain, as illustrated in the figure below:

subdomain

Note that in this figure, which is Fig. 4 of Xu et al., 2018, the atoms in subdomain i/grain I and subdomain i/grain III are employed to fill in the otherwise jagged interstices, because either boolean_y = f or y = p.

The size of each subdomain and the unit type in each subdomain in each grain is specified in the unit_num and unit_type commands, respectively. The grains and subdomains are stacked along a prescribed direction. The three examples above correspond to the three examples in the unit_num and unit_type commands:

  • In the first example, there is one grain designated by the first 1, which has one subdomain designated by the second 1.
  • In the second example, there are two grains: the first grain has two subdomains designated by the first 2, the second grain has three subdomains designated by 3.
  • In the third example, there are three grains, each of which has one subdomain, designated by the second 1, the third 1, and the fourth 1, respectively.

The maximum grain_id must be larger than or equal to grain_number. All information related to grain_id that is larger than grain_number is discarded.

In the unit_num and unit_type commands, the maximum subdomain_id in each grain must equal the corresponding subdomain_number.

This command becomes irrelevant when boolean_restart = t, in which case there is no need for the subdomain information.

box_init.f90

Default

subdomain 1 1