2019-09-25 09:04:36 -04:00
# CAC_Model_Builder
2019-11-25 18:19:25 -05:00
This is a tool for building models in CAC. Commands and usage options are below. This code is intended to follow the atomsk code fairly closely.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
## Modes
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
The modes follow similarly to the modes you find when using atomsk. The modes will be listed below alongside their syntax and other usage instructions. As a note, if a mode is being used then it has to come first.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
### Mode Create
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
```
cacmb --create name element_type lattice_parameter esize
2019-09-25 20:11:10 -04:00
```
2019-11-25 18:19:25 -05:00
Mode create has the following parameters:
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
`name` - User defined name that either defines the atom type or the lattice type if using the basis option
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
`element_type` - Specifies which element type to use, this dictates the crystal being build. Current acceptable options for element_type are:
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
* FCC - Uses the Rhombohedral primitive fcc unit cell as the finite element.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
`lattice_parameter` - The lattice parameter for the crystal structure.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
`esize` - Number of atoms per edge of the finite element. A value of 2 signifies full atomistic resolution and is the lowest number acceptable.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
**Example**
2019-09-25 20:11:10 -04:00
```
2019-11-25 18:19:25 -05:00
cacmb --create Cu fcc 3.615 11
2019-09-25 20:11:10 -04:00
```
2019-11-25 18:19:25 -05:00
Creates a copper element with a lattice parameter of 3.615 with 11 atoms per side
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
#### Optional keywords
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
**Orient**
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
``` orient [hkl] [hkl] [hkl]
orient [hkl] [hkl] [hkl]
```
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
Default orientation is `[100] [010] [001]` . If this keyword is present then the user must provide the orientation matrix in form `[hkl] [hkl] [hkl]` .
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
*Example:* `orient [-112] [110] [-11-1]`
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
**Basis**
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
```
basis num atom_name x y z
```
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
Default basis has `atom_name = name` with position (0,0,0). If used then the `atom_name x y z` must be include `num` times.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
*Example:* `basis 2 Mg 0 0 0 Mg 0.5 0.288675 0.81647`
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
**Duplicate**
2019-09-25 20:11:10 -04:00
```
2019-11-25 18:19:25 -05:00
duplicate numx numy numz
2019-09-25 20:11:10 -04:00
```
2019-11-25 18:19:25 -05:00
Default duplicate is `1 1 1` . This is used to replicate the element along each dimensions. This cannot be used if the keyword dimensions is included. By default jagged edges along boundaries are filled if duplicate is greater than `1 1 1` .
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
*Example:* `duplicate 10 10 10`
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
**Dimensions**
```
dimensions dimx dimy dimz
```
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
There is no default dimensions as duplicate is the default option. This command assigns a box with user-assigned dimensions and fills it with the desired element. By default atoms fill in the jagged edges at the boundaries if the dimensions command is included.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
Example: `dimensions 100 100 100`
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
**ZigZag**
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
```
zigzag boolx booly boolz
```
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
Default zigzag is `f f f` . This command specifies whether a boundary should be left jagged (i.e. in essence not filled in). If `boolx` is `t` than the x dimension is left jagged and if it is `f` then the x dimension is filled.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
*Example:* `zigzag t f t` gives a box with jagged edges in the x and z and filled edges in the y.
2019-09-25 20:11:10 -04:00
2019-11-25 18:19:25 -05:00
**Origin**
2019-09-25 20:11:10 -04:00
```
2019-11-25 18:19:25 -05:00
origin x y z
2019-09-25 20:11:10 -04:00
```
2019-11-25 18:19:25 -05:00
Default origin is `0 0 0` . This command just sets the origin for where the simulation cell starts building.
*Example:* `origin 10 0 1`