git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@7088 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2011-10-13 13:31:47 +00:00
parent d2a730bc40
commit d8df399c7f
2 changed files with 236 additions and 152 deletions

View File

@ -142,44 +142,49 @@ features that can be added in the manner just described:
<A NAME = "mod_1"></A><H4>10.1 Atom styles
</H4>
<P>Classes that define an atom style are derived from the Atom class.
The atom style determines what quantities are associated with an atom.
A new atom style can be created if one of the existing atom styles
does not define all the arrays you need to store and communicate with
atoms.
<P>Classes that define an atom style are derived from the AtomVec class
and managed by the Atom class. The atom style determines what
quantities are associated with an atom. A new atom style can be
created if one of the existing atom styles does not define all
the arrays you need to store and communicate with atoms.
</P>
<P>Atom_vec_atomic.cpp is a simple example of an atom style.
</P>
<P>Here is a brief description of methods you define in your new derived
class. See atom.h for details.
class. See atom_vec.h for details.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >grow</TD><TD > re-allocate atom arrays to longer lengths</TD></TR>
<TR><TD >copy</TD><TD > copy info for one atom to another atom's array locations</TD></TR>
<TR><TD >pack_comm</TD><TD > store an atom's info in a buffer communicated every timestep</TD></TR>
<TR><TD >pack_comm_vel</TD><TD > add velocity info to buffer</TD></TR>
<TR><TD >pack_comm_one</TD><TD > store extra info unique to this atom style</TD></TR>
<TR><TD >unpack_comm</TD><TD > retrieve an atom's info from the buffer</TD></TR>
<TR><TD >unpack_comm_vel</TD><TD > also retrieve velocity info</TD></TR>
<TR><TD >unpack_comm_one</TD><TD > retreive extra info unique to this atom style</TD></TR>
<TR><TD >pack_reverse</TD><TD > store an atom's info in a buffer communicating partial forces</TD></TR>
<TR><TD >pack_reverse_one</TD><TD > store extra info unique to this atom style</TD></TR>
<TR><TD >unpack_reverse</TD><TD > retrieve an atom's info from the buffer</TD></TR>
<TR><TD >unpack_reverse_one</TD><TD > retreive extra info unique to this atom style</TD></TR>
<TR><TD >pack_border</TD><TD > store an atom's info in a buffer communicated on neighbor re-builds</TD></TR>
<TR><TD >pack_border_vel</TD><TD > add velocity info to buffer</TD></TR>
<TR><TD >pack_border_one</TD><TD > store extra info unique to this atom style</TD></TR>
<TR><TD >unpack_border</TD><TD > retrieve an atom's info from the buffer</TD></TR>
<TR><TD >unpack_border_vel</TD><TD > also retrieve velocity info</TD></TR>
<TR><TD >unpack_border_one</TD><TD > retreive extra info unique to this atom style</TD></TR>
<TR><TD >pack_exchange</TD><TD > store all an atom's info to migrate to another processor</TD></TR>
<TR><TD >unpack_exchange</TD><TD > retrieve an atom's info from the buffer</TD></TR>
<TR><TD >size_restart</TD><TD > number of restart quantities associated with proc's atoms</TD></TR>
<TR><TD >pack_restart</TD><TD > pack atom quantities into a buffer</TD></TR>
<TR><TD >unpack_restart</TD><TD > unpack atom quantities from a buffer</TD></TR>
<TR><TD >create_atom</TD><TD > create an individual atom of this style</TD></TR>
<TR><TD >data_atom</TD><TD > parse an atom line from the data file</TD></TR>
<TR><TD >memory_usage</TD><TD > tally memory allocated by atom arrays
<TR><TD >init</TD><TD > one time setup (optional)</TD></TR>
<TR><TD >grow</TD><TD > re-allocate atom arrays to longer lengths (required)</TD></TR>
<TR><TD >grow_reset</TD><TD > make array pointers in Atom and AtomVec classes consistent (required)</TD></TR>
<TR><TD >copy</TD><TD > copy info for one atom to another atom's array locations (required)</TD></TR>
<TR><TD >pack_comm</TD><TD > store an atom's info in a buffer communicated every timestep (required)</TD></TR>
<TR><TD >pack_comm_vel</TD><TD > add velocity info to communication buffer (required)</TD></TR>
<TR><TD >pack_comm_hybrid</TD><TD > store extra info unique to this atom style (optional)</TD></TR>
<TR><TD >unpack_comm</TD><TD > retrieve an atom's info from the buffer (required)</TD></TR>
<TR><TD >unpack_comm_vel</TD><TD > also retrieve velocity info (required)</TD></TR>
<TR><TD >unpack_comm_hybrid</TD><TD > retreive extra info unique to this atom style (optional)</TD></TR>
<TR><TD >pack_reverse</TD><TD > store an atom's info in a buffer communicating partial forces (required)</TD></TR>
<TR><TD >pack_reverse_hybrid</TD><TD > store extra info unique to this atom style (optional)</TD></TR>
<TR><TD >unpack_reverse</TD><TD > retrieve an atom's info from the buffer (required)</TD></TR>
<TR><TD >unpack_reverse_hybrid</TD><TD > retreive extra info unique to this atom style (optional)</TD></TR>
<TR><TD >pack_border</TD><TD > store an atom's info in a buffer communicated on neighbor re-builds (required)</TD></TR>
<TR><TD >pack_border_vel</TD><TD > add velocity info to buffer (required)</TD></TR>
<TR><TD >pack_border_hybrid</TD><TD > store extra info unique to this atom style (optional)</TD></TR>
<TR><TD >unpack_border</TD><TD > retrieve an atom's info from the buffer (required)</TD></TR>
<TR><TD >unpack_border_vel</TD><TD > also retrieve velocity info (required)</TD></TR>
<TR><TD >unpack_border_hybrid</TD><TD > retreive extra info unique to this atom style (optional)</TD></TR>
<TR><TD >pack_exchange</TD><TD > store all an atom's info to migrate to another processor (required)</TD></TR>
<TR><TD >unpack_exchange</TD><TD > retrieve an atom's info from the buffer (required)</TD></TR>
<TR><TD >size_restart</TD><TD > number of restart quantities associated with proc's atoms (required)</TD></TR>
<TR><TD >pack_restart</TD><TD > pack atom quantities into a buffer (required)</TD></TR>
<TR><TD >unpack_restart</TD><TD > unpack atom quantities from a buffer (required)</TD></TR>
<TR><TD >create_atom</TD><TD > create an individual atom of this style (required)</TD></TR>
<TR><TD >data_atom</TD><TD > parse an atom line from the data file (required)</TD></TR>
<TR><TD >data_atom_hybrid</TD><TD > parse additional atom info unique to this atom style (optional)</TD></TR>
<TR><TD >data_vel</TD><TD > parse one line of velocity information from data file (optional)</TD></TR>
<TR><TD >data_vel_hybrid</TD><TD > parse additional velocity data unique to this atom style (optional)</TD></TR>
<TR><TD >memory_usage</TD><TD > tally memory allocated by atom arrays (required)
</TD></TR></TABLE></DIV>
<P>The constructor of the derived class sets values for several variables
@ -200,16 +205,21 @@ add new potentials to LAMMPS.
the harmonic forms of the angle, dihedral, and improper style
commands.
</P>
<P>Here is a brief description of methods you define in your new derived
bond class. See bond.h, angle.h, dihedral.h, and improper.h for
details.
<P>Here is a brief description of common methods you define in your
new derived class. See bond.h, angle.h, dihedral.h, and improper.h
for details and specific additional methods.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >compute</TD><TD > compute the molecular interactions</TD></TR>
<TR><TD >coeff</TD><TD > set coefficients for one bond type</TD></TR>
<TR><TD >equilibrium_distance</TD><TD > length of bond, used by SHAKE</TD></TR>
<TR><TD >write & read_restart</TD><TD > writes/reads coeffs to restart files</TD></TR>
<TR><TD >single</TD><TD > force and energy of a single bond
<TR><TD >init</TD><TD > check if all coefficients are set, calls <I>init_style</I> (optional)</TD></TR>
<TR><TD >init_style</TD><TD > check if style specific conditions are met (optional)</TD></TR>
<TR><TD >compute</TD><TD > compute the molecular interactions (required)</TD></TR>
<TR><TD >settings</TD><TD > apply global settings for all types (optional)</TD></TR>
<TR><TD >coeff</TD><TD > set coefficients for one type (required)</TD></TR>
<TR><TD >equilibrium_distance</TD><TD > length of bond, used by SHAKE (required, bond only)</TD></TR>
<TR><TD >equilibrium_angle</TD><TD > opening of angle, used by SHAKE (required, angle only)</TD></TR>
<TR><TD >write & read_restart</TD><TD > writes/reads coeffs to restart files (required)</TD></TR>
<TR><TD >single</TD><TD > force and energy of a single bond or angle (required, bond or angle only)</TD></TR>
<TR><TD >memory_usage</TD><TD > tally memory allocated by the style (optional)
</TD></TR></TABLE></DIV>
<HR>
@ -230,14 +240,21 @@ per-atom kinetic energy.
class. See compute.h for details.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >compute_scalar</TD><TD > compute a scalar quantity</TD></TR>
<TR><TD >compute_vector</TD><TD > compute a vector of quantities</TD></TR>
<TR><TD >compute_peratom</TD><TD > compute one or more quantities per atom</TD></TR>
<TR><TD >pack_comm</TD><TD > pack a buffer with items to communicate</TD></TR>
<TR><TD >unpack_comm</TD><TD > unpack the buffer</TD></TR>
<TR><TD >pack_reverse</TD><TD > pack a buffer with items to reverse communicate</TD></TR>
<TR><TD >unpack_reverse</TD><TD > unpack the buffer</TD></TR>
<TR><TD >memory_usage</TD><TD > tally memory usage
<TR><TD >init</TD><TD > perform one time setup (required)</TD></TR>
<TR><TD >init_list</TD><TD > neighbor list setup, if needed (optional)</TD></TR>
<TR><TD >compute_scalar</TD><TD > compute a scalar quantity (optional)</TD></TR>
<TR><TD >compute_vector</TD><TD > compute a vector of quantities (optional)</TD></TR>
<TR><TD >compute_peratom</TD><TD > compute one or more quantities per atom (optional)</TD></TR>
<TR><TD >compute_local</TD><TD > compute one or more quantities per processor (optional)</TD></TR>
<TR><TD >pack_comm</TD><TD > pack a buffer with items to communicate (optional)</TD></TR>
<TR><TD >unpack_comm</TD><TD > unpack the buffer (optional)</TD></TR>
<TR><TD >pack_reverse</TD><TD > pack a buffer with items to reverse communicate (optional)</TD></TR>
<TR><TD >unpack_reverse</TD><TD > unpack the buffer (optional)</TD></TR>
<TR><TD >remove_bias</TD><TD > remove velocity bias from one atom (optional)</TD></TR>
<TR><TD >remove_bias_all</TD><TD > remove velocity bias from all atoms in group (optional)</TD></TR>
<TR><TD >restore_bias</TD><TD > restore velocity bias for one atom after remove_bias (optional)</TD></TR>
<TR><TD >restore_bias_all</TD><TD > same as before, but for all atoms in group (optional)</TD></TR>
<TR><TD >memory_usage</TD><TD > tally memory usage (optional)
</TD></TR></TABLE></DIV>
<HR>
@ -295,34 +312,59 @@ implement.
derived class. See fix.h for details.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR><TD >setmask</TD><TD > determines when the fix is called during the timestep</TD></TR>
<TR><TD >init</TD><TD > initialization before a run</TD></TR>
<TR><TD >setup</TD><TD > called immediately before the 1st timestep</TD></TR>
<TR><TD >initial_integrate</TD><TD > called at very beginning of each timestep</TD></TR>
<TR><TD >pre_exchange</TD><TD > called before atom exchange on re-neighboring steps</TD></TR>
<TR><TD >pre_neighbor</TD><TD > called before neighbor list build</TD></TR>
<TR><TD >post_force</TD><TD > called after pair & molecular forces are computed</TD></TR>
<TR><TD >final_integrate</TD><TD > called at end of each timestep</TD></TR>
<TR><TD >end_of_step</TD><TD > called at very end of timestep</TD></TR>
<TR><TD >write_restart</TD><TD > dumps fix info to restart file</TD></TR>
<TR><TD >restart</TD><TD > uses info from restart file to re-initialize the fix</TD></TR>
<TR><TD >grow_arrays</TD><TD > allocate memory for atom-based arrays used by fix</TD></TR>
<TR><TD >copy_arrays</TD><TD > copy atom info when an atom migrates to a new processor</TD></TR>
<TR><TD >memory_usage</TD><TD > report memory used by fix</TD></TR>
<TR><TD >pack_exchange</TD><TD > store atom's data in a buffer</TD></TR>
<TR><TD >unpack_exchange</TD><TD > retrieve atom's data from a buffer</TD></TR>
<TR><TD >pack_restart</TD><TD > store atom's data for writing to restart file</TD></TR>
<TR><TD >unpack_restart</TD><TD > retrieve atom's data from a restart file buffer</TD></TR>
<TR><TD >size_restart</TD><TD > size of atom's data</TD></TR>
<TR><TD >maxsize_restart</TD><TD > max size of atom's data</TD></TR>
<TR><TD >initial_integrate_respa</TD><TD > same as initial_integrate, but for rRESPA</TD></TR>
<TR><TD >post_force_respa</TD><TD > same as post_force, but for rRESPA</TD></TR>
<TR><TD >final_integrate_respa</TD><TD > same as final_integrate, but for rRESPA</TD></TR>
<TR><TD >pack_comm</TD><TD > pack a buffer to communicate a per-atom quantity</TD></TR>
<TR><TD >unpack_comm</TD><TD > unpack a buffer to communicate a per-atom quantity</TD></TR>
<TR><TD >pack_reverse_comm</TD><TD > pack a buffer to reverse communicate a per-atom quantity</TD></TR>
<TR><TD >unpack_reverse_comm</TD><TD > unpack a buffer to reverse communicate a per-atom quantity</TD></TR>
<TR><TD >thermo</TD><TD > compute quantities for thermodynamic output
<TR><TD >setmask</TD><TD > determines when the fix is called during the timestep (required)</TD></TR>
<TR><TD >init</TD><TD > initialization before a run (optional)</TD></TR>
<TR><TD >setup_pre_exchange</TD><TD > called before atom exchange in setup (optional)</TD></TR>
<TR><TD >setup_pre_force</TD><TD > called before force computation in setup (optional)</TD></TR>
<TR><TD >setup</TD><TD > called immediately before the 1st timestep and after forces are computed (optional)</TD></TR>
<TR><TD >min_setup_pre_force</TD><TD > like setup_pre_force, but for minimizations instead of MD runs (optional)</TD></TR>
<TR><TD >min_setup</TD><TD > like setup, but for minimizations instead of MD runs (optional)</TD></TR>
<TR><TD >initial_integrate</TD><TD > called at very beginning of each timestep (optional)</TD></TR>
<TR><TD >pre_exchange</TD><TD > called before atom exchange on re-neighboring steps (optional)</TD></TR>
<TR><TD >pre_neighbor</TD><TD > called before neighbor list build (optional)</TD></TR>
<TR><TD >pre_force</TD><TD > called after pair & molecular forces are computed (optional)</TD></TR>
<TR><TD >post_force</TD><TD > called after pair & molecular forces are computed and communicated (optional)</TD></TR>
<TR><TD >final_integrate</TD><TD > called at end of each timestep (optional)</TD></TR>
<TR><TD >end_of_step</TD><TD > called at very end of timestep (optional)</TD></TR>
<TR><TD >write_restart</TD><TD > dumps fix info to restart file (optional)</TD></TR>
<TR><TD >restart</TD><TD > uses info from restart file to re-initialize the fix (optional)</TD></TR>
<TR><TD >grow_arrays</TD><TD > allocate memory for atom-based arrays used by fix (optional)</TD></TR>
<TR><TD >copy_arrays</TD><TD > copy atom info when an atom migrates to a new processor (optional)</TD></TR>
<TR><TD >pack_exchange</TD><TD > store atom's data in a buffer (optional)</TD></TR>
<TR><TD >unpack_exchange</TD><TD > retrieve atom's data from a buffer (optional)</TD></TR>
<TR><TD >pack_restart</TD><TD > store atom's data for writing to restart file (optional)</TD></TR>
<TR><TD >unpack_restart</TD><TD > retrieve atom's data from a restart file buffer (optional)</TD></TR>
<TR><TD >size_restart</TD><TD > size of atom's data (optional)</TD></TR>
<TR><TD >maxsize_restart</TD><TD > max size of atom's data (optional)</TD></TR>
<TR><TD >setup_pre_force_respa</TD><TD > same as setup_pre_force, but for rRESPA (optional)</TD></TR>
<TR><TD >initial_integrate_respa</TD><TD > same as initial_integrate, but for rRESPA (optional)</TD></TR>
<TR><TD >post_integrate_respa</TD><TD > called after the first half integration step is done in rRESPA (optional)</TD></TR>
<TR><TD >pre_force_respa</TD><TD > same as pre_force, but for rRESPA (optional)</TD></TR>
<TR><TD >post_force_respa</TD><TD > same as post_force, but for rRESPA (optional)</TD></TR>
<TR><TD >final_integrate_respa</TD><TD > same as final_integrate, but for rRESPA (optional)</TD></TR>
<TR><TD >min_pre_force</TD><TD > called after pair & molecular forces are computed in minimizer (optional)</TD></TR>
<TR><TD >min_post_force</TD><TD > called after pair & molecular forces are computed and communicated in minmizer (optional)</TD></TR>
<TR><TD >min_store</TD><TD > store extra data for linesearch based minimization on a LIFO stack (optional)</TD></TR>
<TR><TD >min_pushstore</TD><TD > push the minimization LIFO stack one element down (optional)</TD></TR>
<TR><TD >min_popstore</TD><TD > pop the minimization LIFO stack one element up (optional)</TD></TR>
<TR><TD >min_clearstore</TD><TD > clear minimization LIFO stack (optional)</TD></TR>
<TR><TD >min_step</TD><TD > reset or move forward on line search minimization (optional)</TD></TR>
<TR><TD >min_dof</TD><TD > report number of degrees of freedom <I>added</I> by this fix in minimization (optional)</TD></TR>
<TR><TD >max_alpha</TD><TD > report maximum allowed step size during linesearch minimization (optional)</TD></TR>
<TR><TD >pack_comm</TD><TD > pack a buffer to communicate a per-atom quantity (optional)</TD></TR>
<TR><TD >unpack_comm</TD><TD > unpack a buffer to communicate a per-atom quantity (optional)</TD></TR>
<TR><TD >pack_reverse_comm</TD><TD > pack a buffer to reverse communicate a per-atom quantity (optional)</TD></TR>
<TR><TD >unpack_reverse_comm</TD><TD > unpack a buffer to reverse communicate a per-atom quantity (optional)</TD></TR>
<TR><TD >dof</TD><TD > report number of degrees of freedom <I>removed</I> by this fix during MD (optional)</TD></TR>
<TR><TD >compute_scalar</TD><TD > return a global scalar property that the fix computes (optional)</TD></TR>
<TR><TD >compute_vector</TD><TD > return a component of a vector property that the fix computes (optional)</TD></TR>
<TR><TD >compute_array</TD><TD > return a component of an array property that the fix computes (optional)</TD></TR>
<TR><TD >deform</TD><TD > called when the box size is changed (optional)</TD></TR>
<TR><TD >reset_target</TD><TD > called when a change of the target temperature is requested during a run (optional)</TD></TR>
<TR><TD >reset_dt</TD><TD > is called when a change of the time step is requested during a run (optional)</TD></TR>
<TR><TD >modify_param</TD><TD > called when a fix_modify request is executed (optional)</TD></TR>
<TR><TD >memory_usage</TD><TD > report memory used by fix (optional)</TD></TR>
<TR><TD >thermo</TD><TD > compute quantities for thermodynamic output (optional)
</TD></TR></TABLE></DIV>
<P>Typically, only a small fraction of these methods are defined for a

View File

@ -140,43 +140,48 @@ features that can be added in the manner just described:
10.1 Atom styles :link(mod_1),h4
Classes that define an atom style are derived from the Atom class.
The atom style determines what quantities are associated with an atom.
A new atom style can be created if one of the existing atom styles
does not define all the arrays you need to store and communicate with
atoms.
Classes that define an atom style are derived from the AtomVec class
and managed by the Atom class. The atom style determines what
quantities are associated with an atom. A new atom style can be
created if one of the existing atom styles does not define all
the arrays you need to store and communicate with atoms.
Atom_vec_atomic.cpp is a simple example of an atom style.
Here is a brief description of methods you define in your new derived
class. See atom.h for details.
class. See atom_vec.h for details.
grow: re-allocate atom arrays to longer lengths
copy: copy info for one atom to another atom's array locations
pack_comm: store an atom's info in a buffer communicated every timestep
pack_comm_vel: add velocity info to buffer
pack_comm_one: store extra info unique to this atom style
unpack_comm: retrieve an atom's info from the buffer
unpack_comm_vel: also retrieve velocity info
unpack_comm_one: retreive extra info unique to this atom style
pack_reverse: store an atom's info in a buffer communicating partial forces
pack_reverse_one: store extra info unique to this atom style
unpack_reverse: retrieve an atom's info from the buffer
unpack_reverse_one: retreive extra info unique to this atom style
pack_border: store an atom's info in a buffer communicated on neighbor re-builds
pack_border_vel: add velocity info to buffer
pack_border_one: store extra info unique to this atom style
unpack_border: retrieve an atom's info from the buffer
unpack_border_vel: also retrieve velocity info
unpack_border_one: retreive extra info unique to this atom style
pack_exchange: store all an atom's info to migrate to another processor
unpack_exchange: retrieve an atom's info from the buffer
size_restart: number of restart quantities associated with proc's atoms
pack_restart: pack atom quantities into a buffer
unpack_restart: unpack atom quantities from a buffer
create_atom: create an individual atom of this style
data_atom: parse an atom line from the data file
memory_usage: tally memory allocated by atom arrays :tb(s=:)
init: one time setup (optional)
grow: re-allocate atom arrays to longer lengths (required)
grow_reset: make array pointers in Atom and AtomVec classes consistent (required)
copy: copy info for one atom to another atom's array locations (required)
pack_comm: store an atom's info in a buffer communicated every timestep (required)
pack_comm_vel: add velocity info to communication buffer (required)
pack_comm_hybrid: store extra info unique to this atom style (optional)
unpack_comm: retrieve an atom's info from the buffer (required)
unpack_comm_vel: also retrieve velocity info (required)
unpack_comm_hybrid: retreive extra info unique to this atom style (optional)
pack_reverse: store an atom's info in a buffer communicating partial forces (required)
pack_reverse_hybrid: store extra info unique to this atom style (optional)
unpack_reverse: retrieve an atom's info from the buffer (required)
unpack_reverse_hybrid: retreive extra info unique to this atom style (optional)
pack_border: store an atom's info in a buffer communicated on neighbor re-builds (required)
pack_border_vel: add velocity info to buffer (required)
pack_border_hybrid: store extra info unique to this atom style (optional)
unpack_border: retrieve an atom's info from the buffer (required)
unpack_border_vel: also retrieve velocity info (required)
unpack_border_hybrid: retreive extra info unique to this atom style (optional)
pack_exchange: store all an atom's info to migrate to another processor (required)
unpack_exchange: retrieve an atom's info from the buffer (required)
size_restart: number of restart quantities associated with proc's atoms (required)
pack_restart: pack atom quantities into a buffer (required)
unpack_restart: unpack atom quantities from a buffer (required)
create_atom: create an individual atom of this style (required)
data_atom: parse an atom line from the data file (required)
data_atom_hybrid: parse additional atom info unique to this atom style (optional)
data_vel: parse one line of velocity information from data file (optional)
data_vel_hybrid: parse additional velocity data unique to this atom style (optional)
memory_usage: tally memory allocated by atom arrays (required) :tb(s=:)
The constructor of the derived class sets values for several variables
that you must set when defining a new atom style, which are documented
@ -196,15 +201,20 @@ Bond_harmonic.cpp is the simplest example of a bond style. Ditto for
the harmonic forms of the angle, dihedral, and improper style
commands.
Here is a brief description of methods you define in your new derived
bond class. See bond.h, angle.h, dihedral.h, and improper.h for
details.
Here is a brief description of common methods you define in your
new derived class. See bond.h, angle.h, dihedral.h, and improper.h
for details and specific additional methods.
compute: compute the molecular interactions
coeff: set coefficients for one bond type
equilibrium_distance: length of bond, used by SHAKE
write & read_restart: writes/reads coeffs to restart files
single: force and energy of a single bond :tb(s=:)
init: check if all coefficients are set, calls {init_style} (optional)
init_style: check if style specific conditions are met (optional)
compute: compute the molecular interactions (required)
settings: apply global settings for all types (optional)
coeff: set coefficients for one type (required)
equilibrium_distance: length of bond, used by SHAKE (required, bond only)
equilibrium_angle: opening of angle, used by SHAKE (required, angle only)
write & read_restart: writes/reads coeffs to restart files (required)
single: force and energy of a single bond or angle (required, bond or angle only)
memory_usage: tally memory allocated by the style (optional) :tb(s=:)
:line
@ -223,14 +233,21 @@ per-atom kinetic energy.
Here is a brief description of methods you define in your new derived
class. See compute.h for details.
compute_scalar: compute a scalar quantity
compute_vector: compute a vector of quantities
compute_peratom: compute one or more quantities per atom
pack_comm: pack a buffer with items to communicate
unpack_comm: unpack the buffer
pack_reverse: pack a buffer with items to reverse communicate
unpack_reverse: unpack the buffer
memory_usage: tally memory usage :tb(s=:)
init: perform one time setup (required)
init_list: neighbor list setup, if needed (optional)
compute_scalar: compute a scalar quantity (optional)
compute_vector: compute a vector of quantities (optional)
compute_peratom: compute one or more quantities per atom (optional)
compute_local: compute one or more quantities per processor (optional)
pack_comm: pack a buffer with items to communicate (optional)
unpack_comm: unpack the buffer (optional)
pack_reverse: pack a buffer with items to reverse communicate (optional)
unpack_reverse: unpack the buffer (optional)
remove_bias: remove velocity bias from one atom (optional)
remove_bias_all: remove velocity bias from all atoms in group (optional)
restore_bias: restore velocity bias for one atom after remove_bias (optional)
restore_bias_all: same as before, but for all atoms in group (optional)
memory_usage: tally memory usage (optional) :tb(s=:)
:line
@ -283,34 +300,59 @@ implement.
Here is a brief description of methods you can define in your new
derived class. See fix.h for details.
setmask: determines when the fix is called during the timestep
init: initialization before a run
setup: called immediately before the 1st timestep
initial_integrate: called at very beginning of each timestep
pre_exchange: called before atom exchange on re-neighboring steps
pre_neighbor: called before neighbor list build
post_force: called after pair & molecular forces are computed
final_integrate: called at end of each timestep
end_of_step: called at very end of timestep
write_restart: dumps fix info to restart file
restart: uses info from restart file to re-initialize the fix
grow_arrays: allocate memory for atom-based arrays used by fix
copy_arrays: copy atom info when an atom migrates to a new processor
memory_usage: report memory used by fix
pack_exchange: store atom's data in a buffer
unpack_exchange: retrieve atom's data from a buffer
pack_restart: store atom's data for writing to restart file
unpack_restart: retrieve atom's data from a restart file buffer
size_restart: size of atom's data
maxsize_restart: max size of atom's data
initial_integrate_respa: same as initial_integrate, but for rRESPA
post_force_respa: same as post_force, but for rRESPA
final_integrate_respa: same as final_integrate, but for rRESPA
pack_comm: pack a buffer to communicate a per-atom quantity
unpack_comm: unpack a buffer to communicate a per-atom quantity
pack_reverse_comm: pack a buffer to reverse communicate a per-atom quantity
unpack_reverse_comm: unpack a buffer to reverse communicate a per-atom quantity
thermo: compute quantities for thermodynamic output :tb(s=:)
setmask: determines when the fix is called during the timestep (required)
init: initialization before a run (optional)
setup_pre_exchange: called before atom exchange in setup (optional)
setup_pre_force: called before force computation in setup (optional)
setup: called immediately before the 1st timestep and after forces are computed (optional)
min_setup_pre_force: like setup_pre_force, but for minimizations instead of MD runs (optional)
min_setup: like setup, but for minimizations instead of MD runs (optional)
initial_integrate: called at very beginning of each timestep (optional)
pre_exchange: called before atom exchange on re-neighboring steps (optional)
pre_neighbor: called before neighbor list build (optional)
pre_force: called after pair & molecular forces are computed (optional)
post_force: called after pair & molecular forces are computed and communicated (optional)
final_integrate: called at end of each timestep (optional)
end_of_step: called at very end of timestep (optional)
write_restart: dumps fix info to restart file (optional)
restart: uses info from restart file to re-initialize the fix (optional)
grow_arrays: allocate memory for atom-based arrays used by fix (optional)
copy_arrays: copy atom info when an atom migrates to a new processor (optional)
pack_exchange: store atom's data in a buffer (optional)
unpack_exchange: retrieve atom's data from a buffer (optional)
pack_restart: store atom's data for writing to restart file (optional)
unpack_restart: retrieve atom's data from a restart file buffer (optional)
size_restart: size of atom's data (optional)
maxsize_restart: max size of atom's data (optional)
setup_pre_force_respa: same as setup_pre_force, but for rRESPA (optional)
initial_integrate_respa: same as initial_integrate, but for rRESPA (optional)
post_integrate_respa: called after the first half integration step is done in rRESPA (optional)
pre_force_respa: same as pre_force, but for rRESPA (optional)
post_force_respa: same as post_force, but for rRESPA (optional)
final_integrate_respa: same as final_integrate, but for rRESPA (optional)
min_pre_force: called after pair & molecular forces are computed in minimizer (optional)
min_post_force: called after pair & molecular forces are computed and communicated in minmizer (optional)
min_store: store extra data for linesearch based minimization on a LIFO stack (optional)
min_pushstore: push the minimization LIFO stack one element down (optional)
min_popstore: pop the minimization LIFO stack one element up (optional)
min_clearstore: clear minimization LIFO stack (optional)
min_step: reset or move forward on line search minimization (optional)
min_dof: report number of degrees of freedom {added} by this fix in minimization (optional)
max_alpha: report maximum allowed step size during linesearch minimization (optional)
pack_comm: pack a buffer to communicate a per-atom quantity (optional)
unpack_comm: unpack a buffer to communicate a per-atom quantity (optional)
pack_reverse_comm: pack a buffer to reverse communicate a per-atom quantity (optional)
unpack_reverse_comm: unpack a buffer to reverse communicate a per-atom quantity (optional)
dof: report number of degrees of freedom {removed} by this fix during MD (optional)
compute_scalar: return a global scalar property that the fix computes (optional)
compute_vector: return a component of a vector property that the fix computes (optional)
compute_array: return a component of an array property that the fix computes (optional)
deform: called when the box size is changed (optional)
reset_target: called when a change of the target temperature is requested during a run (optional)
reset_dt: is called when a change of the time step is requested during a run (optional)
modify_param: called when a fix_modify request is executed (optional)
memory_usage: report memory used by fix (optional)
thermo: compute quantities for thermodynamic output (optional) :tb(s=:)
Typically, only a small fraction of these methods are defined for a
particular fix. Setmask is mandatory, as it determines when the fix