ATC: fix atc command

# fix atc command

## syntax

fix <fixID> <group> atc <type> <parameter_file>

- fixID = name of fix
- group = name of group fix is to be applied
- type
  = thermal : thermal coupling with fields: temperature
  = two_temperature : electron-phonon coupling with field: temperature and electron_temperature
  = hardy : on-the-fly post-processing using kernel localization functions (see "related" section for possible fields)
  = field : on-the-fly post-processing using mesh-based localization functions (see "related" section for possible fields)
- parameter_file = name of the file with material parameters.
  note: Neither hardy nor field requires a parameter file

## examples

`fix AtC internal atc thermal Ar_thermal.dat`
`fix AtC internal atc two_temperature Ar_ttm.mat`
`fix AtC internal atc hardy`
`fix AtC internal atc field`

## description

This fix is the beginning to creating a coupled FE/MD simulation and/or an on-the-fly estimation of continuum fields. The coupled versions of this fix do Verlet integration and the /post-processing does not. After instantiating this fix, several other fix_modify commands will be needed to set up the problem, e.g. define the finite element mesh and prescribe initial and boundary conditions.

The following coupling example is typical, but non-exhaustive:

`# ... commands to create and initialize the MD system
`

`# initial fix to designate coupling type and group to apply it to
# tag group physics material_file
fix AtC internal atc thermal Ar_thermal.mat
# create a uniform 12 x 2 x 2 mesh that covers region contain the group
# nx ny nz region periodicity
fix_modify AtC mesh create 12 2 2 mdRegion f p p
# specify the control method for the type of coupling
# physics control_type
fix_modify AtC thermal control flux
# specify the initial values for the empirical field "temperature"
# field node_group value
fix_modify AtC initial temperature all 30.
# create an output stream for nodal fields
# filename output_frequency
fix_modify AtC output atc_fe_output 100
`

`run 1000
`

likewise for this post-processing example:

`# ... commands to create and initialize the MD system
`

`# initial fix to designate post-processing and the group to apply it to
# no material file is allowed nor required
fix AtC internal atc hardy
# for hardy fix, specific kernel function (function type and range) to # be used as a localization function
fix AtC kernel quartic_sphere 10.0
# create a uniform 1 x 1 x 1 mesh that covers region contain the group
# with periodicity this effectively creats a system average
fix_modify AtC mesh create 1 1 1 box p p p
# change from default lagrangian map to eulerian
# refreshed every 100 steps
fix_modify AtC atom_element_map eulerian 100
# start with no field defined
# add mass density, potential energy density, stress and temperature
fix_modify AtC fields add density energy stress temperature
# create an output stream for nodal fields
# filename output_frequency
fix_modify AtC output nvtFE 100 text
`

`run 1000
`

the mesh's linear interpolation functions can be used as the localization function
by using the field option:

`fix AtC internal atc field
fix_modify AtC mesh create 1 1 1 box p p p
...
`

Note coupling and post-processing can be combined in the same simulations using separate fixes.
For detailed exposition of the theory and algorithms please see:

- Wagner, GJ; Jones, RE; Templeton, JA; Parks, MA, An atomistic-to-continuum coupling method for heat transfer in solids. Special Issue of Computer Methods and Applied Mechanics (2008) 197:3351.
- Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, Calculation of stress in atomistic simulation. Special Issue of Modelling and Simulation in Materials Science and Engineering (2004), 12:S319.
- Zimmerman, JA; Jones, RE; Templeton, JA, A material frame approach for evaluating continuum variables in atomistic simulations. Journal of Computational Physics (2010), 229:2364.
- Templeton, JA; Jones, RE; Wagner, GJ, Application of a field-based method to spatially varying thermal transport problems in molecular dynamics. Modelling and Simulation in Materials Science and Engineering (2010), 18:085007.
- Jones, RE; Templeton, JA; Wagner, GJ; Olmsted, D; Modine, JA, Electron transport enhanced molecular dynamics for metals and semi-metals. International Journal for Numerical Methods in Engineering (2010), 83:940.
- Templeton, JA; Jones, RE; Lee, JW; Zimmerman, JA; Wong, BM, A long-range electric field solver for molecular dynamics based on atomistic-to-continuum modeling. Journal of Chemical Theory and Computation (2011), 7:1736.
- Mandadapu, KK; Templeton, JA; Lee, JW, Polarization as a field variable from molecular dynamics simulations. Journal of Chemical Physics (2013), 139:054115.

Please refer to the standard finite element (FE) texts, e.g. T.J.R Hughes The finite element method , Dover 2003, for the basics of FE simulation.

## restrictions

Thermal and two_temperature (coupling) types use a Verlet time-integration algorithm. The hardy type does not contain its own time-integrator and must be used with a separate fix that does contain one, e.g. nve, nvt, etc.

Currently,

- the coupling is restricted to thermal physics
- the FE computations are done in serial on each processor.

## related

fix_modify commands for setup:

- fix_modify AtC mesh create
- fix_modify AtC mesh quadrature
- fix_modify AtC mesh read
- fix_modify AtC mesh write
- fix_modify AtC mesh create_nodeset
- fix_modify AtC mesh add_to_nodeset
- fix_modify AtC mesh create_faceset box
- fix_modify AtC mesh create_faceset plane
- fix_modify AtC mesh create_elementset
- fix_modify AtC mesh delete_elements
- fix_modify AtC mesh nodeset_to_elementset
- fix_modify AtC boundary
- fix_modify AtC internal_quadrature
- fix_modify AtC time_integration (thermal)
- fix_modify AtC time_integration (momentum)
- fix_modify AtC extrinsic electron_integration
- fix_modify AtC internal_element_set
- fix_modify AtC decomposition

fix_modify commands for boundary and initial conditions:

- fix_modify AtC initial
- fix_modify AtC fix
- fix_modify AtC unfix
- fix_modify AtC fix_flux
- fix_modify AtC unfix_flux
- fix_modify AtC source
- fix_modify AtC remove_source

fix_modify commands for control and filtering:

- fix_modify AtC control
- fix_modify AtC control thermal
- fix_modify AtC control thermal correction_max_iterations
- fix_modify AtC control momentum
- fix_modify AtC control localized_lambda
- fix_modify AtC control lumped_lambda_solve
- fix_modify AtC control mask_direction
- fix_modify AtC filter
- fix_modify AtC filter scale
- fix_modify AtC filter type
- fix_modify AtC equilibrium_start
- fix_modify AtC extrinsic exchange
- fix_modify AtC poisson_solver

fix_modify commands for output:

- fix_modify AtC output
- fix_modify AtC output nodeset
- fix_modify AtC output elementset
- fix_modify AtC output boundary_integral
- fix_modify AtC output contour_integral
- fix_modify AtC mesh output
- fix_modify AtC write_restart
- fix_modify AtC read_restart

fix_modify commands for post-processing:

- fix_modify AtC kernel
- fix_modify AtC fields
- fix_modify AtC gradients
- fix_modify AtC rates
- fix_modify AtC computes
- fix_modify AtC on_the_fly
- fix_modify AtC pair_interactions/bond_interactions
- fix_modify AtC sample_frequency
- fix_modify AtC set

miscellaneous fix_modify commands:

- fix_modify AtC atom_element_map
- fix_modify AtC atom_weight
- fix_modify AtC write_atom_weights
- fix_modify AtC reset_time
- fix_modify AtC reset_atomic_reference_positions
- fix_modify AtC fe_md_boundary
- fix_modify AtC boundary_faceset
- fix_modify AtC consistent_fe_initialization
- fix_modify AtC mass_matrix
- fix_modify AtC material
- fix_modify AtC atomic_charge
- fix_modify AtC source_integration
- fix_modify AtC temperature_definition
- fix_modify AtC track_displacement
- fix_modify AtC boundary_dynamics
- fix_modify AtC add_species
- fix_modify AtC add_molecule
- fix_modify AtC remove_species
- fix_modify AtC remove_molecule

Note: a set of example input files with the attendant material files are included with this package

## default

none