\(\renewcommand{\AA}{\text{Å}}\)
3.7. Bond, angle, dihedral, improper styles
Classes that compute molecular interactions are derived from the Bond, Angle, Dihedral, and Improper classes. New styles can be created to add new potentials to LAMMPS.
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 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.
Required  | 
“pure” methods that must be overridden in a derived class  | 
|---|---|
compute  | 
compute the molecular interactions for all listed items  | 
coeff  | 
set coefficients for one type  | 
equilibrium_distance  | 
length of bond, used by SHAKE (bond styles only)  | 
equilibrium_angle  | 
opening of angle, used by SHAKE (angle styles only)  | 
write & read_restart  | 
writes/reads coeffs to restart files  | 
single  | 
force/r (bond styles only) and energy of a single bond or angle  | 
Optional  | 
methods that have a default or dummy implementation  | 
|---|---|
init  | 
check if all coefficients are set, calls init_style()  | 
init_style  | 
check if style specific conditions are met  | 
settings  | 
apply global settings for all types  | 
write & read_restart_settings  | 
writes/reads global style settings to restart files  | 
write_data  | 
write corresponding Coeffs section(s) in data file  | 
memory_usage  | 
tally memory allocated by the style  | 
extract  | 
provide access to internal data (bond or angle styles only)  | 
reinit  | 
reset all type-based parameters, called by fix adapt (bonds only)  | 
pack & unpack_forward_comm  | 
copy data to and from buffer in forward communication (bonds only)  | 
pack & unpack_reverse_comm  | 
copy data to and from buffer in reverse communication (bonds only)  | 
Here is a list of flags or settings that should be set in the constructor of the derived class when they differ from the default setting.
Name of flag  | 
Description  | 
default  | 
|---|---|---|
writedata  | 
1 if write_data() is implemented  | 
1  | 
single_extra  | 
number of extra single values calculated (bond styles only)  | 
0  | 
partial_flag  | 
1 if bond type can be set to 0 and deleted (bond styles only)  | 
0  | 
reinitflag  | 
1 if style has reinit() and is compatible with fix adapt  | 
1  | 
comm_forward  | 
size of buffer (in doubles) for forward communication (bond styles only)  | 
0  | 
comm_reverse  | 
size of buffer (in doubles) for reverse communication (bond styles only)  | 
0  | 
comm_reverse_off  | 
size of buffer for reverse communication with newton off (bond styles only)  | 
0  |