INitial commit of CAC code

This commit is contained in:
Alex Selimov 2024-02-17 21:51:18 -05:00
commit c8be709be9
66 changed files with 16539 additions and 0 deletions

22
docs/Commands/boundary.md Normal file
View file

@ -0,0 +1,22 @@
# boundary
```sh
boundary xyz
```
## Inputs
`xyz` - string describing the boundary conditions in which `x`, `y`, and `z` can have values of either `p` for periodic or `s` for shrink-wrapped.
## Examples
```sh
boundary ppp
boundary sps
```
## Description
Boundary sets the boundary conditions of the model being either periodic or shrink-wrapped.
Because boundary data is included within the restart file format, this command is not strictly required.
If included this command will override the boundary conditions defined within the data file.

23
docs/Commands/dump.md Normal file
View file

@ -0,0 +1,23 @@
# dump
```sh
dump id group style n fname
```
## Inputs
`id` - id for dump command
`group` - group to be dumped
`style` - dump style, currently only accepts `out`
`n` - dump every `n` steps. If `n` is `0` then the dump file is only written at the beginning and end of a minimize or run.
`fname` - file name to write to. Will strip extensions and replace with the timestep and .out.
## Example
```
```

52
docs/Commands/group.md Normal file
View file

@ -0,0 +1,52 @@
# group
```sh
group id selection shape ...
```
## Inputs
`id` - assigned id for the group.
`selection` - either `atoms`, `elements`, or `all`.
`shape` - either `block`, `sphere`, or `type`.
**Additional arguments depend on the group shape passed and are listed below:**
```sh
group id selection block xlo xhi ylo yhi zlo zhi
```
where `{x,y,z}lo` are the lower bounds along `x,y,z` and `{x,y,z}hi` are the upper bounds along `x,y,z`.
```sh
group id selection sphere x y z r
```
where `x y z` define the centroid of the sphere and `r` defines the radius of the sphere.
```sh
group id selection type n
```
where `n` is a number which selects the `n`th atom type.
## Examples
```sh
group tophalf all block -inf inf -inf inf inf*0.5 inf
group precip atoms sphere 100 78 78 10
group Ni atoms type 2
```
## Description
The group option is used in conjunction with other commands which require a group input.
**A default `all` group is defined which contains all atoms and elements.**
A subsection of all atoms or elements can be selected using the group command.
`id` is used to refer to the group in other commands.
`selection` determines which element types are selected within the group.
A group can be defined containing only `atoms`, `elements`, or `both`.
If element types are within the bounds of the group but are not specified with `selection` they are not defined as members of the group.
All positions for the group command can be specified using position specifications described [here](../Misc/position.md).

View file

@ -0,0 +1,25 @@
# min_style
```sh
min_style minimizer
```
## Inputs
`minimizer` - Either `fire` or `cg`.
## Examples
```sh
min_style fire
min_style cg
```
## Description
This code sets the minimizer for future `minimize` commands.
Currently CAC has implemented both conjugate gradient minimization, `cg`, and the fast inertial relaxation engine [1], `fire`.
## References
[1] Guénolé, Julien et al. "Assessment and optimization of the fast inertial relaxation engine (fire) for energy minimization in atomistic simulations and its implementation in lammps" Computational Materials Science (2020)

31
docs/Commands/minimize.md Normal file
View file

@ -0,0 +1,31 @@
# minimize
```sh
minimize ftol etol max_iter
```
## Inputs
`ftol` - force tolerance
`etol` - energy tolerance
`max_iter` - maximum number of iterations to calculate before exiting.
## Examples
```sh
minimize 10d-10 10d-10 10000
```
## Description
The minimize command is used to perform energy minimization on the CAC model.
The minimization method is chosen by the [min_style](./min_style.md) command.
Minimization is considered to be complete under the following conditions:
1. \( \frac{(E_i - E_{i-1})}{E_i} < etol \), where \( i \) is the current iteration.
2. No atom has a force component greater than `ftol`
3. The number of iterations is greater than `max_iter`

21
docs/Commands/neighbor.md Normal file
View file

@ -0,0 +1,21 @@
# neighbor
```sh
neighbor skin
```
## Inputs
`skin` - The skin distance in angstrom added to the cutoff radius for construction of verlet lists.
## Examples
```sh
neighbor 1.5
```
## Description
This command specifies the additional skin distance which is used when constructing the verlet neighbor lists.
When an atom has moved greater than the half of the skin distance, then the neighbor lists are reconstructed.

View file

@ -0,0 +1,29 @@
# potential
```sh
potential pot_type file elements ...
```
## Inputs
`pot_type` - Potential type, currently accepts either "eam" for setfl formatted eam/alloy potentials, or "fs" for eam finnis sinclair style potentials.
`file` - Potential file, currently only accepts .eam.alloy style potential files
`elements ...` - List of atomic elements mapping the atom type number to atomic species. Can be excluded resulting in mapping atomic types based on ordering within the potential file.
## Examples
```sh
potential CuNi.eam.alloy Ni Cu
potential Cu_mishin1.eam.alloy
```
## Description
This command specifies the potential information.
**Currently only .eam.alloy style potentials are accepted.**
The `elements ...` portion of the code is used to map the numeric atom type to the potential file.
For the first example, `Ni Cu` maps atoms with type 1 to Ni and atoms with type 2 to Cu.
Inputting `Cu Ni` would instead reverse the order and map atoms with type 1 to Cu and vice-versa.
This can be excluded, as in the second example.
If the CuNi.eam.alloy file is ordered with Ni first and Cu second, then `potential CuNi.eam.alloy Ni Cu` is equivalent to `potential CuNi.eam.alloy`.

View file

@ -0,0 +1,24 @@
# read_data
```
read_data filename
```
## Inputs
`filename` - Input file to be read in restart format.
## Examples
```sh
read_data model_1.restart
```
## Description
Model building capabilities are not included into the CAC simulation tool.
Instead the [CAC model builder (CACmb)](https://gitlab.com/aselimov/cacmb) must be used to create models in the .restart format.
The read_data command reads in one .restart formatted data file and distributes the model across all processors.

10
docs/Commands/run.md Normal file
View file

@ -0,0 +1,10 @@
# run
```sh
run ensemble timesteps
```
## Inputs
`ensemble` - currently either `nve` or `qd`.
`timesteps` - The number of timesteps to run of dynamics

View file

@ -0,0 +1,9 @@
# setforce
```
setforce group_id fx fy fz
```
## Inputs
`group_id` - id for student

26
docs/Commands/temp.md Normal file
View file

@ -0,0 +1,26 @@
# temp
```sh
temp command group_id args
```
## Inputs
`command` - Command for temp option, either `create` or `control`.
`group_id` - Group id to apply temperature control to
**Additional arguments depend on the command passed and are listed below**
```sh
temp create group_id T_target
```
- `T_target` - Target temperature
```sh
temp control group_id T_target time_constant
```
- `T_target` - Target temperature
- `time_constant` - time constant

22
docs/Commands/thermo.md Normal file
View file

@ -0,0 +1,22 @@
# thermo
```sh
thermo step
```
## Inputs
`step` - Output every `step` steps.
## Examples
```
thermo 50
```
## Descriptions
Currently the thermo output is fixed.
For energy minimization, the thermo output contains only the energy and second norm of the global force vector.
For dynamics, the thermo output also contains the kinetic energy and the temperature.

View file

@ -0,0 +1,32 @@
# thermo_style
```sh
thermo_style args
```
## Inputs
`args` - List of thermo_style options. Acceptable options are listed below:
## Examples
```
thermo 50
```
## Descriptions
The `thermo_style` command sets the thermo output for CAC.
By default the thermostyle command only outputs the potential energy and the global force norm.
Acceptable options for thermo_style are listed below:
- `pe`: potential energy
- `fnorm`: global force norm
- `temp`: temperature
- `temp_c`: temperature in CG
- `temp_a`: temperature in atoms
- `ke`: kinetic energy
- `ke_c`: kinetic energy in CG
- `ke_a`: kinetic energy in atoms
- `lx`, `ly`, `lz`: Box dimensions in x, y, z respectively
- `px`, `py`, `pz`: Box pressure in x, y, z respectively

0
docs/Misc/position.md Normal file
View file

BIN
docs/img/CuNi_int.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

BIN
docs/img/CuNi_xyz.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
docs/img/cacmb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/img/demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

1
docs/img/demo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 135 KiB

BIN
docs/img/efilled_vtk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
docs/img/rhomb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

16
docs/index.md Normal file
View file

@ -0,0 +1,16 @@
# CAC: An implementation of the Concurrent Atomistic-Continuum method
Copyright © 2017-2018 Georgia Institute of Technology. All Rights Reserved.
CAC is an implementation of the concurrent atomistic-continuum (CAC) method [1] that allows for both dynamics and energy minimization of CAC models.
CAC is written in Fortran 2008.
For a standalone tool used to build and analyze models for simulation with CAC please see the [CAC model builder tool](https://gitlab.com/aselimov/cacmb).
This user's manual is maintained by [Alex Selimov](https://alexselimov.xyz) and [Kevin Chu](https://kvnchv.github.io/cv/). Both are current Ph.D. students of Prof. David L. McDowell at the Georgia Institute of Technology.
Click [here](./intro/getstarted.md) for the getting started guide.
## References
[1] Chen, Youping et al. "Concurrent atomistic-continuum modeling of crystalline materials" Journal of Applied Physics (2019)

1
docs/intro/getstarted.md Normal file
View file

@ -0,0 +1 @@
# Getting Started