forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@281 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
6e94c3652b
commit
47b87458b0
|
@ -59,13 +59,17 @@ we can improve the LAMMPS documentation.
|
|||
<BR>
|
||||
2.2 <A HREF = "Section_start.html#2_2">Making LAMMPS</A>
|
||||
<BR>
|
||||
2.3 <A HREF = "Section_start.html#2_3">Running LAMMPS</A>
|
||||
2.3 <A HREF = "#2_3">Making LAMMPS with optional packages</A>
|
||||
<BR>
|
||||
2.4 <A HREF = "Section_start.html#2_4">Command-line options</A>
|
||||
2.4 <A HREF = "#2_4">Building LAMMPS as a library</A>
|
||||
<BR>
|
||||
2.5 <A HREF = "Section_start.html#2_5">Screen output</A>
|
||||
2.5 <A HREF = "Section_start.html#2_5">Running LAMMPS</A>
|
||||
<BR>
|
||||
2.6 <A HREF = "Section_start.html#2_6">Tips for users of previous versions</A>
|
||||
2.6 <A HREF = "Section_start.html#2_6">Command-line options</A>
|
||||
<BR>
|
||||
2.7 <A HREF = "Section_start.html#2_7">Screen output</A>
|
||||
<BR>
|
||||
2.8 <A HREF = "Section_start.html#2_8">Tips for users of previous versions</A>
|
||||
<BR></UL>
|
||||
<LI><A HREF = "Section_commands.html">Commands</A>
|
||||
|
||||
|
@ -182,6 +186,10 @@ we can improve the LAMMPS documentation.
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -47,10 +47,12 @@ we can improve the LAMMPS documentation.
|
|||
"Getting started"_Section_start.html :l
|
||||
2.1 "What's in the LAMMPS distribution"_2_1 :ulb,b
|
||||
2.2 "Making LAMMPS"_2_2 :b
|
||||
2.3 "Running LAMMPS"_2_3 :b
|
||||
2.4 "Command-line options"_2_4 :b
|
||||
2.5 "Screen output"_2_5 :b
|
||||
2.6 "Tips for users of previous versions"_2_6 :ule,b
|
||||
2.3 "Making LAMMPS with optional packages"_#2_3 :b
|
||||
2.4 "Building LAMMPS as a library"_#2_4 :b
|
||||
2.5 "Running LAMMPS"_2_5 :b
|
||||
2.6 "Command-line options"_2_6 :b
|
||||
2.7 "Screen output"_2_7 :b
|
||||
2.8 "Tips for users of previous versions"_2_8 :ule,b
|
||||
"Commands"_Section_commands.html :l
|
||||
3.1 "LAMMPS input script"_3_1 :ulb,b
|
||||
3.2 "Parsing rules"_3_2 :b
|
||||
|
@ -93,6 +95,8 @@ we can improve the LAMMPS documentation.
|
|||
:link(2_4,Section_start.html#2_4)
|
||||
:link(2_5,Section_start.html#2_5)
|
||||
:link(2_6,Section_start.html#2_6)
|
||||
:link(2_7,Section_start.html#2_7)
|
||||
:link(2_8,Section_start.html#2_8)
|
||||
|
||||
:link(3_1,Section_commands.html#3_1)
|
||||
:link(3_2,Section_commands.html#3_2)
|
||||
|
|
|
@ -181,7 +181,6 @@ set in the read-in files): <A HREF = "pair_coeff.html">pair_coeff</A>,
|
|||
<A HREF = "special_bonds.html">special_bonds</A>.
|
||||
</P>
|
||||
<P>Various simulation parameters are set by these commands:
|
||||
<A HREF = "temperature.html">temperature</A>, <A HREF = "temp_modify.html">temp_modify</A>,
|
||||
<A HREF = "neighbor.html">neighbor</A>, <A HREF = "neigh_modify.html">neigh_modify</A>,
|
||||
<A HREF = "group.html">group</A>, <A HREF = "timestep.html">timestep</A>,
|
||||
<A HREF = "reset_timestep.html">reset_timestep</A>, <A HREF = "run_style.html">run_style</A>,
|
||||
|
@ -190,8 +189,13 @@ set in the read-in files): <A HREF = "pair_coeff.html">pair_coeff</A>,
|
|||
<P>Fixes impose a variety of boundary conditions, time integration, and
|
||||
diagnostic options. The <A HREF = "fix.html">fix</A> command comes in many flavors.
|
||||
</P>
|
||||
<P>Output options are set by these commands: <A HREF = "thermo.html">thermo</A>,
|
||||
<A HREF = "dump.html">dump</A>, <A HREF = "restart.html">restart</A>.
|
||||
<P>Various computations can be specified for execution during a
|
||||
simulation using the <A HREF = "compute.html">compute</A>,
|
||||
<A HREF = "compute_modify.html">compute_modify</A>, and <A HREF = "variable.html">variable</A>
|
||||
commands.
|
||||
</P>
|
||||
<P>Output options are set by the <A HREF = "thermo.html">thermo</A>, <A HREF = "dump.html">dump</A>,
|
||||
and <A HREF = "restart.html">restart</A> commands.
|
||||
</P>
|
||||
<P>(4) Run a simulation
|
||||
</P>
|
||||
|
@ -245,14 +249,17 @@ in the command's documentation.
|
|||
<A HREF = "min_modify.html">min_modify</A>, <A HREF = "min_style.html">min_style</A>,
|
||||
<A HREF = "neigh_modify.html">neigh_modify</A>, <A HREF = "neighbor.html">neighbor</A>,
|
||||
<A HREF = "reset_timestep.html">reset_timestep</A>, <A HREF = "run_style.html">run_style</A>,
|
||||
<A HREF = "set.html">set</A>, <A HREF = "temp_modify.html">temp_modify</A>,
|
||||
<A HREF = "temperature.html">temperature</A>, <A HREF = "timestep.html">timestep</A>,
|
||||
<A HREF = "velocity.html">velocity</A>
|
||||
<A HREF = "set.html">set</A>, <A HREF = "timestep.html">timestep</A>, <A HREF = "velocity.html">velocity</A>
|
||||
</P>
|
||||
<P>Fixes:
|
||||
</P>
|
||||
<P><A HREF = "fix.html">fix</A>, <A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "unfix.html">unfix</A>
|
||||
</P>
|
||||
<P>Computes:
|
||||
</P>
|
||||
<P><A HREF = "compute.html">compute</A>, <A HREF = "compute_modify.html">compute_modify</A>,
|
||||
<A HREF = "uncompute.html">uncompute</A>
|
||||
</P>
|
||||
<P>Output:
|
||||
</P>
|
||||
<P><A HREF = "dump.html">dump</A>, <A HREF = "dump_modify.html">dump_modify</A>,
|
||||
|
@ -288,83 +295,109 @@ in the command's documentation.
|
|||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD ><A HREF = "angle_coeff.html">angle_coeff</A></TD><TD ><A HREF = "angle_style.html">angle_style</A></TD><TD ><A HREF = "atom_modify.html">atom_modify</A></TD><TD ><A HREF = "atom_style.html">atom_style</A></TD><TD ><A HREF = "bond_coeff.html">bond_coeff</A></TD><TD ><A HREF = "bond_style.html">bond_style</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "boundary.html">boundary</A></TD><TD ><A HREF = "clear.html">clear</A></TD><TD ><A HREF = "create_atoms.html">create_atoms</A></TD><TD ><A HREF = "create_box.html">create_box</A></TD><TD ><A HREF = "delete_atoms.html">delete_atoms</A></TD><TD ><A HREF = "delete_bonds.html">delete_bonds</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "dielectric.html">dielectric</A></TD><TD ><A HREF = "dihedral_coeff.html">dihedral_coeff</A></TD><TD ><A HREF = "dihedral_style.html">dihedral_style</A></TD><TD ><A HREF = "dimension.html">dimension</A></TD><TD ><A HREF = "dipole.html">dipole</A></TD><TD ><A HREF = "displace_atoms.html">displace_atoms</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "dump.html">dump</A></TD><TD ><A HREF = "dump_modify.html">dump_modify</A></TD><TD ><A HREF = "echo.html">echo</A></TD><TD ><A HREF = "fix.html">fix</A></TD><TD ><A HREF = "fix_modify.html">fix_modify</A></TD><TD ><A HREF = "group.html">group</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "improper_coeff.html">improper_coeff</A></TD><TD ><A HREF = "improper_style.html">improper_style</A></TD><TD ><A HREF = "include.html">include</A></TD><TD ><A HREF = "jump.html">jump</A></TD><TD ><A HREF = "kspace_modify.html">kspace_modify</A></TD><TD ><A HREF = "kspace_style.html">kspace_style</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "label.html">label</A></TD><TD ><A HREF = "lattice.html">lattice</A></TD><TD ><A HREF = "log.html">log</A></TD><TD ><A HREF = "mass.html">mass</A></TD><TD ><A HREF = "minimize.html">minimize</A></TD><TD ><A HREF = "min_modify.html">min_modify</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "min_style.html">min_style</A></TD><TD ><A HREF = "neigh_modify.html">neigh_modify</A></TD><TD ><A HREF = "neighbor.html">neighbor</A></TD><TD ><A HREF = "newton.html">newton</A></TD><TD ><A HREF = "next.html">next</A></TD><TD ><A HREF = "pair_coeff.html">pair_coeff</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_modify.html">pair_modify</A></TD><TD ><A HREF = "pair_style.html">pair_style</A></TD><TD ><A HREF = "pair_write.html">pair_write</A></TD><TD ><A HREF = "print.html">print</A></TD><TD ><A HREF = "processors.html">processors</A></TD><TD ><A HREF = "read_data.html">read_data</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "read_restart.html">read_restart</A></TD><TD ><A HREF = "region.html">region</A></TD><TD ><A HREF = "replicate.html">replicate</A></TD><TD ><A HREF = "reset_timestep.html">reset_timestep</A></TD><TD ><A HREF = "restart.html">restart</A></TD><TD ><A HREF = "run.html">run</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "run_style.html">run_style</A></TD><TD ><A HREF = "set.html">set</A></TD><TD ><A HREF = "shell.html">shell</A></TD><TD ><A HREF = "special_bonds.html">special_bonds</A></TD><TD ><A HREF = "temp_modify.html">temp_modify</A></TD><TD ><A HREF = "temper.html">temper</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "temperature.html">temperature</A></TD><TD ><A HREF = "thermo.html">thermo</A></TD><TD ><A HREF = "thermo_modify.html">thermo_modify</A></TD><TD ><A HREF = "thermo_style.html">thermo_style</A></TD><TD ><A HREF = "timestep.html">timestep</A></TD><TD ><A HREF = "undump.html">undump</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "unfix.html">unfix</A></TD><TD ><A HREF = "units.html">units</A></TD><TD ><A HREF = "variable.html">variable</A></TD><TD ><A HREF = "velocity.html">velocity</A></TD><TD ><A HREF = "write_restart.html">write_restart</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "boundary.html">boundary</A></TD><TD ><A HREF = "clear.html">clear</A></TD><TD ><A HREF = "compute.html">compute</A></TD><TD ><A HREF = "compute_modify.html">compute_modify</A></TD><TD ><A HREF = "create_atoms.html">create_atoms</A></TD><TD ><A HREF = "create_box.html">create_box</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "delete_atoms.html">delete_atoms</A></TD><TD ><A HREF = "delete_bonds.html">delete_bonds</A></TD><TD ><A HREF = "dielectric.html">dielectric</A></TD><TD ><A HREF = "dihedral_coeff.html">dihedral_coeff</A></TD><TD ><A HREF = "dihedral_style.html">dihedral_style</A></TD><TD ><A HREF = "dimension.html">dimension</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "dipole.html">dipole</A></TD><TD ><A HREF = "displace_atoms.html">displace_atoms</A></TD><TD ><A HREF = "dump.html">dump</A></TD><TD ><A HREF = "dump_modify.html">dump_modify</A></TD><TD ><A HREF = "echo.html">echo</A></TD><TD ><A HREF = "fix.html">fix</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_modify.html">fix_modify</A></TD><TD ><A HREF = "group.html">group</A></TD><TD ><A HREF = "improper_coeff.html">improper_coeff</A></TD><TD ><A HREF = "improper_style.html">improper_style</A></TD><TD ><A HREF = "include.html">include</A></TD><TD ><A HREF = "jump.html">jump</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "kspace_modify.html">kspace_modify</A></TD><TD ><A HREF = "kspace_style.html">kspace_style</A></TD><TD ><A HREF = "label.html">label</A></TD><TD ><A HREF = "lattice.html">lattice</A></TD><TD ><A HREF = "log.html">log</A></TD><TD ><A HREF = "mass.html">mass</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "minimize.html">minimize</A></TD><TD ><A HREF = "min_modify.html">min_modify</A></TD><TD ><A HREF = "min_style.html">min_style</A></TD><TD ><A HREF = "neigh_modify.html">neigh_modify</A></TD><TD ><A HREF = "neighbor.html">neighbor</A></TD><TD ><A HREF = "newton.html">newton</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "next.html">next</A></TD><TD ><A HREF = "pair_coeff.html">pair_coeff</A></TD><TD ><A HREF = "pair_modify.html">pair_modify</A></TD><TD ><A HREF = "pair_style.html">pair_style</A></TD><TD ><A HREF = "pair_write.html">pair_write</A></TD><TD ><A HREF = "print.html">print</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "processors.html">processors</A></TD><TD ><A HREF = "read_data.html">read_data</A></TD><TD ><A HREF = "read_restart.html">read_restart</A></TD><TD ><A HREF = "region.html">region</A></TD><TD ><A HREF = "replicate.html">replicate</A></TD><TD ><A HREF = "reset_timestep.html">reset_timestep</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "restart.html">restart</A></TD><TD ><A HREF = "run.html">run</A></TD><TD ><A HREF = "run_style.html">run_style</A></TD><TD ><A HREF = "set.html">set</A></TD><TD ><A HREF = "shell.html">shell</A></TD><TD ><A HREF = "special_bonds.html">special_bonds</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "temper.html">temper</A></TD><TD ><A HREF = "thermo.html">thermo</A></TD><TD ><A HREF = "thermo_modify.html">thermo_modify</A></TD><TD ><A HREF = "thermo_style.html">thermo_style</A></TD><TD ><A HREF = "timestep.html">timestep</A></TD><TD ><A HREF = "uncompute.html">uncompute</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "undump.html">undump</A></TD><TD ><A HREF = "unfix.html">unfix</A></TD><TD ><A HREF = "units.html">units</A></TD><TD ><A HREF = "variable.html">variable</A></TD><TD ><A HREF = "velocity.html">velocity</A></TD><TD ><A HREF = "write_restart.html">write_restart</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Fix styles. See the <A HREF = "fix.html">fix</A> command for one-line descriptions
|
||||
or click on the command itself for a full description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_addforce.html">fix addforce</A></TD><TD ><A HREF = "fix_aveforce.html">fix aveforce</A></TD><TD ><A HREF = "fix_com.html">fix com</A></TD><TD ><A HREF = "fix_deposit.html">fix deposit</A></TD><TD ><A HREF = "fix_drag.html">fix drag</A></TD><TD ><A HREF = "fix_efield.html">fix efield</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_enforce2d.html">fix enforce2d</A></TD><TD ><A HREF = "fix_freeze.html">fix freeze</A></TD><TD ><A HREF = "fix_gran_diag.html">fix gran/diag</A></TD><TD ><A HREF = "fix_gravity.html">fix gravity</A></TD><TD ><A HREF = "fix_gyration.html">fix gyration</A></TD><TD ><A HREF = "fix_indent.html">fix indent</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_langevin.html">fix langevin</A></TD><TD ><A HREF = "fix_lineforce.html">fix lineforce</A></TD><TD ><A HREF = "fix_msd.html">fix msd</A></TD><TD ><A HREF = "fix_momentum.html">fix momentum</A></TD><TD ><A HREF = "fix_nph.html">fix nph</A></TD><TD ><A HREF = "fix_npt.html">fix npt</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_nve.html">fix nve</A></TD><TD ><A HREF = "fix_nve_gran.html">fix nve/gran</A></TD><TD ><A HREF = "fix_nvt.html">fix nvt</A></TD><TD ><A HREF = "fix_orient_fcc.html">fix orient/fcc</A></TD><TD ><A HREF = "fix_planeforce.html">fix planeforce</A></TD><TD ><A HREF = "fix_poems.html">fix poems</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_pour.html">fix pour</A></TD><TD ><A HREF = "fix_print.html">fix print</A></TD><TD ><A HREF = "fix_rdf.html">fix rdf</A></TD><TD ><A HREF = "fix_recenter.html">fix recenter</A></TD><TD ><A HREF = "fix_rigid.html">fix rigid</A></TD><TD ><A HREF = "fix_setforce.html">fix setforce</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_shake.html">fix shake</A></TD><TD ><A HREF = "fix_spring.html">fix spring</A></TD><TD ><A HREF = "fix_spring_rg.html">fix spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">fix spring/self</A></TD><TD ><A HREF = "fix_temp_rescale.html">fix temp/rescale</A></TD><TD ><A HREF = "fix_tmd.html">fix tmd</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_uniaxial.html">fix uniaxial</A></TD><TD ><A HREF = "fix_vcm.html">fix vcm</A></TD><TD ><A HREF = "fix_viscous.html">fix viscous</A></TD><TD ><A HREF = "fix_volume_rescale.html">fix volume/rescale</A></TD><TD ><A HREF = "fix_wall_gran.html">fix wall/gran</A></TD><TD ><A HREF = "fix_wall_lj93.html">fix wall/lj93</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_wall_lj126.html">fix wall/lj126</A></TD><TD ><A HREF = "fix_wall_reflect.html">fix wall/reflect</A></TD><TD ><A HREF = "fix_wiggle.html">fix wiggle</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
<HR>
|
||||
|
||||
<P>Pair styles. See the <A HREF = "pair_style.html">pair_style</A> command for an
|
||||
overview of pair potentials. Click on the style itself for a full
|
||||
<P>Fix commands. See the <A HREF = "fix.html">fix</A> command for one-line
|
||||
descriptions of each style or click on the style itself for a full
|
||||
description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_none.html">none</A></TD><TD ><A HREF = "pair_style_hybrid.html">hybrid</A></TD><TD ><A HREF = "pair_style_buck.html">buck</A></TD><TD ><A HREF = "pair_style_buck.html">buck/coul/cut</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_buck.html">buck/coul/long</A></TD><TD ><A HREF = "pair_style_dpd.html">dpd</A></TD><TD ><A HREF = "pair_style_eam.html">eam</A></TD><TD ><A HREF = "pair_style_eam.html">eam/alloy</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_eam.html">eam/fs</A></TD><TD ><A HREF = "pair_style_gran.html">gran/hertzian</A></TD><TD ><A HREF = "pair_style_gran.html">gran/history</A></TD><TD ><A HREF = "pair_style_gran.html">gran/no_history</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_charmm.html">lj/charmm/coul/charmm</A></TD><TD ><A HREF = "pair_style_charmm.html">lj/charmm/coul/charmm/implicit</A></TD><TD ><A HREF = "pair_style_charmm.html">lj/charmm/coul/long</A></TD><TD ><A HREF = "pair_style_class2.html">lj/class2</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_class2.html">lj/class2/coul/cut</A></TD><TD ><A HREF = "pair_style_class2.html">lj/class2/coul/long</A></TD><TD ><A HREF = "pair_style_lj.html">lj/cut</A></TD><TD ><A HREF = "pair_style_lj.html">lj/cut/coul/cut</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_lj.html">lj/cut/coul/debye</A></TD><TD ><A HREF = "pair_style_lj.html">lj/cut/coul/long</A></TD><TD ><A HREF = "pair_style_lj.html">lj/cut/coul/long/tip4p</A></TD><TD ><A HREF = "pair_style_lj_expand.html">lj/expand</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_lj_smooth.html">lj/smooth</A></TD><TD ><A HREF = "pair_style_meam.html">meam</A></TD><TD ><A HREF = "pair_style_morse.html">morse</A></TD><TD ><A HREF = "pair_style_soft.html">soft</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_style_sw.html">sw</A></TD><TD ><A HREF = "pair_style_table.html">table</A></TD><TD ><A HREF = "pair_style_tersoff.html">tersoff</A></TD><TD ><A HREF = "pair_style_yukawa.html">yukawa</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_addforce.html">addforce</A></TD><TD ><A HREF = "fix_aveforce.html">aveforce</A></TD><TD ><A HREF = "fix_com.html">com</A></TD><TD ><A HREF = "fix_deposit.html">deposit</A></TD><TD ><A HREF = "fix_drag.html">drag</A></TD><TD ><A HREF = "fix_efield.html">efield</A></TD><TD ><A HREF = "fix_enforce2d.html">enforce2d</A></TD><TD ><A HREF = "fix_freeze.html">freeze</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_gran_diag.html">gran/diag</A></TD><TD ><A HREF = "fix_gravity.html">gravity</A></TD><TD ><A HREF = "fix_gyration.html">gyration</A></TD><TD ><A HREF = "fix_indent.html">indent</A></TD><TD ><A HREF = "fix_langevin.html">langevin</A></TD><TD ><A HREF = "fix_lineforce.html">lineforce</A></TD><TD ><A HREF = "fix_msd.html">msd</A></TD><TD ><A HREF = "fix_momentum.html">momentum</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_nph.html">nph</A></TD><TD ><A HREF = "fix_npt.html">npt</A></TD><TD ><A HREF = "fix_nve.html">nve</A></TD><TD ><A HREF = "fix_nve_gran.html">nve/gran</A></TD><TD ><A HREF = "fix_nvt.html">nvt</A></TD><TD ><A HREF = "fix_orient_fcc.html">orient/fcc</A></TD><TD ><A HREF = "fix_planeforce.html">planeforce</A></TD><TD ><A HREF = "fix_poems.html">poems</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_pour.html">pour</A></TD><TD ><A HREF = "fix_print.html">print</A></TD><TD ><A HREF = "fix_rdf.html">rdf</A></TD><TD ><A HREF = "fix_recenter.html">recenter</A></TD><TD ><A HREF = "fix_rigid.html">rigid</A></TD><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_uniaxial.html">uniaxial</A></TD><TD ><A HREF = "fix_vcm.html">vcm</A></TD><TD ><A HREF = "fix_viscous.html">viscous</A></TD><TD ><A HREF = "fix_volume_rescale.html">volume/rescale</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD><TD ><A HREF = "fix_wall_lj93.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_lj126.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wiggle.html">wiggle</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Bond styles. See the <A HREF = "bond_style.html">bond_style</A> command for an
|
||||
overview of bond potentials. Click on the style itself for a full
|
||||
<HR>
|
||||
|
||||
<P>Compute commands. See the <A HREF = "compute.html">compute</A> command for one-line
|
||||
descriptions of each style or click on the style itself for a full
|
||||
description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_style_none.html">none</A></TD><TD WIDTH="100"><A HREF = "bond_style_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "bond_style_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "bond_style_fene.html">fene</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_style_fene_expand.html">fene/expand</A></TD><TD WIDTH="100"><A HREF = "bond_style_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "bond_style_morse.html">morse</A></TD><TD WIDTH="100"><A HREF = "bond_style_nonlinear.html">nonlinear</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_style_quartic.html">quartic</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_centro_atom.html">centro/atom</A></TD><TD ><A HREF = "compute_epair_atom.html">epair/atom</A></TD><TD ><A HREF = "compute_etotal_atom.html">etotal/atom</A></TD><TD ><A HREF = "compute_ke_atom.html">ke/atom</A></TD><TD ><A HREF = "compute_pressure.html">pressure</A></TD><TD ><A HREF = "compute_rotate_dipole.html">rotate/dipole</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_rotate_gran.html">rotate/gran</A></TD><TD ><A HREF = "compute_stress_atom.html">stress/atom</A></TD><TD ><A HREF = "compute_temp.html">temp</A></TD><TD ><A HREF = "compute_temp_partial.html">temp/partial</A></TD><TD ><A HREF = "compute_temp_ramp.html">temp/ramp</A></TD><TD ><A HREF = "compute_temp_region.html">temp/region</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Angle styles. See the <A HREF = "angle_style.html">angle_style</A> command for an
|
||||
overview of angle potentials. Click on the style itself for a full
|
||||
<HR>
|
||||
|
||||
<P>Pair_style potentials. See the <A HREF = "pair_style.html">pair_style</A> command
|
||||
for an overview of pair potentials. Click on the style itself for a
|
||||
full description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_none.html">none</A></TD><TD ><A HREF = "pair_hybrid.html">hybrid</A></TD><TD ><A HREF = "pair_buck.html">buck</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/long</A></TD><TD ><A HREF = "pair_dpd.html">dpd</A></TD><TD ><A HREF = "pair_eam.html">eam</A></TD><TD ><A HREF = "pair_eam.html">eam/opt</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/alloy</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/opt</A></TD><TD ><A HREF = "pair_eam.html">eam/fs</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/opt</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hertzian</A></TD><TD ><A HREF = "pair_gran.html">gran/history</A></TD><TD ><A HREF = "pair_gran.html">gran/no_history</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/opt</A></TD><TD ><A HREF = "pair_class2.html">lj/class2</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/opt</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/tip4p</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj_expand.html">lj/expand</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth</A></TD><TD ><A HREF = "pair_meam.html">meam</A></TD><TD ><A HREF = "pair_morse.html">morse</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_morse.html">morse/opt</A></TD><TD ><A HREF = "pair_soft.html">soft</A></TD><TD ><A HREF = "pair_sw.html">sw</A></TD><TD ><A HREF = "pair_table.html">table</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_tersoff.html">tersoff</A></TD><TD ><A HREF = "pair_yukawa.html">yukawa</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<P>Bond_style potentials. See the <A HREF = "bond_style.html">bond_style</A> command
|
||||
for an overview of bond potentials. Click on the style itself for a
|
||||
full description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_none.html">none</A></TD><TD WIDTH="100"><A HREF = "bond_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "bond_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "bond_fene.html">fene</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_fene_expand.html">fene/expand</A></TD><TD WIDTH="100"><A HREF = "bond_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "bond_morse.html">morse</A></TD><TD WIDTH="100"><A HREF = "bond_nonlinear.html">nonlinear</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "bond_quartic.html">quartic</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<P>Angle_style potentials. See the <A HREF = "angle_style.html">angle_style</A>
|
||||
command for an overview of angle potentials. Click on the style
|
||||
itself for a full description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "angle_none.html">none</A></TD><TD WIDTH="100"><A HREF = "angle_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "angle_charmm.html">charmm</A></TD><TD WIDTH="100"><A HREF = "angle_class2.html">class2</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "angle_cosine.html">cosine</A></TD><TD WIDTH="100"><A HREF = "angle_cosine_squared.html">cosine/squared</A></TD><TD WIDTH="100"><A HREF = "angle_harmonic.html">harmonic</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<P>Dihedral_style potentials. See the
|
||||
<A HREF = "dihedral_style.html">dihedral_style</A> command for an overview of
|
||||
dihedral potentials. Click on the style itself for a full
|
||||
description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "angle_style_none.html">none</A></TD><TD WIDTH="100"><A HREF = "angle_style_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "angle_style_charmm.html">charmm</A></TD><TD WIDTH="100"><A HREF = "angle_style_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "angle_style_cosine.html">cosine</A></TD><TD WIDTH="100"><A HREF = "angle_style_cosine_squared.html">cosine/squared</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "angle_style_harmonic.html">harmonic</A>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "dihedral_none.html">none</A></TD><TD WIDTH="100"><A HREF = "dihedral_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "dihedral_charmm.html">charmm</A></TD><TD WIDTH="100"><A HREF = "dihedral_class2.html">class2</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "dihedral_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "dihedral_helix.html">helix</A></TD><TD WIDTH="100"><A HREF = "dihedral_multi_harmonic.html">multi/harmonic</A></TD><TD WIDTH="100"><A HREF = "dihedral_opls.html">opls</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Dihedral styles. See the <A HREF = "dihedral_style.html">dihedral_style</A> command
|
||||
for an overview of dihedral potentials. Click on the style itself for
|
||||
a full description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "dihedral_style_none.html">none</A></TD><TD WIDTH="100"><A HREF = "dihedral_style_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "dihedral_style_charmm.html">charmm</A></TD><TD WIDTH="100"><A HREF = "dihedral_style_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "dihedral_style_harmonic.html">harmonic</A></TD><TD WIDTH="100"><A HREF = "dihedral_style_helix.html">helix</A></TD><TD WIDTH="100"><A HREF = "dihedral_style_multi_harmonic.html">multi/harmonic</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "dihedral_style_opls.html">opls</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
<HR>
|
||||
|
||||
<P>Improper styles. See the <A HREF = "improper_style.html">improper_style</A> command for an
|
||||
overview of improper potentials. Click on the style itself for a full
|
||||
<P>Improper_style potentials. See the
|
||||
<A HREF = "improper_style.html">improper_style</A> command for an overview of
|
||||
improper potentials. Click on the style itself for a full
|
||||
description:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "improper_style_none.html">none</A></TD><TD WIDTH="100"><A HREF = "improper_style_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "improper_style_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "improper_style_cvff.html">cvff</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "improper_style_harmonic.html">harmonic</A>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "improper_none.html">none</A></TD><TD WIDTH="100"><A HREF = "improper_hybrid.html">hybrid</A></TD><TD WIDTH="100"><A HREF = "improper_class2.html">class2</A></TD><TD WIDTH="100"><A HREF = "improper_cvff.html">cvff</A></TD></TR>
|
||||
<TR ALIGN="center"><TD WIDTH="100"><A HREF = "improper_harmonic.html">harmonic</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
</HTML>
|
||||
|
|
|
@ -178,7 +178,6 @@ set in the read-in files): "pair_coeff"_pair_coeff.html,
|
|||
"special_bonds"_special_bonds.html.
|
||||
|
||||
Various simulation parameters are set by these commands:
|
||||
"temperature"_temperature.html, "temp_modify"_temp_modify.html,
|
||||
"neighbor"_neighbor.html, "neigh_modify"_neigh_modify.html,
|
||||
"group"_group.html, "timestep"_timestep.html,
|
||||
"reset_timestep"_reset_timestep.html, "run_style"_run_style.html,
|
||||
|
@ -187,8 +186,13 @@ Various simulation parameters are set by these commands:
|
|||
Fixes impose a variety of boundary conditions, time integration, and
|
||||
diagnostic options. The "fix"_fix.html command comes in many flavors.
|
||||
|
||||
Output options are set by these commands: "thermo"_thermo.html,
|
||||
"dump"_dump.html, "restart"_restart.html.
|
||||
Various computations can be specified for execution during a
|
||||
simulation using the "compute"_compute.html,
|
||||
"compute_modify"_compute_modify.html, and "variable"_variable.html
|
||||
commands.
|
||||
|
||||
Output options are set by the "thermo"_thermo.html, "dump"_dump.html,
|
||||
and "restart"_restart.html commands.
|
||||
|
||||
(4) Run a simulation
|
||||
|
||||
|
@ -242,14 +246,17 @@ Settings:
|
|||
"min_modify"_min_modify.html, "min_style"_min_style.html,
|
||||
"neigh_modify"_neigh_modify.html, "neighbor"_neighbor.html,
|
||||
"reset_timestep"_reset_timestep.html, "run_style"_run_style.html,
|
||||
"set"_set.html, "temp_modify"_temp_modify.html,
|
||||
"temperature"_temperature.html, "timestep"_timestep.html,
|
||||
"velocity"_velocity.html
|
||||
"set"_set.html, "timestep"_timestep.html, "velocity"_velocity.html
|
||||
|
||||
Fixes:
|
||||
|
||||
"fix"_fix.html, "fix_modify"_fix_modify.html, "unfix"_unfix.html
|
||||
|
||||
Computes:
|
||||
|
||||
"compute"_compute.html, "compute_modify"_compute_modify.html,
|
||||
"uncompute"_uncompute.html
|
||||
|
||||
Output:
|
||||
|
||||
"dump"_dump.html, "dump_modify"_dump_modify.html,
|
||||
|
@ -291,6 +298,8 @@ in the command's documentation.
|
|||
"bond_style"_bond_style.html,
|
||||
"boundary"_boundary.html,
|
||||
"clear"_clear.html,
|
||||
"compute"_compute.html,
|
||||
"compute_modify"_compute_modify.html,
|
||||
"create_atoms"_create_atoms.html,
|
||||
"create_box"_create_box.html,
|
||||
"delete_atoms"_delete_atoms.html,
|
||||
|
@ -341,13 +350,12 @@ in the command's documentation.
|
|||
"set"_set.html,
|
||||
"shell"_shell.html,
|
||||
"special_bonds"_special_bonds.html,
|
||||
"temp_modify"_temp_modify.html,
|
||||
"temper"_temper.html,
|
||||
"temperature"_temperature.html,
|
||||
"thermo"_thermo.html,
|
||||
"thermo_modify"_thermo_modify.html,
|
||||
"thermo_style"_thermo_style.html,
|
||||
"timestep"_timestep.html,
|
||||
"uncompute"_uncompute.html,
|
||||
"undump"_undump.html,
|
||||
"unfix"_unfix.html,
|
||||
"units"_units.html,
|
||||
|
@ -355,137 +363,177 @@ in the command's documentation.
|
|||
"velocity"_velocity.html,
|
||||
"write_restart"_write_restart.html :tb(c=6,ea=c)
|
||||
|
||||
Fix styles. See the "fix"_fix.html command for one-line descriptions
|
||||
or click on the command itself for a full description:
|
||||
:line
|
||||
|
||||
"fix addforce"_fix_addforce.html,
|
||||
"fix aveforce"_fix_aveforce.html,
|
||||
"fix com"_fix_com.html,
|
||||
"fix deposit"_fix_deposit.html,
|
||||
"fix drag"_fix_drag.html,
|
||||
"fix efield"_fix_efield.html,
|
||||
"fix enforce2d"_fix_enforce2d.html,
|
||||
"fix freeze"_fix_freeze.html,
|
||||
"fix gran/diag"_fix_gran_diag.html,
|
||||
"fix gravity"_fix_gravity.html,
|
||||
"fix gyration"_fix_gyration.html,
|
||||
"fix indent"_fix_indent.html,
|
||||
"fix langevin"_fix_langevin.html,
|
||||
"fix lineforce"_fix_lineforce.html,
|
||||
"fix msd"_fix_msd.html,
|
||||
"fix momentum"_fix_momentum.html,
|
||||
"fix nph"_fix_nph.html,
|
||||
"fix npt"_fix_npt.html,
|
||||
"fix nve"_fix_nve.html,
|
||||
"fix nve/gran"_fix_nve_gran.html,
|
||||
"fix nvt"_fix_nvt.html,
|
||||
"fix orient/fcc"_fix_orient_fcc.html,
|
||||
"fix planeforce"_fix_planeforce.html,
|
||||
"fix poems"_fix_poems.html,
|
||||
"fix pour"_fix_pour.html,
|
||||
"fix print"_fix_print.html,
|
||||
"fix rdf"_fix_rdf.html,
|
||||
"fix recenter"_fix_recenter.html,
|
||||
"fix rigid"_fix_rigid.html,
|
||||
"fix setforce"_fix_setforce.html,
|
||||
"fix shake"_fix_shake.html,
|
||||
"fix spring"_fix_spring.html,
|
||||
"fix spring/rg"_fix_spring_rg.html,
|
||||
"fix spring/self"_fix_spring_self.html,
|
||||
"fix temp/rescale"_fix_temp_rescale.html,
|
||||
"fix tmd"_fix_tmd.html,
|
||||
"fix uniaxial"_fix_uniaxial.html,
|
||||
"fix vcm"_fix_vcm.html,
|
||||
"fix viscous"_fix_viscous.html,
|
||||
"fix volume/rescale"_fix_volume_rescale.html,
|
||||
"fix wall/gran"_fix_wall_gran.html,
|
||||
"fix wall/lj93"_fix_wall_lj93.html,
|
||||
"fix wall/lj126"_fix_wall_lj126.html,
|
||||
"fix wall/reflect"_fix_wall_reflect.html,
|
||||
"fix wiggle"_fix_wiggle.html :tb(c=6,ea=c)
|
||||
|
||||
Pair styles. See the "pair_style"_pair_style.html command for an
|
||||
overview of pair potentials. Click on the style itself for a full
|
||||
Fix commands. See the "fix"_fix.html command for one-line
|
||||
descriptions of each style or click on the style itself for a full
|
||||
description:
|
||||
|
||||
"none"_pair_style_none.html,
|
||||
"hybrid"_pair_style_hybrid.html,
|
||||
"buck"_pair_style_buck.html,
|
||||
"buck/coul/cut"_pair_style_buck.html,
|
||||
"buck/coul/long"_pair_style_buck.html,
|
||||
"dpd"_pair_style_dpd.html,
|
||||
"eam"_pair_style_eam.html,
|
||||
"eam/alloy"_pair_style_eam.html,
|
||||
"eam/fs"_pair_style_eam.html,
|
||||
"gran/hertzian"_pair_style_gran.html,
|
||||
"gran/history"_pair_style_gran.html,
|
||||
"gran/no_history"_pair_style_gran.html,
|
||||
"lj/charmm/coul/charmm"_pair_style_charmm.html,
|
||||
"lj/charmm/coul/charmm/implicit"_pair_style_charmm.html,
|
||||
"lj/charmm/coul/long"_pair_style_charmm.html,
|
||||
"lj/class2"_pair_style_class2.html,
|
||||
"lj/class2/coul/cut"_pair_style_class2.html,
|
||||
"lj/class2/coul/long"_pair_style_class2.html,
|
||||
"lj/cut"_pair_style_lj.html,
|
||||
"lj/cut/coul/cut"_pair_style_lj.html,
|
||||
"lj/cut/coul/debye"_pair_style_lj.html,
|
||||
"lj/cut/coul/long"_pair_style_lj.html,
|
||||
"lj/cut/coul/long/tip4p"_pair_style_lj.html,
|
||||
"lj/expand"_pair_style_lj_expand.html,
|
||||
"lj/smooth"_pair_style_lj_smooth.html,
|
||||
"meam"_pair_style_meam.html,
|
||||
"morse"_pair_style_morse.html,
|
||||
"soft"_pair_style_soft.html,
|
||||
"sw"_pair_style_sw.html,
|
||||
"table"_pair_style_table.html,
|
||||
"tersoff"_pair_style_tersoff.html,
|
||||
"yukawa"_pair_style_yukawa.html :tb(c=4,ea=c)
|
||||
"addforce"_fix_addforce.html,
|
||||
"aveforce"_fix_aveforce.html,
|
||||
"com"_fix_com.html,
|
||||
"deposit"_fix_deposit.html,
|
||||
"drag"_fix_drag.html,
|
||||
"efield"_fix_efield.html,
|
||||
"enforce2d"_fix_enforce2d.html,
|
||||
"freeze"_fix_freeze.html,
|
||||
"gran/diag"_fix_gran_diag.html,
|
||||
"gravity"_fix_gravity.html,
|
||||
"gyration"_fix_gyration.html,
|
||||
"indent"_fix_indent.html,
|
||||
"langevin"_fix_langevin.html,
|
||||
"lineforce"_fix_lineforce.html,
|
||||
"msd"_fix_msd.html,
|
||||
"momentum"_fix_momentum.html,
|
||||
"nph"_fix_nph.html,
|
||||
"npt"_fix_npt.html,
|
||||
"nve"_fix_nve.html,
|
||||
"nve/gran"_fix_nve_gran.html,
|
||||
"nvt"_fix_nvt.html,
|
||||
"orient/fcc"_fix_orient_fcc.html,
|
||||
"planeforce"_fix_planeforce.html,
|
||||
"poems"_fix_poems.html,
|
||||
"pour"_fix_pour.html,
|
||||
"print"_fix_print.html,
|
||||
"rdf"_fix_rdf.html,
|
||||
"recenter"_fix_recenter.html,
|
||||
"rigid"_fix_rigid.html,
|
||||
"setforce"_fix_setforce.html,
|
||||
"shake"_fix_shake.html,
|
||||
"spring"_fix_spring.html,
|
||||
"spring/rg"_fix_spring_rg.html,
|
||||
"spring/self"_fix_spring_self.html,
|
||||
"temp/rescale"_fix_temp_rescale.html,
|
||||
"tmd"_fix_tmd.html,
|
||||
"uniaxial"_fix_uniaxial.html,
|
||||
"vcm"_fix_vcm.html,
|
||||
"viscous"_fix_viscous.html,
|
||||
"volume/rescale"_fix_volume_rescale.html,
|
||||
"wall/gran"_fix_wall_gran.html,
|
||||
"wall/lj93"_fix_wall_lj93.html,
|
||||
"wall/lj126"_fix_wall_lj126.html,
|
||||
"wall/reflect"_fix_wall_reflect.html,
|
||||
"wiggle"_fix_wiggle.html :tb(c=8,ea=c)
|
||||
|
||||
Bond styles. See the "bond_style"_bond_style.html command for an
|
||||
overview of bond potentials. Click on the style itself for a full
|
||||
:line
|
||||
|
||||
Compute commands. See the "compute"_compute.html command for one-line
|
||||
descriptions of each style or click on the style itself for a full
|
||||
description:
|
||||
|
||||
"none"_bond_style_none.html,
|
||||
"hybrid"_bond_style_hybrid.html,
|
||||
"class2"_bond_style_class2.html,
|
||||
"fene"_bond_style_fene.html,
|
||||
"fene/expand"_bond_style_fene_expand.html,
|
||||
"harmonic"_bond_style_harmonic.html,
|
||||
"morse"_bond_style_morse.html,
|
||||
"nonlinear"_bond_style_nonlinear.html,
|
||||
"quartic"_bond_style_quartic.html :tb(c=4,ea=c,w=100)
|
||||
"centro/atom"_compute_centro_atom.html,
|
||||
"epair/atom"_compute_epair_atom.html,
|
||||
"etotal/atom"_compute_etotal_atom.html,
|
||||
"ke/atom"_compute_ke_atom.html,
|
||||
"pressure"_compute_pressure.html,
|
||||
"rotate/dipole"_compute_rotate_dipole.html,
|
||||
"rotate/gran"_compute_rotate_gran.html,
|
||||
"stress/atom"_compute_stress_atom.html,
|
||||
"temp"_compute_temp.html,
|
||||
"temp/partial"_compute_temp_partial.html,
|
||||
"temp/ramp"_compute_temp_ramp.html,
|
||||
"temp/region"_compute_temp_region.html :tb(c=6,ea=c)
|
||||
|
||||
Angle styles. See the "angle_style"_angle_style.html command for an
|
||||
overview of angle potentials. Click on the style itself for a full
|
||||
:line
|
||||
|
||||
Pair_style potentials. See the "pair_style"_pair_style.html command
|
||||
for an overview of pair potentials. Click on the style itself for a
|
||||
full description:
|
||||
|
||||
"none"_pair_none.html,
|
||||
"hybrid"_pair_hybrid.html,
|
||||
"buck"_pair_buck.html,
|
||||
"buck/coul/cut"_pair_buck.html,
|
||||
"buck/coul/long"_pair_buck.html,
|
||||
"dpd"_pair_dpd.html,
|
||||
"eam"_pair_eam.html,
|
||||
"eam/opt"_pair_eam.html,
|
||||
"eam/alloy"_pair_eam.html,
|
||||
"eam/alloy/opt"_pair_eam.html,
|
||||
"eam/fs"_pair_eam.html,
|
||||
"eam/fs/opt"_pair_eam.html,
|
||||
"gran/hertzian"_pair_gran.html,
|
||||
"gran/history"_pair_gran.html,
|
||||
"gran/no_history"_pair_gran.html,
|
||||
"lj/charmm/coul/charmm"_pair_charmm.html,
|
||||
"lj/charmm/coul/charmm/implicit"_pair_charmm.html,
|
||||
"lj/charmm/coul/long"_pair_charmm.html,
|
||||
"lj/charmm/coul/long/opt"_pair_charmm.html,
|
||||
"lj/class2"_pair_class2.html,
|
||||
"lj/class2/coul/cut"_pair_class2.html,
|
||||
"lj/class2/coul/long"_pair_class2.html,
|
||||
"lj/cut"_pair_lj.html,
|
||||
"lj/cut/opt"_pair_lj.html,
|
||||
"lj/cut/coul/cut"_pair_lj.html,
|
||||
"lj/cut/coul/debye"_pair_lj.html,
|
||||
"lj/cut/coul/long"_pair_lj.html,
|
||||
"lj/cut/coul/long/tip4p"_pair_lj.html,
|
||||
"lj/expand"_pair_lj_expand.html,
|
||||
"lj/smooth"_pair_lj_smooth.html,
|
||||
"meam"_pair_meam.html,
|
||||
"morse"_pair_morse.html,
|
||||
"morse/opt"_pair_morse.html,
|
||||
"soft"_pair_soft.html,
|
||||
"sw"_pair_sw.html,
|
||||
"table"_pair_table.html,
|
||||
"tersoff"_pair_tersoff.html,
|
||||
"yukawa"_pair_yukawa.html :tb(c=4,ea=c)
|
||||
|
||||
:line
|
||||
|
||||
Bond_style potentials. See the "bond_style"_bond_style.html command
|
||||
for an overview of bond potentials. Click on the style itself for a
|
||||
full description:
|
||||
|
||||
"none"_bond_none.html,
|
||||
"hybrid"_bond_hybrid.html,
|
||||
"class2"_bond_class2.html,
|
||||
"fene"_bond_fene.html,
|
||||
"fene/expand"_bond_fene_expand.html,
|
||||
"harmonic"_bond_harmonic.html,
|
||||
"morse"_bond_morse.html,
|
||||
"nonlinear"_bond_nonlinear.html,
|
||||
"quartic"_bond_quartic.html :tb(c=4,ea=c,w=100)
|
||||
|
||||
:line
|
||||
|
||||
Angle_style potentials. See the "angle_style"_angle_style.html
|
||||
command for an overview of angle potentials. Click on the style
|
||||
itself for a full description:
|
||||
|
||||
"none"_angle_none.html,
|
||||
"hybrid"_angle_hybrid.html,
|
||||
"charmm"_angle_charmm.html,
|
||||
"class2"_angle_class2.html,
|
||||
"cosine"_angle_cosine.html,
|
||||
"cosine/squared"_angle_cosine_squared.html,
|
||||
"harmonic"_angle_harmonic.html :tb(c=4,ea=c,w=100)
|
||||
|
||||
:line
|
||||
|
||||
Dihedral_style potentials. See the
|
||||
"dihedral_style"_dihedral_style.html command for an overview of
|
||||
dihedral potentials. Click on the style itself for a full
|
||||
description:
|
||||
|
||||
"none"_angle_style_none.html,
|
||||
"hybrid"_angle_style_hybrid.html,
|
||||
"charmm"_angle_style_charmm.html,
|
||||
"class2"_angle_style_class2.html,
|
||||
"cosine"_angle_style_cosine.html,
|
||||
"cosine/squared"_angle_style_cosine_squared.html,
|
||||
"harmonic"_angle_style_harmonic.html :tb(c=6,ea=c,w=100)
|
||||
"none"_dihedral_none.html,
|
||||
"hybrid"_dihedral_hybrid.html,
|
||||
"charmm"_dihedral_charmm.html,
|
||||
"class2"_dihedral_class2.html,
|
||||
"harmonic"_dihedral_harmonic.html,
|
||||
"helix"_dihedral_helix.html,
|
||||
"multi/harmonic"_dihedral_multi_harmonic.html,
|
||||
"opls"_dihedral_opls.html :tb(c=4,ea=c,w=100)
|
||||
|
||||
Dihedral styles. See the "dihedral_style"_dihedral_style.html command
|
||||
for an overview of dihedral potentials. Click on the style itself for
|
||||
a full description:
|
||||
:line
|
||||
|
||||
"none"_dihedral_style_none.html,
|
||||
"hybrid"_dihedral_style_hybrid.html,
|
||||
"charmm"_dihedral_style_charmm.html,
|
||||
"class2"_dihedral_style_class2.html,
|
||||
"harmonic"_dihedral_style_harmonic.html,
|
||||
"helix"_dihedral_style_helix.html,
|
||||
"multi/harmonic"_dihedral_style_multi_harmonic.html,
|
||||
"opls"_dihedral_style_opls.html :tb(c=7,ea=c,w=100)
|
||||
|
||||
Improper styles. See the "improper_style"_improper_style.html command for an
|
||||
overview of improper potentials. Click on the style itself for a full
|
||||
Improper_style potentials. See the
|
||||
"improper_style"_improper_style.html command for an overview of
|
||||
improper potentials. Click on the style itself for a full
|
||||
description:
|
||||
|
||||
"none"_improper_style_none.html,
|
||||
"hybrid"_improper_style_hybrid.html,
|
||||
"class2"_improper_style_class2.html,
|
||||
"cvff"_improper_style_cvff.html,
|
||||
"harmonic"_improper_style_harmonic.html :tb(c=4,ea=c,w=100)
|
||||
"none"_improper_none.html,
|
||||
"hybrid"_improper_hybrid.html,
|
||||
"class2"_improper_class2.html,
|
||||
"cvff"_improper_cvff.html,
|
||||
"harmonic"_improper_harmonic.html :tb(c=4,ea=c,w=100)
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<HTML>
|
||||
<CENTER><A HREF = "Section_modify.html">Previous Section</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> - <A HREF = "Section_history.html">Next Section</A>
|
||||
<CENTER><A HREF = "Section_modify.html">Previous Section</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> -
|
||||
<A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> - <A HREF = "Section_history.html">Next
|
||||
Section</A>
|
||||
</CENTER>
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
"Previous Section"_Section_modify.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_history.html :c
|
||||
"Previous Section"_Section_modify.html - "LAMMPS WWW Site"_lws -
|
||||
"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next
|
||||
Section"_Section_history.html :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
|
|
|
@ -263,7 +263,7 @@ jump in.polymer
|
|||
<P>All of the above examples work whether you are running on 1 or
|
||||
multiple processors, but assumed you are running LAMMPS on a single
|
||||
partition of processors. LAMMPS can be run on multiple partitions via
|
||||
the "-partition" command-line switch as described in <A HREF = "Section_start.html#2_4">this
|
||||
the "-partition" command-line switch as described in <A HREF = "Section_start.html#2_6">this
|
||||
section</A> of the manual.
|
||||
</P>
|
||||
<P>In the last 2 examples, if LAMMPS were run on 3 partitions, the same
|
||||
|
@ -287,7 +287,7 @@ simulation are run at different temperatures on different sets of
|
|||
processors, and Monte Carlo temperature swaps are performed between
|
||||
pairs of copies.
|
||||
</P>
|
||||
<P>Use the -procs and -in <A HREF = "Section_start.html#2_4">command-line switches</A>
|
||||
<P>Use the -procs and -in <A HREF = "Section_start.html#2_6">command-line switches</A>
|
||||
to launch LAMMPS on multiple partitions.
|
||||
</P>
|
||||
<P>In your input script, define a set of temperatures, one for each
|
||||
|
@ -409,10 +409,12 @@ This site M is located at a fixed distance away from the oxygen along
|
|||
the bisector of the HOH bond angle. A bond style of <I>harmonic</I> and an
|
||||
angle style of <I>harmonic</I> or <I>charmm</I> should also be used.
|
||||
</P>
|
||||
<P>Two different four-point models (cutoff and long-range Coulombics) can
|
||||
be implemented using LAMMPS pair styles with <I>tip4p</I> in their style
|
||||
name. For both models, the bond lengths and bond angles should be
|
||||
held fixed using the <A HREF = "fix_shake.html">fix shake</A> command.
|
||||
<P>Currently, only a four-point model for long-range Coulombics is
|
||||
implemented via the LAMMPS <A HREF = "pair_lj.html">pair style
|
||||
lj/cut/coul/long/tip4p</A>. We plan to add a cutoff
|
||||
version in the future. For both models, the bond lengths and bond
|
||||
angles should be held fixed using the <A HREF = "fix_shake.html">fix shake</A>
|
||||
command.
|
||||
</P>
|
||||
<P>These are the additional parameters (in real units) to set for O and H
|
||||
atoms and the water molecule to run a rigid TIP4P model with a cutoff
|
||||
|
@ -510,16 +512,16 @@ a new fix to LAMMPS.
|
|||
|
||||
<P>(2) Define a new LAMMPS command that calls the other code. This is
|
||||
conceptually similar to method (1), but in this case LAMMPS and the
|
||||
other code are on a more equal footing. Note that now the other
|
||||
code is not called during the timesteps of a LAMMPS run, but between
|
||||
other code are on a more equal footing. Note that now the other code
|
||||
is not called during the timestepping of a LAMMPS run, but between
|
||||
runs. The LAMMPS input script can be used to alternate LAMMPS runs
|
||||
with calls to the other code, invoked via the new command. The
|
||||
<A HREF = "run.html">run</A> command facilitates this with its <I>every</I> option, which
|
||||
makes it easy to run a few steps, invoke the command, run a few steps,
|
||||
invoke the command, etc.
|
||||
</P>
|
||||
<P>In this scenario, the other code can be a library, called by the
|
||||
command, or it could be a stand-alone code, invoked by a system() call
|
||||
<P>In this scenario, the other code can be called as a library, as in
|
||||
(1), or it could be a stand-alone code, invoked by a system() call
|
||||
made by the command (assuming your parallel machine allows one or more
|
||||
processors to start up another program). In the latter case the
|
||||
stand-alone code could communicate with LAMMPS thru files that the
|
||||
|
@ -535,49 +537,55 @@ Again, the <A HREF = "run.html">run</A> command has options that allow it to be
|
|||
invoked with minimal overhead (no setup or clean-up) if you wish to do
|
||||
multiple short runs, driven by another program.
|
||||
</P>
|
||||
<P><A HREF = "Section_start.html#2_2">This section</A> of the documentation describes
|
||||
how to build LAMMPS as a library. Once this is done, you can interface
|
||||
with LAMMPS either via C++, C, or Fortran (or any other language that
|
||||
supports a vanilla C-like interface, e.g. a scripting language). For
|
||||
example, from C++ you could create an "instance" of LAMMPS, and
|
||||
initialize it, pass it an input script to process, or execute
|
||||
<P><A HREF = "Section_start.html#2_4">This section</A> of the documentation describes
|
||||
how to build LAMMPS as a library. Once this is done, you can
|
||||
interface with LAMMPS either via C++, C, or Fortran (or any other
|
||||
language that supports a vanilla C-like interface, e.g. a scripting
|
||||
language). For example, from C++ you could create one (or more)
|
||||
"instances" of LAMMPS, pass it an input script to process, or execute
|
||||
individual commands, all by invoking the correct class methods in
|
||||
LAMMPS. From C or Fortran you would make function calls to do the
|
||||
same things. Library.cpp and library.h contain such a C interface
|
||||
that illustrates this with the functions:
|
||||
LAMMPS. From C or Fortran you can make function calls to do the same
|
||||
things. Library.cpp and library.h contain such a C interface with the
|
||||
functions:
|
||||
</P>
|
||||
<PRE>void lammps_open(int, char **, MPI_Comm);
|
||||
void lammps_close();
|
||||
void lammps_file(char *);
|
||||
char *lammps_command(char *);
|
||||
<PRE>void lammps_open(int, char **, MPI_Comm, void **);
|
||||
void lammps_close(void *);
|
||||
void lammps_file(void *, char *);
|
||||
char *lammps_command(doivd *, char *);
|
||||
</PRE>
|
||||
<P>The functions contain the C++ code you would need to put in a C++
|
||||
application that was invoking LAMMPS directly.
|
||||
<P>The functions contain C++ code you could write in a C++ application
|
||||
that was invoking LAMMPS directly. Note that LAMMPS classes are
|
||||
defined wihin a LAMMPS namespace (LAMMPS_NS) if you use them
|
||||
from another C++ application.
|
||||
</P>
|
||||
<P>Two of the routines in library.cpp are of particular note. The
|
||||
lammps_open() function initiates LAMMPS and takes an MPI communicator
|
||||
as an argument. LAMMPS will run on the set of processors in the
|
||||
communicator. This means the calling code can run LAMMPS on all or a
|
||||
subset of processors. For example, a wrapper script might decide to
|
||||
alternate between LAMMPS and another code, allowing them both to run
|
||||
on all the processors. Or it might allocate half the processors to
|
||||
LAMMPS and half to the other code and run both codes simultaneously
|
||||
before syncing them up periodically.
|
||||
as an argument. It returns a pointer to a LAMMPS "object". As with
|
||||
C++, the lammps_open() function can be called mutliple times, to
|
||||
create multiple instances of LAMMPS.
|
||||
</P>
|
||||
<P>Library.cpp also contains a lammps_command() function to which the
|
||||
caller passes a single LAMMPS command (a string). Thus the calling
|
||||
code can read or generate a series of LAMMPS commands (e.g. an input
|
||||
script) one line at a time and pass it thru the library interface to
|
||||
setup a problem and then run it.
|
||||
<P>LAMMPS will run on the set of processors in the communicator. This
|
||||
means the calling code can run LAMMPS on all or a subset of
|
||||
processors. For example, a wrapper script might decide to alternate
|
||||
between LAMMPS and another code, allowing them both to run on all the
|
||||
processors. Or it might allocate half the processors to LAMMPS and
|
||||
half to the other code and run both codes simultaneously before
|
||||
syncing them up periodically.
|
||||
</P>
|
||||
<P>A few other sample routines are included in library.cpp, but the key
|
||||
idea is that you can write any routines you wish to define an
|
||||
<P>Library.cpp contains a lammps_command() function to which the caller
|
||||
passes a single LAMMPS command (a string). Thus the calling code can
|
||||
read or generate a series of LAMMPS commands (e.g. an input script)
|
||||
one line at a time and pass it thru the library interface to setup a
|
||||
problem and then run it.
|
||||
</P>
|
||||
<P>A few other sample functions are included in library.cpp, but the key
|
||||
idea is that you can write any functions you wish to define an
|
||||
interface for how your code talks to LAMMPS and add them to
|
||||
library.cpp and library.h. The routines you add can access any LAMMPS
|
||||
data. The umbrella.cpp code in examples/couple is a simple example of
|
||||
how a stand-alone code can link LAMMPS as a library, run LAMMPS on a
|
||||
subset of processors, grab data from LAMMPS, change it, and put it
|
||||
back into LAMMPS.
|
||||
data. The examples/couple directory has example C++ and C codes which
|
||||
show how a stand-alone code can link LAMMPS as a library, run LAMMPS
|
||||
on a subset of processors, grab data from LAMMPS, change it, and put
|
||||
it back into LAMMPS.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -260,7 +260,7 @@ All of the above examples work whether you are running on 1 or
|
|||
multiple processors, but assumed you are running LAMMPS on a single
|
||||
partition of processors. LAMMPS can be run on multiple partitions via
|
||||
the "-partition" command-line switch as described in "this
|
||||
section"_Section_start.html#2_4 of the manual.
|
||||
section"_Section_start.html#2_6 of the manual.
|
||||
|
||||
In the last 2 examples, if LAMMPS were run on 3 partitions, the same
|
||||
scripts could be used if the "index" and "loop" variables were
|
||||
|
@ -283,7 +283,7 @@ simulation are run at different temperatures on different sets of
|
|||
processors, and Monte Carlo temperature swaps are performed between
|
||||
pairs of copies.
|
||||
|
||||
Use the -procs and -in "command-line switches"_Section_start.html#2_4
|
||||
Use the -procs and -in "command-line switches"_Section_start.html#2_6
|
||||
to launch LAMMPS on multiple partitions.
|
||||
|
||||
In your input script, define a set of temperatures, one for each
|
||||
|
@ -405,10 +405,12 @@ This site M is located at a fixed distance away from the oxygen along
|
|||
the bisector of the HOH bond angle. A bond style of {harmonic} and an
|
||||
angle style of {harmonic} or {charmm} should also be used.
|
||||
|
||||
Two different four-point models (cutoff and long-range Coulombics) can
|
||||
be implemented using LAMMPS pair styles with {tip4p} in their style
|
||||
name. For both models, the bond lengths and bond angles should be
|
||||
held fixed using the "fix shake"_fix_shake.html command.
|
||||
Currently, only a four-point model for long-range Coulombics is
|
||||
implemented via the LAMMPS "pair style
|
||||
lj/cut/coul/long/tip4p"_pair_lj.html. We plan to add a cutoff
|
||||
version in the future. For both models, the bond lengths and bond
|
||||
angles should be held fixed using the "fix shake"_fix_shake.html
|
||||
command.
|
||||
|
||||
These are the additional parameters (in real units) to set for O and H
|
||||
atoms and the water molecule to run a rigid TIP4P model with a cutoff
|
||||
|
@ -506,16 +508,16 @@ a new fix to LAMMPS.
|
|||
|
||||
(2) Define a new LAMMPS command that calls the other code. This is
|
||||
conceptually similar to method (1), but in this case LAMMPS and the
|
||||
other code are on a more equal footing. Note that now the other
|
||||
code is not called during the timesteps of a LAMMPS run, but between
|
||||
other code are on a more equal footing. Note that now the other code
|
||||
is not called during the timestepping of a LAMMPS run, but between
|
||||
runs. The LAMMPS input script can be used to alternate LAMMPS runs
|
||||
with calls to the other code, invoked via the new command. The
|
||||
"run"_run.html command facilitates this with its {every} option, which
|
||||
makes it easy to run a few steps, invoke the command, run a few steps,
|
||||
invoke the command, etc.
|
||||
|
||||
In this scenario, the other code can be a library, called by the
|
||||
command, or it could be a stand-alone code, invoked by a system() call
|
||||
In this scenario, the other code can be called as a library, as in
|
||||
(1), or it could be a stand-alone code, invoked by a system() call
|
||||
made by the command (assuming your parallel machine allows one or more
|
||||
processors to start up another program). In the latter case the
|
||||
stand-alone code could communicate with LAMMPS thru files that the
|
||||
|
@ -531,49 +533,55 @@ Again, the "run"_run.html command has options that allow it to be
|
|||
invoked with minimal overhead (no setup or clean-up) if you wish to do
|
||||
multiple short runs, driven by another program.
|
||||
|
||||
"This section"_Section_start.html#2_2 of the documentation describes
|
||||
how to build LAMMPS as a library. Once this is done, you can interface
|
||||
with LAMMPS either via C++, C, or Fortran (or any other language that
|
||||
supports a vanilla C-like interface, e.g. a scripting language). For
|
||||
example, from C++ you could create an "instance" of LAMMPS, and
|
||||
initialize it, pass it an input script to process, or execute
|
||||
"This section"_Section_start.html#2_4 of the documentation describes
|
||||
how to build LAMMPS as a library. Once this is done, you can
|
||||
interface with LAMMPS either via C++, C, or Fortran (or any other
|
||||
language that supports a vanilla C-like interface, e.g. a scripting
|
||||
language). For example, from C++ you could create one (or more)
|
||||
"instances" of LAMMPS, pass it an input script to process, or execute
|
||||
individual commands, all by invoking the correct class methods in
|
||||
LAMMPS. From C or Fortran you would make function calls to do the
|
||||
same things. Library.cpp and library.h contain such a C interface
|
||||
that illustrates this with the functions:
|
||||
LAMMPS. From C or Fortran you can make function calls to do the same
|
||||
things. Library.cpp and library.h contain such a C interface with the
|
||||
functions:
|
||||
|
||||
void lammps_open(int, char **, MPI_Comm);
|
||||
void lammps_close();
|
||||
void lammps_file(char *);
|
||||
char *lammps_command(char *); :pre
|
||||
void lammps_open(int, char **, MPI_Comm, void **);
|
||||
void lammps_close(void *);
|
||||
void lammps_file(void *, char *);
|
||||
char *lammps_command(doivd *, char *); :pre
|
||||
|
||||
The functions contain the C++ code you would need to put in a C++
|
||||
application that was invoking LAMMPS directly.
|
||||
The functions contain C++ code you could write in a C++ application
|
||||
that was invoking LAMMPS directly. Note that LAMMPS classes are
|
||||
defined wihin a LAMMPS namespace (LAMMPS_NS) if you use them
|
||||
from another C++ application.
|
||||
|
||||
Two of the routines in library.cpp are of particular note. The
|
||||
lammps_open() function initiates LAMMPS and takes an MPI communicator
|
||||
as an argument. LAMMPS will run on the set of processors in the
|
||||
communicator. This means the calling code can run LAMMPS on all or a
|
||||
subset of processors. For example, a wrapper script might decide to
|
||||
alternate between LAMMPS and another code, allowing them both to run
|
||||
on all the processors. Or it might allocate half the processors to
|
||||
LAMMPS and half to the other code and run both codes simultaneously
|
||||
before syncing them up periodically.
|
||||
as an argument. It returns a pointer to a LAMMPS "object". As with
|
||||
C++, the lammps_open() function can be called mutliple times, to
|
||||
create multiple instances of LAMMPS.
|
||||
|
||||
Library.cpp also contains a lammps_command() function to which the
|
||||
caller passes a single LAMMPS command (a string). Thus the calling
|
||||
code can read or generate a series of LAMMPS commands (e.g. an input
|
||||
script) one line at a time and pass it thru the library interface to
|
||||
setup a problem and then run it.
|
||||
LAMMPS will run on the set of processors in the communicator. This
|
||||
means the calling code can run LAMMPS on all or a subset of
|
||||
processors. For example, a wrapper script might decide to alternate
|
||||
between LAMMPS and another code, allowing them both to run on all the
|
||||
processors. Or it might allocate half the processors to LAMMPS and
|
||||
half to the other code and run both codes simultaneously before
|
||||
syncing them up periodically.
|
||||
|
||||
A few other sample routines are included in library.cpp, but the key
|
||||
idea is that you can write any routines you wish to define an
|
||||
Library.cpp contains a lammps_command() function to which the caller
|
||||
passes a single LAMMPS command (a string). Thus the calling code can
|
||||
read or generate a series of LAMMPS commands (e.g. an input script)
|
||||
one line at a time and pass it thru the library interface to setup a
|
||||
problem and then run it.
|
||||
|
||||
A few other sample functions are included in library.cpp, but the key
|
||||
idea is that you can write any functions you wish to define an
|
||||
interface for how your code talks to LAMMPS and add them to
|
||||
library.cpp and library.h. The routines you add can access any LAMMPS
|
||||
data. The umbrella.cpp code in examples/couple is a simple example of
|
||||
how a stand-alone code can link LAMMPS as a library, run LAMMPS on a
|
||||
subset of processors, grab data from LAMMPS, change it, and put it
|
||||
back into LAMMPS.
|
||||
data. The examples/couple directory has example C++ and C codes which
|
||||
show how a stand-alone code can link LAMMPS as a library, run LAMMPS
|
||||
on a subset of processors, grab data from LAMMPS, change it, and put
|
||||
it back into LAMMPS.
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -14,29 +14,34 @@ Section</A>
|
|||
<H3>8. Modifying & extending LAMMPS
|
||||
</H3>
|
||||
<P>LAMMPS is designed in a modular fashion so as to be easy to modify and
|
||||
extend with new functionality. In this section, changes and additions
|
||||
users can make are listed along with some minimal instructions.
|
||||
Realistically, the best way to add a new feature is to find a similar
|
||||
feature in LAMMPS and look at the corresponding source and header
|
||||
files to figure out what it does. You will need some knowledge of C++
|
||||
to be able to understand the hi-level structure of LAMMPS and its
|
||||
class organization, but functions (class methods) that do actual
|
||||
computations are written in vanilla C-style code and operate on simple
|
||||
C-style data structures (vectors and arrays).
|
||||
extend with new functionality. In fact, about 75% if its source code
|
||||
is files added in this fashion.
|
||||
</P>
|
||||
<P>In this section, changes and additions users can make are listed along
|
||||
with minimal instructions. The best way to add a new feature is to
|
||||
find a similar feature in LAMMPS and look at the corresponding source
|
||||
and header files to figure out what it does. You will need some
|
||||
knowledge of C++ to be able to understand the hi-level structure of
|
||||
LAMMPS and its class organization, but functions (class methods) that
|
||||
do actual computations are written in vanilla C-style code and operate
|
||||
on simple C-style data structures (vectors and arrays).
|
||||
</P>
|
||||
<P>Most of the new features described in this section require you to
|
||||
write a new C++ class (except for dump, thermo, and variable options,
|
||||
described below, where you can make small edits to existing files).
|
||||
Creating a new class requires 2 files, a source code file (*.cpp) and
|
||||
a header file (*.h). Their contents are briefly discussed below.
|
||||
Enabling LAMMPS to invoke the new class is as simple as adding two
|
||||
definition lines to the style_user.h file, in the same syntax as the
|
||||
existing LAMMPS classes are defined in the style.h file.
|
||||
write a new C++ derived class (except for exceptions described below,
|
||||
where you can make small edits to existing files). Creating a new
|
||||
class requires 2 files, a source code file (*.cpp) and a header file
|
||||
(*.h). The derived class must provide certain methods to work as a
|
||||
new option. Depending on how different your new feature is compared
|
||||
to existing features, you can either derive from the base class
|
||||
itself, or from a derived class that already exists. Enabling LAMMPS
|
||||
to invoke the new class is as simple as adding two lines to the
|
||||
style_user.h file, in the same syntax as other LAMMPS classes are
|
||||
specified in the style.h file.
|
||||
</P>
|
||||
<P>The power of C++ and its object-orientation is that usually, all the
|
||||
code and variables needed to define the new feature are contained in
|
||||
the 2 files you write, and thus shouldn't make the rest of the code
|
||||
more complex or cause side-effect bugs.
|
||||
<P>The advantage of C++ and its object-orientation is that all the code
|
||||
and variables needed to define the new feature are in the 2 files you
|
||||
write, and thus shouldn't make the rest of LAMMPS more complex or
|
||||
cause side-effect bugs.
|
||||
</P>
|
||||
<P>Here is a concrete example. Suppose you write 2 files pair_foo.cpp
|
||||
and pair_foo.h that define a new class PairFoo that computes pairwise
|
||||
|
@ -46,8 +51,8 @@ command like
|
|||
</P>
|
||||
<PRE>pair_style foo 0.1 3.5
|
||||
</PRE>
|
||||
<P>you simply need to put your 2 files in the LAMMPS src directory, add 2
|
||||
lines to the style_user.h file, and re-make the code.
|
||||
<P>you put your 2 files in the LAMMPS src directory, add 2 lines to the
|
||||
style_user.h file, and re-make the code.
|
||||
</P>
|
||||
<P>The first line added to style_user.h would be
|
||||
</P>
|
||||
|
@ -69,108 +74,121 @@ the executable and can be invoked with a pair_style command like the
|
|||
example above. Arguments like 0.1 and 3.5 can be defined and
|
||||
processed by your new class.
|
||||
</P>
|
||||
<P>Note that if you are using Makefile.list instead of Makefile to build
|
||||
LAMMPS, you will need to explicitly add the names of your new .cpp and
|
||||
.h file to Makefile.list.
|
||||
<P>Here is a list of the new features that can be added in this way:
|
||||
</P>
|
||||
<P>Here is a list of the kinds of new features that can be added in this
|
||||
way. The dump and thermo options do not typically require new styles;
|
||||
LAMMPS can simply be recompiled after new code is added to
|
||||
dump_custom.cpp or thermo_custom.cpp.
|
||||
</P>
|
||||
<UL><LI><A HREF = "#pair">Pairwise potentials</A>
|
||||
<UL><LI><A HREF = "#atom">Atom styles</A>
|
||||
<LI><A HREF = "#bond">Bond, angle, dihedral, improper potentials</A>
|
||||
<LI><A HREF = "#dump">Dump options</A>
|
||||
<LI><A HREF = "#thermo">Thermodynamic output options</A>
|
||||
<LI><A HREF = "#temp">Temperature computation options</A>
|
||||
<LI><A HREF = "#region">Region geometry options</A>
|
||||
<LI><A HREF = "#fix">Fix options</A> which include integrators, temperature and pressure control, force constraints, boundary conditions, diagnostic output, etc
|
||||
<LI><A HREF = "#atom">Atom options</A>
|
||||
<LI><A HREF = "#variable">Variable options</A>
|
||||
<LI><A HREF = "#command">New top-level commands</A>
|
||||
<LI><A HREF = "#compute">Compute styles</A>
|
||||
<LI><A HREF = "#dump">Dump styles</A>
|
||||
<LI><A HREF = "#fix">Fix styles</A> which include integrators, temperature and pressure control, force constraints, boundary conditions, diagnostic output, etc
|
||||
<LI><A HREF = "#command">Input script commands</A>
|
||||
<LI><A HREF = "#kspace">Kspace computations</A>
|
||||
<LI><A HREF = "#min">Minimization solvers</A>
|
||||
<LI><A HREF = "#pair">Pairwise potentials</A>
|
||||
<LI><A HREF = "#region">Region styles</A>
|
||||
</UL>
|
||||
<P>As illustrated by the pairwise example, these options are
|
||||
referred to in the LAMMPS documentation as the "style" of a particular
|
||||
command.
|
||||
<P>As illustrated by the pairwise example, these options are referred to
|
||||
in the LAMMPS documentation as the "style" of a particular command.
|
||||
</P>
|
||||
<P>The instructions below for each category will list the header file for
|
||||
the parent class that these styles are sub-classes of. Public
|
||||
variables in that file are ones used and set by the sub-classes which
|
||||
are also used by the parent class. Sometimes they are also used by
|
||||
the rest of LAMMPS. Virtual functions in the header file which are
|
||||
set = 0 are ones you must define in your new class to give it the
|
||||
functionality LAMMPS expects. Virtual functions that are not set to 0
|
||||
are functions you can optionally define.
|
||||
<P>The instructions below give the header file for the base class that
|
||||
these styles are derived from. Public variables in that file are ones
|
||||
used and set by the derived classes which are also used by the base
|
||||
class. Sometimes they are also used by the rest of LAMMPS. Virtual
|
||||
functions in the base class header file which are set = 0 are ones you
|
||||
must define in your new derived class to give it the functionality
|
||||
LAMMPS expects. Virtual functions that are not set to 0 are functions
|
||||
you can optionally define.
|
||||
</P>
|
||||
<P>Here are some additional guidelines for modifying LAMMPS and adding
|
||||
new functionality:
|
||||
</P>
|
||||
<P>Think about whether what you want to do would be better as a pre- or
|
||||
post-processing step. Many computations are more easily and more
|
||||
quickly done that way.
|
||||
</P>
|
||||
<P>Don't do anything within the timestepping of a run that isn't
|
||||
parallel. E.g. don't accumulate a bunch of data on a single processor
|
||||
and analyze it. You run the risk of seriously degrading the parallel
|
||||
efficiency.
|
||||
</P>
|
||||
<P>If your new feature reads arguments or writes output, make sure you
|
||||
follow the unit conventions discussed by the <A HREF = "units.html">units</A>
|
||||
command.
|
||||
</P>
|
||||
<P>If you add something you think is truly useful and doesn't impact
|
||||
LAMMPS performance when it isn't used, send an email to the
|
||||
<A HREF = "http://lammps.sandia.gov/authors.html">developers</A>. We might be
|
||||
interested in adding it to the LAMMPS distribution.
|
||||
<P>Additionally, new output options can be added directly to the
|
||||
thermo.cpp, dump_custom.cpp, and variable.cpp files as explained in
|
||||
these sections:
|
||||
</P>
|
||||
<UL><LI><A HREF = "#dump_custom">Dump custom output options</A>
|
||||
<LI><A HREF = "#thermo">Thermodynamic output options</A>
|
||||
<LI><A HREF = "#variable">Variable options</A>
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
<A NAME = "pair"></A><H4>Pairwise potentials
|
||||
<P>Here are additional guidelines for modifying LAMMPS and adding new
|
||||
functionality:
|
||||
</P>
|
||||
<UL><LI>Think about whether what you want to do would be better as a pre- or
|
||||
post-processing step. Many computations are more easily and more
|
||||
quickly done that way.
|
||||
|
||||
<LI>Don't do anything within the timestepping of a run that isn't
|
||||
parallel. E.g. don't accumulate a bunch of data on a single processor
|
||||
and analyze it. You run the risk of seriously degrading the parallel
|
||||
efficiency.
|
||||
|
||||
<LI>If your new feature reads arguments or writes output, make sure you
|
||||
follow the unit conventions discussed by the <A HREF = "units.html">units</A>
|
||||
command.
|
||||
|
||||
<LI>If you add something you think is truly useful and doesn't impact
|
||||
LAMMPS performance when it isn't used, send an email to the
|
||||
<A HREF = "http://lammps.sandia.gov/authors.html">developers</A>. We might be
|
||||
interested in adding it to the LAMMPS distribution.
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "atom"></A><H4>Atom styles
|
||||
</H4>
|
||||
<P>All classes that compute pairwise interactions are sub-classes of the
|
||||
Pair class. See the pair.h file for a list of methods this class
|
||||
defines.
|
||||
<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>
|
||||
<P>Pair_lj_cut.cpp and pair_lj_cut.h are the simplest example of a Pair
|
||||
class. They implement the <I>lj/cut</I> style of the
|
||||
<A HREF = "pair_style.html">pair_style</A> command.
|
||||
<P>Atom_vec_atomic.cpp is a simple example of an atom style.
|
||||
</P>
|
||||
<P>Here is a brief description of the class methods in pair.h:
|
||||
<P>Here is a brief description of methods you define in your new derived
|
||||
class. See atom.h for details.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >compute</TD><TD > the workhorse routine that computes the pairwise interactions</TD></TR>
|
||||
<TR><TD >settings</TD><TD > reads the input script line with any arguments you define</TD></TR>
|
||||
<TR><TD >coeff</TD><TD > set coefficients for one i,j type pair</TD></TR>
|
||||
<TR><TD >init_one</TD><TD > perform initialization for one i,j type pair</TD></TR>
|
||||
<TR><TD >write & read_restart</TD><TD > write/read i,j pair coeffs to restart files</TD></TR>
|
||||
<TR><TD >write & read_restart_settings</TD><TD > write/read global settings to restart files</TD></TR>
|
||||
<TR><TD >single</TD><TD > force and energy of a single pairwise interaction between 2 atoms</TD></TR>
|
||||
<TR><TD >compute_inner/middle/outer</TD><TD > versions of compute used by rRESPA
|
||||
<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 >unpack_comm</TD><TD > retrieve an atom's info from the buffer</TD></TR>
|
||||
<TR><TD >pack_reverse</TD><TD > store an atom's info in a buffer communicating partial forces</TD></TR>
|
||||
<TR><TD >unpack_reverse</TD><TD > retrieve an atom's info from the buffer</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 >unpack_border</TD><TD > retrieve an atom's info from the buffer</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
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>The inner/middle/outer routines are optional. Only a few of the
|
||||
pairwise potentials use these in conjunction with rRESPA as set by the
|
||||
<A HREF = "run_style.html">run_style</A> command.
|
||||
<P>The constructor of the derived class sets values for several variables
|
||||
that you must set when defining a new atom style. The atom arrays
|
||||
themselves are defined in atom.cpp. Search for the word "customize"
|
||||
and you will find locations you will need to modify.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "bond"></A><H4>Bond, angle, dihedral, improper potentials
|
||||
</H4>
|
||||
<P>All classes that compute molecular interactions are sub-classes of the
|
||||
Bond, Angle, Dihedral, and Improper classes. See the bond.h, angle.h,
|
||||
dihedral.h, and improper.h file for a list of methods these classes
|
||||
defines.
|
||||
<P>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.
|
||||
</P>
|
||||
<P>Bond_harmonic.cpp and bond_harmonic.h are the simplest example of a
|
||||
Bond class. Ditto for the harmonic forms of the angle, dihedral, and
|
||||
improper style commands. The bond_harmonic files implement the
|
||||
<I>harmonic</I> style of the <A HREF = "bond_style.html">bond_style</A> command.
|
||||
<P>Bond_harmonic.cpp is the simplest example of a bond style. Ditto for
|
||||
the harmonic forms of the angle, dihedral, and improper style
|
||||
commands.
|
||||
</P>
|
||||
<P>Here is a brief description of the class methods in bond.h, angle.h,
|
||||
etc:
|
||||
<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>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >compute</TD><TD > the workhorse routine that computes the molecular interactions</TD></TR>
|
||||
<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>
|
||||
|
@ -179,145 +197,85 @@ etc:
|
|||
|
||||
<HR>
|
||||
|
||||
<A NAME = "dump"></A><H4>Dump options
|
||||
<A NAME = "compute"></A><H4>Compute styles
|
||||
</H4>
|
||||
<P>There are several classes that print dump files (snapshots of atoms)
|
||||
that are sub-classes of the Dump class. These include the
|
||||
dump_atom.cpp, dump_bond.cpp, and dump_custom.cpp files.
|
||||
<P>Classes that compute scalar and vector quantities like temperature
|
||||
and the pressure tensor, as well as classes that compute per-atom
|
||||
quantities like kinetic energy and the centro-symmetry parameter
|
||||
are derived from the Compute class. New styles can be created
|
||||
to add new calculations to LAMMPS.
|
||||
</P>
|
||||
<P>New dump classes can be added, but it is typically simpler to modify
|
||||
the DumpCustom class contained in the dump_custom.cpp file. See the
|
||||
<A HREF = "dump.html">dump</A> command and its <I>custom</I> style for a list of what
|
||||
atom information can already be dumped by DumpCustom. If the
|
||||
attribute you want to dump is not in the list, or if you define a <A HREF = "#atom">new
|
||||
atom style</A> with new attributes (e.g. atoms that store their own
|
||||
magnetic moment), here is how to dump it out in a snapshot file:
|
||||
<P>Compute_temp.cpp is a simple example of computing a scalar
|
||||
temperature. Compute_ke_atom.cpp is a simple example of computing
|
||||
per-atom kinetic energy.
|
||||
</P>
|
||||
<P>Search the dump_custom.cpp and dump_custom.h files for the word
|
||||
"customize". It appears in roughly half a dozen locations. In each
|
||||
of the locations you can add a bit of code that will extend the
|
||||
DumpCustom class to enable it to dump a new quantity. E.g. you will
|
||||
add a keyword, add an if test, add a new small method that packs the
|
||||
requested data into a buffer, etc. For the latter, you can perform a
|
||||
modest amount of computation in this method; see the pack_xs()
|
||||
function for an example.
|
||||
</P>
|
||||
<P>If desired, a dump custom option can also compute more complicated
|
||||
quantities by invoking a fix that computed quantities at the end of a
|
||||
timestep (should be the same timestep the dump is invoked on). See
|
||||
the ENERGY, CENTRO, and stress options (SXX, SYY, etc) in
|
||||
dump_custom.cpp for examples.
|
||||
</P>
|
||||
<P>When you re-make LAMMPS, your new option should now be useable via the
|
||||
dump custom command.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "thermo"></A><H4>Thermodynamic output options
|
||||
</H4>
|
||||
<P>There is only one class that computes and prints thermodynamic
|
||||
information to the screen and log file, although the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> command treats its options as styles.
|
||||
</P>
|
||||
<P>There are several styles defined in thermo.cpp: "one", "multi", and
|
||||
"granular". There is also a flexible "custom" style which allows you
|
||||
to specify what quantities will be printed each timestep where
|
||||
thermodynamics is computed. See the <A HREF = "thermo_style.html">thermo_style</A>
|
||||
command for a list of pre-defined quantities.
|
||||
</P>
|
||||
<P>Here is how you can extend the thermo output capabilities. Search the
|
||||
thermo.cpp and thermo.h files for the word "customize" which will tell
|
||||
you where to make these additions. Note that fixes can also print-out
|
||||
thermodynamic quantities via the <A HREF = "fix_modify.html">fix_modify</A> command,
|
||||
so you do not need to modify thermo.cpp to print fix information.
|
||||
</P>
|
||||
<P>If you want to create a new style (like "one" or "granular") that
|
||||
prints a collection of pre-defined quantities, you add a few lines
|
||||
that define the new style to thermo.cpp. First, add a #DEFINE line at
|
||||
the top of the file which lists the quantities to print. Then add the
|
||||
style name you have chosen to the if test in the constructor to copy
|
||||
the defined string to the line<B></B> variable.
|
||||
</P>
|
||||
<P>You can also add new quantities to the custom list. Add your new
|
||||
keyword to the if test in the parse_fields() function where the call
|
||||
to addfield() specifies the text string (8 character max) that will be
|
||||
printed with the quantity, the function that will compute it, and the
|
||||
data type (INT,FLOAT) of the quantity. Then at the bottom of the
|
||||
file, add a function compute_*() which computes the quantity you wish
|
||||
to print. The function assigns the quantity to the variable "dvalue"
|
||||
if it is a floating-point quantity, or to "ivalue" if it is an
|
||||
integer. See the other compute_*() functions for examples of how
|
||||
various quantities can be accessed, computed, summed across
|
||||
processors, normalized as per-atom values, etc. Also, if it makes
|
||||
sense to allow the quantity to be stored in a variable in the input
|
||||
script, add a couple of lines to the compute_value() function that is
|
||||
called when a variable is evaluated. Finally, add a prototype for
|
||||
your new compute method to thermo.h.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "temp"></A><H4>Temperature computation options
|
||||
</H4>
|
||||
<P>All classes that compute the temperature of the system are sub-classes
|
||||
of the Temperature class. See the temperature.h file for a list of
|
||||
methods these classes defines. Temperatures are computed by LAMMPS
|
||||
when velocities are set, when thermodynamics are computed, and when
|
||||
temperature is controlled by various thermostats like the <A HREF = "fix_nvt.html">fix
|
||||
nvt</A> of <A HREF = "fix_langevin.html">fix langevin</A> commands.
|
||||
</P>
|
||||
<P>Temp_full.cpp and temp_full.h are the simplest example of a
|
||||
Temperature class. They implement the <I>full</I> style of the
|
||||
<A HREF = "temperature.html">temperature</A> command.
|
||||
</P>
|
||||
<P>Here is a brief description of the class methods in temperature.h:
|
||||
<P>Here is a brief description of methods you define in your new derived
|
||||
class. See compute.h for details.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >init</TD><TD > setup the temperature computation</TD></TR>
|
||||
<TR><TD >compute</TD><TD > compute and return temperature
|
||||
<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
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "region"></A><H4>Region geometry options
|
||||
<A NAME = "dump"></A><H4>Dump styles
|
||||
</H4>
|
||||
<P>All classes that define geometric regions are sub-classes of the
|
||||
Region class. See the region.h file for a list of methods these
|
||||
classes defines. Regions are used elsewhere in LAMMPS to group atoms,
|
||||
delete atoms to create a void, insert atoms in a specified region,
|
||||
etc.
|
||||
<A NAME = "dump_custom"></A><H4>Dump custom output options
|
||||
</H4>
|
||||
<P>Classes that dump per-atom info to files are derived from the Dump
|
||||
class. To dump new quantities or in a new format, a new derived dump
|
||||
class can be added, but it is typically simpler to modify the
|
||||
DumpCustom class contained in the dump_custom.cpp file.
|
||||
</P>
|
||||
<P>Region_sphere.cpp and region_sphere.h are the simplest example of a
|
||||
Region class. They implement the <I>sphere</I> style of the
|
||||
<A HREF = "region.html">region</A> command.
|
||||
<P>Dump_atom.cpp is a simple example of a derived dump class.
|
||||
</P>
|
||||
<P>Here is a brief description of the single class method required:
|
||||
<P>Here is a brief description of methods you define in your new derived
|
||||
class. See dump.h for details.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >match</TD><TD > determine whether a point is in the region
|
||||
<TR><TD >write_header</TD><TD > write the header section of a snapshot of atoms</TD></TR>
|
||||
<TR><TD >count</TD><TD > count the number of lines a processor will output</TD></TR>
|
||||
<TR><TD >pack</TD><TD > pack a proc's output data into a buffer</TD></TR>
|
||||
<TR><TD >write_data</TD><TD > write a proc's data to a file
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>See the <A HREF = "dump.html">dump</A> command and its <I>custom</I> style for a list of
|
||||
keywords for atom information that can already be dumped by
|
||||
DumpCustom. It includes options to dump per-atom info from Compute
|
||||
classes, so adding a new derived Compute class is one way to calculate
|
||||
new quantities to dump.
|
||||
</P>
|
||||
<P>Alternatively, you can add new keywords to the dump custom command.
|
||||
Search for the word "customize" in dump_custom.cpp to see the
|
||||
half-dozen or so locations where code will need to be added.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "fix"></A><H4>Fix options
|
||||
<A NAME = "fix"></A><H4>Fix styles
|
||||
</H4>
|
||||
<P>In LAMMPS, a "fix" is any operation that is computed during
|
||||
timestepping that alters some property of the system. Essentially
|
||||
everything that happens during a simulation besides force computation,
|
||||
neighbor list manipulation, and output, is a "fix". This includes
|
||||
time integration (update of velocity and coordinates), force
|
||||
constraints (SHAKE or walls), and diagnostics (compute a diffusion
|
||||
coefficient). See the fix.h file for a list of methods these classes
|
||||
defines.
|
||||
neighbor list construction, and output, is a "fix". This includes
|
||||
time integration (update of coordinates and velocities), force
|
||||
constraints or boundary conditions (SHAKE or walls), and diagnostics
|
||||
(compute a diffusion coefficient). New styles can be created to add
|
||||
new options to LAMMPS.
|
||||
</P>
|
||||
<P>There are dozens of fix options in LAMMPS; choose one as a template
|
||||
that is similar to what you want to implement. They can be as simple
|
||||
as zeroing out forces (see <A HREF = "fix_enforce2d.html">fix enforce2d</A> which
|
||||
corresponds to the <I>enforce2d</I> style) or as complicated as applying
|
||||
SHAKE constraints on bonds and angles (see <A HREF = "fix_shake.html">fix shake</A>
|
||||
which corresponds to the <I>shake</I> style) which involves many extra
|
||||
computations.
|
||||
<P>Fix_setforce.cpp is a simple example of setting forces on atoms to
|
||||
prescribed values. There are dozens of fix options already in LAMMPS;
|
||||
choose one as a template that is similar to what you want to
|
||||
implement.
|
||||
</P>
|
||||
<P>Here is a brief description of the class methods in fix.h:
|
||||
<P>Here is a brief description of methods you can define in your new
|
||||
derived class. See fix.h for details.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >setmask</TD><TD > determines when the fix is called during the timestep</TD></TR>
|
||||
|
@ -347,8 +305,7 @@ computations.
|
|||
<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_fields</TD><TD > define quantities for thermodynamic output</TD></TR>
|
||||
<TR><TD >thermo_compute</TD><TD > compute thermodynamic quantities
|
||||
<TR><TD >thermo</TD><TD > compute quantities for thermodynamic output
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Typically, only a small fraction of these methods are defined for a
|
||||
|
@ -363,130 +320,201 @@ when to call the fix. By convention, this is the first argument the
|
|||
fix defines (after the ID, group-ID, style).
|
||||
</P>
|
||||
<P>If the fix needs to store information for each atom that persists from
|
||||
timestep to timestep, it can manage that memory and migrate it with
|
||||
the atoms as they move from processors to processor by implementing
|
||||
the grow_arrays, copy_arrays, pack_exchange, and unpack_exchange
|
||||
methods. Similarly, the pack_restart and unpack_restart methods can be
|
||||
implemented to store information about the fix in restart files. If
|
||||
you wish an integrator or force constraint fix to work with rRESPA (see
|
||||
the <A HREF = "run_style.html">run_style</A> command), the initial_integrate,
|
||||
post_force_integrate, and final_integrate_respa methods can be
|
||||
implemented. The thermo_fields and thermo_compute methods enable a
|
||||
fix to contribute values to thermodynamic output, as printed
|
||||
timestep to timestep, it can manage that memory and migrate the info
|
||||
with the atoms as they move from processors to processor by
|
||||
implementing the grow_arrays, copy_arrays, pack_exchange, and
|
||||
unpack_exchange methods. Similarly, the pack_restart and
|
||||
unpack_restart methods can be implemented to store information about
|
||||
the fix in restart files. If you wish an integrator or force
|
||||
constraint fix to work with rRESPA (see the <A HREF = "run_style.html">run_style</A>
|
||||
command), the initial_integrate, post_force_integrate, and
|
||||
final_integrate_respa methods can be implemented. The thermo method
|
||||
enables a fix to contribute values to thermodynamic output, as printed
|
||||
quantities and/or to be summed to the potential energy of the system.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "atom"></A><H4>Atom options
|
||||
<A NAME = "command"></A><H4>Input script commands
|
||||
</H4>
|
||||
<P>All classes that define an atom style are sub-classes of the Atom
|
||||
class. See the atom.h file for a list of methods these classes
|
||||
defines. The atom style determines what quantities are associated
|
||||
with an atom in a LAMMPS simulation. If one of the existing atom
|
||||
styles does not define all the arrays you need to store with an atom,
|
||||
then a new atom class can be created.
|
||||
</P>
|
||||
<P>Atom_atomic.cpp and atom_atomic.h are the simplest example of an Atom
|
||||
class. They implement the <I>atomic</I> style of the
|
||||
<A HREF = "atom_style.html">atom_style</A> command.
|
||||
</P>
|
||||
<P>Here is a brief description of the class methods in atom.h:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >copy</TD><TD > copy info for one atom to another atom's array location</TD></TR>
|
||||
<TR><TD >pack_comm</TD><TD > store an atom's info in a buffer communicated every timestep</TD></TR>
|
||||
<TR><TD >unpack_comm</TD><TD > retrieve an atom's info from the buffer</TD></TR>
|
||||
<TR><TD >pack_reverse</TD><TD > store an atom's info in a buffer communicating partial forces</TD></TR>
|
||||
<TR><TD >unpack_reverse</TD><TD > retrieve an atom's info from the buffer</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 >unpack_border</TD><TD > retrieve an atom's info from the buffer</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 >
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>There are also several methods in atom.cpp you will need to augment
|
||||
with information about your new atom class, following the patterns of
|
||||
the other atom styles. These routines are so similar for all classes,
|
||||
that it was simpler to just have one master routine for all classes.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >constructor</TD><TD > create style variable and atom array ptrs to NULL</TD></TR>
|
||||
<TR><TD >destructor</TD><TD > free memory for atom arrays</TD></TR>
|
||||
<TR><TD >set_style</TD><TD > set style variable</TD></TR>
|
||||
<TR><TD >check_style</TD><TD > check for pure style vs hybrid style</TD></TR>
|
||||
<TR><TD >style2arg</TD><TD > convert style variables to keywords</TD></TR>
|
||||
<TR><TD >grow</TD><TD > re-allocate atom arrays to longer lengths</TD></TR>
|
||||
<TR><TD >unpack_data</TD><TD > parse atom lines from data file</TD></TR>
|
||||
<TR><TD >create_one</TD><TD > create an individual atom of this style</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 >memory_usage</TD><TD > memory allocated by atom arrays</TD></TR>
|
||||
<TR><TD >
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "variable"></A><H4>Variable options
|
||||
</H4>
|
||||
<P>The variable class stores and evaluates input script variables $a, $b,
|
||||
... $z, as described in <A HREF = "Section_commands.html#3_2">this section</A>.
|
||||
<I>Equal</I>-style variables are defined by an equation that is evaluated
|
||||
each time the variable is used. The equation can include functions,
|
||||
vectors, keywords, and numbers as described in the
|
||||
<A HREF = "variable.html">variable</A> command. The list of valid functions,
|
||||
vectors, and keywords, can be extended by adding a few lines of code
|
||||
to the evaluate() method at the end of the variable.cpp file. Search
|
||||
for the word "customize" to find the correct locations for adding
|
||||
code.
|
||||
</P>
|
||||
<P>A new function (e.g. foo(arg1,arg2,...)) can be added in the section
|
||||
that starts with the comment
|
||||
</P>
|
||||
<PRE>// customize by adding function to this list and to if statement
|
||||
</PRE>
|
||||
<P>A new vector (e.g. q<B></B>) can be added in the section that starts with
|
||||
the comment
|
||||
</P>
|
||||
<PRE>// customize by adding vector to this list and to if statement
|
||||
</PRE>
|
||||
<P>A new keyword (e.g. mysum) can be added in the section that starts with
|
||||
the comment
|
||||
</P>
|
||||
<PRE>// customize by adding keyword to this list and to if statement
|
||||
</PRE>
|
||||
<P>Note that keywords supported by the <A HREF = "themo_style.html">thermo_style
|
||||
custom</A> command are evaluated by the thermo routines,
|
||||
so do not need to be added to variable.cpp.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "command"></A><H4>New top-level commands
|
||||
</H4>
|
||||
<P>It is possible to add a new command to a LAMMPS input script as
|
||||
opposed to adding a new style to an existing command (atom_style,
|
||||
pair_style, fix, etc). For example the create_atoms, read_data,
|
||||
velocity, and run commands are all top-level LAMMPS commands that are
|
||||
listed in the Command section of style.h. When such a command is
|
||||
encountered in the LAMMPS input script, the topmost level of LAMMPS
|
||||
(lammps.cpp) simply creates a class with the corresponding name,
|
||||
<P>New commands can be added to LAMMPS input scripts by adding new
|
||||
classes that have a "command" method and are listed in the Command
|
||||
sections of style.h (or style_user.h). For example, the create_atoms,
|
||||
read_data, velocity, and run commands are all implemented in this
|
||||
fashion. When such a command is encountered in the LAMMPS input
|
||||
script, LAMMPS simply creates a class with the corresponding name,
|
||||
invokes the "command" method of the class, and passes it the arguments
|
||||
from the input script. The command method can perform whatever
|
||||
operations it wishes on the LAMMPS data structures.
|
||||
operations it wishes on LAMMPS data structures.
|
||||
</P>
|
||||
<P>Thus to add a new command, you simply need to add a *.cpp and *.h file
|
||||
containing a single class:
|
||||
<P>The single method your new class must define is as follows:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >command</TD><TD > operations performed by the new command
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Of course, the new class can define other methods and variables that
|
||||
it uses internally.
|
||||
<P>Of course, the new class can define other methods and variables as
|
||||
needed.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "kspace"></A><H4>Kspace computations
|
||||
</H4>
|
||||
<P>Classes that compute long-range Coulombic interactions via K-space
|
||||
represenations (Ewald, PPPM) are derived from the KSpace class. New
|
||||
styles can be created to add new K-space options to LAMMPS.
|
||||
</P>
|
||||
<P>Ewald.cpp is an example of computing K-space interactions.
|
||||
</P>
|
||||
<P>Here is a brief description of methods you define in your new derived
|
||||
class. See kspace.h for details.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >init</TD><TD > initialize the calculation before a run</TD></TR>
|
||||
<TR><TD >setup</TD><TD > computation before the 1st timestep of a run</TD></TR>
|
||||
<TR><TD >compute</TD><TD > every-timestep computation</TD></TR>
|
||||
<TR><TD >memory_usage</TD><TD > tally of memory usage
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "min"></A><H4>Minimization solvers
|
||||
</H4>
|
||||
<P>Classes that perform energy minimization derived from the Min class.
|
||||
New styles can be created to add new minimization algorithms to
|
||||
LAMMPS.
|
||||
</P>
|
||||
<P>Min_cg.cpp is an example of conjugate gradient minimization.
|
||||
</P>
|
||||
<P>Here is a brief description of methods you define in your new derived
|
||||
class. See min.h for details.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >init</TD><TD > initialize the minimization before a run</TD></TR>
|
||||
<TR><TD >run</TD><TD > perform the minimization</TD></TR>
|
||||
<TR><TD >memory_usage</TD><TD > tally of memory usage
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "pair"></A><H4>Pairwise potentials
|
||||
</H4>
|
||||
<P>Classes that compute pairwise interactions are derived from the Pair
|
||||
class. In LAMMPS, pairwise calculation include manybody potentials
|
||||
such as EAM or Tersoff where particles interact without a static bond
|
||||
topology. New styles can be created to add new pair potentials to
|
||||
LAMMPS.
|
||||
</P>
|
||||
<P>Pair_lj_cut.cpp is a simple example of a Pair class, though it
|
||||
includes some optional methods to enable its use with rRESPA.
|
||||
</P>
|
||||
<P>Here is a brief description of the class methods in pair.h:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >compute</TD><TD > workhorse routine that computes pairwise interactions</TD></TR>
|
||||
<TR><TD >settings</TD><TD > reads the input script line with arguments you define</TD></TR>
|
||||
<TR><TD >coeff</TD><TD > set coefficients for one i,j type pair</TD></TR>
|
||||
<TR><TD >init_one</TD><TD > perform initialization for one i,j type pair</TD></TR>
|
||||
<TR><TD >init_style</TD><TD > initialization specific to this pair style</TD></TR>
|
||||
<TR><TD >write & read_restart</TD><TD > write/read i,j pair coeffs to restart files</TD></TR>
|
||||
<TR><TD >write & read_restart_settings</TD><TD > write/read global settings to restart files</TD></TR>
|
||||
<TR><TD >single</TD><TD > force and energy of a single pairwise interaction between 2 atoms</TD></TR>
|
||||
<TR><TD >compute_inner/middle/outer</TD><TD > versions of compute used by rRESPA
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>The inner/middle/outer routines are optional.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "region"></A><H4>Region styles
|
||||
</H4>
|
||||
<P>Classes that define geometric regions are derived from the Region
|
||||
class. Regions are used elsewhere in LAMMPS to group atoms, delete
|
||||
atoms to create a void, insert atoms in a specified region, etc. New
|
||||
styles can be created to add new region shapes to LAMMPS.
|
||||
</P>
|
||||
<P>Region_sphere.cpp is an example of a spherical region.
|
||||
</P>
|
||||
<P>Here is a brief description of methods you define in your new derived
|
||||
class. See region.h for details.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >match</TD><TD > determine whether a point is in the region
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "thermo"></A><H4>Thermodynamic output options
|
||||
</H4>
|
||||
<P>There is one class that computes and prints thermodynamic information
|
||||
to the screen and log file; see the file thermo.cpp.
|
||||
</P>
|
||||
<P>There are several styles defined in thermo.cpp: "one", "multi",
|
||||
"granular", etc. There is also a flexible "custom" style which allows
|
||||
the user to explicitly list keywords for quantities to print when
|
||||
thermodynamic info is output. See the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> command for a list of defined
|
||||
quantities.
|
||||
</P>
|
||||
<P>The thermo styles (one, multi, etc) are simply lists of keywords.
|
||||
Adding a new style thus only requies defining a new list of keywords.
|
||||
Search for the word "customize" with references to "thermo style" in
|
||||
thermo.cpp to see the two locations where code will need to be added.
|
||||
</P>
|
||||
<P>New keywords can also be added to thermo.cpp to compute new quantities
|
||||
for output. Search for the word "customize" with references to
|
||||
"keyword" in thermo.cpp to see the several locations where code will
|
||||
need to be added.
|
||||
</P>
|
||||
<P>Note that the <A HREF = "thermo.html">thermo_style custom</A> command already allows
|
||||
for thermo output of quantities calculated by <A HREF = "fix.html">fixes</A>,
|
||||
<A HREF = "compute.html">computes</A>, and <A HREF = "variable.html">variables</A>. Thus, it may
|
||||
be simpler to compute what you wish via one of those constructs, than
|
||||
by adding a new keyword to the thermo command.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "variable"></A><H4>Variable options
|
||||
</H4>
|
||||
<P>There is one class that computes and stores <A HREF = "variable.html">variable</A>
|
||||
information in LAMMPS; see the file variable.cpp. The value
|
||||
associated with a variable can be periodically printed to the screen
|
||||
via the <A HREF = "print.html">print</A>, <A HREF = "fix_print.html">fix print</A>, or
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> commands. Variables of style
|
||||
"equal" can compute complex equations that involve the following types
|
||||
of arguments:
|
||||
</P>
|
||||
<P>thermo keywords = ke, vol, atoms, ...
|
||||
other variables = v_a, v_myvar, ...
|
||||
math functions = div(x,y), mult(x,y), add(x,y), ...
|
||||
group functions = mass(group), xcm(group,x), ...
|
||||
atom values = x<B>123</B>, y<B>3</B>, vx<B>34</B>, ...
|
||||
compute values = c_mytemp<B>0</B>, c_thermo_press<B>3</B>, ...
|
||||
</P>
|
||||
<P>Adding keywords for the <A HREF = "themo_style.html">thermo_style custom</A> command
|
||||
(which can then be accessed by variables) was discussed
|
||||
<A HREF = "Section_modify.html#thermo">here</A> on this page.
|
||||
</P>
|
||||
<P>Adding a new math function of one or two arguments can be done by
|
||||
editing one section of the Variable::evaulate() method. Search for
|
||||
the word "customize" to find the appropriate location.
|
||||
</P>
|
||||
<P>Adding a new group function can be done by editing one section of the
|
||||
Variable::evaulate() method. Search for the word "customize" to find
|
||||
the appropriate location. You may need to add a new method to the
|
||||
Group class as well (see the group.cpp file).
|
||||
</P>
|
||||
<P>Accessing a new atom-based vector can be done by editing one section
|
||||
of the Variable::evaulate() method. Search for the word "customize"
|
||||
to find the appropriate location.
|
||||
</P>
|
||||
<P>Adding new <A HREF = "compute.html">compute styles</A> (whose calculated values can
|
||||
then be accessed by variables) was discussed
|
||||
<A HREF = "Section_modify.html#compute">here</A> on this page.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "Foo"></A>
|
||||
|
||||
<P><B>(Foo)</B> Foo, Morefoo, and Maxfoo, J of Classic Potentials, 75, 345 (1997).
|
||||
|
|
|
@ -11,29 +11,34 @@ Section"_Section_errors.html :c
|
|||
8. Modifying & extending LAMMPS :h3
|
||||
|
||||
LAMMPS is designed in a modular fashion so as to be easy to modify and
|
||||
extend with new functionality. In this section, changes and additions
|
||||
users can make are listed along with some minimal instructions.
|
||||
Realistically, the best way to add a new feature is to find a similar
|
||||
feature in LAMMPS and look at the corresponding source and header
|
||||
files to figure out what it does. You will need some knowledge of C++
|
||||
to be able to understand the hi-level structure of LAMMPS and its
|
||||
class organization, but functions (class methods) that do actual
|
||||
computations are written in vanilla C-style code and operate on simple
|
||||
C-style data structures (vectors and arrays).
|
||||
extend with new functionality. In fact, about 75% if its source code
|
||||
is files added in this fashion.
|
||||
|
||||
In this section, changes and additions users can make are listed along
|
||||
with minimal instructions. The best way to add a new feature is to
|
||||
find a similar feature in LAMMPS and look at the corresponding source
|
||||
and header files to figure out what it does. You will need some
|
||||
knowledge of C++ to be able to understand the hi-level structure of
|
||||
LAMMPS and its class organization, but functions (class methods) that
|
||||
do actual computations are written in vanilla C-style code and operate
|
||||
on simple C-style data structures (vectors and arrays).
|
||||
|
||||
Most of the new features described in this section require you to
|
||||
write a new C++ class (except for dump, thermo, and variable options,
|
||||
described below, where you can make small edits to existing files).
|
||||
Creating a new class requires 2 files, a source code file (*.cpp) and
|
||||
a header file (*.h). Their contents are briefly discussed below.
|
||||
Enabling LAMMPS to invoke the new class is as simple as adding two
|
||||
definition lines to the style_user.h file, in the same syntax as the
|
||||
existing LAMMPS classes are defined in the style.h file.
|
||||
write a new C++ derived class (except for exceptions described below,
|
||||
where you can make small edits to existing files). Creating a new
|
||||
class requires 2 files, a source code file (*.cpp) and a header file
|
||||
(*.h). The derived class must provide certain methods to work as a
|
||||
new option. Depending on how different your new feature is compared
|
||||
to existing features, you can either derive from the base class
|
||||
itself, or from a derived class that already exists. Enabling LAMMPS
|
||||
to invoke the new class is as simple as adding two lines to the
|
||||
style_user.h file, in the same syntax as other LAMMPS classes are
|
||||
specified in the style.h file.
|
||||
|
||||
The power of C++ and its object-orientation is that usually, all the
|
||||
code and variables needed to define the new feature are contained in
|
||||
the 2 files you write, and thus shouldn't make the rest of the code
|
||||
more complex or cause side-effect bugs.
|
||||
The advantage of C++ and its object-orientation is that all the code
|
||||
and variables needed to define the new feature are in the 2 files you
|
||||
write, and thus shouldn't make the rest of LAMMPS more complex or
|
||||
cause side-effect bugs.
|
||||
|
||||
Here is a concrete example. Suppose you write 2 files pair_foo.cpp
|
||||
and pair_foo.h that define a new class PairFoo that computes pairwise
|
||||
|
@ -43,8 +48,8 @@ command like
|
|||
|
||||
pair_style foo 0.1 3.5 :pre
|
||||
|
||||
you simply need to put your 2 files in the LAMMPS src directory, add 2
|
||||
lines to the style_user.h file, and re-make the code.
|
||||
you put your 2 files in the LAMMPS src directory, add 2 lines to the
|
||||
style_user.h file, and re-make the code.
|
||||
|
||||
The first line added to style_user.h would be
|
||||
|
||||
|
@ -66,107 +71,119 @@ the executable and can be invoked with a pair_style command like the
|
|||
example above. Arguments like 0.1 and 3.5 can be defined and
|
||||
processed by your new class.
|
||||
|
||||
Note that if you are using Makefile.list instead of Makefile to build
|
||||
LAMMPS, you will need to explicitly add the names of your new .cpp and
|
||||
.h file to Makefile.list.
|
||||
Here is a list of the new features that can be added in this way:
|
||||
|
||||
Here is a list of the kinds of new features that can be added in this
|
||||
way. The dump and thermo options do not typically require new styles;
|
||||
LAMMPS can simply be recompiled after new code is added to
|
||||
dump_custom.cpp or thermo_custom.cpp.
|
||||
|
||||
"Pairwise potentials"_#pair
|
||||
"Atom styles"_#atom
|
||||
"Bond, angle, dihedral, improper potentials"_#bond
|
||||
"Dump options"_#dump
|
||||
"Thermodynamic output options"_#thermo
|
||||
"Temperature computation options"_#temp
|
||||
"Region geometry options"_#region
|
||||
"Fix options"_#fix which include integrators, \
|
||||
"Compute styles"_#compute
|
||||
"Dump styles"_#dump
|
||||
"Fix styles"_#fix which include integrators, \
|
||||
temperature and pressure control, force constraints, \
|
||||
boundary conditions, diagnostic output, etc
|
||||
"Atom options"_#atom
|
||||
"Variable options"_#variable
|
||||
"New top-level commands"_#command :ul
|
||||
"Input script commands"_#command
|
||||
"Kspace computations"_#kspace
|
||||
"Minimization solvers"_#min
|
||||
"Pairwise potentials"_#pair
|
||||
"Region styles"_#region :ul
|
||||
|
||||
As illustrated by the pairwise example, these options are
|
||||
referred to in the LAMMPS documentation as the "style" of a particular
|
||||
command.
|
||||
As illustrated by the pairwise example, these options are referred to
|
||||
in the LAMMPS documentation as the "style" of a particular command.
|
||||
|
||||
The instructions below for each category will list the header file for
|
||||
the parent class that these styles are sub-classes of. Public
|
||||
variables in that file are ones used and set by the sub-classes which
|
||||
are also used by the parent class. Sometimes they are also used by
|
||||
the rest of LAMMPS. Virtual functions in the header file which are
|
||||
set = 0 are ones you must define in your new class to give it the
|
||||
functionality LAMMPS expects. Virtual functions that are not set to 0
|
||||
are functions you can optionally define.
|
||||
The instructions below give the header file for the base class that
|
||||
these styles are derived from. Public variables in that file are ones
|
||||
used and set by the derived classes which are also used by the base
|
||||
class. Sometimes they are also used by the rest of LAMMPS. Virtual
|
||||
functions in the base class header file which are set = 0 are ones you
|
||||
must define in your new derived class to give it the functionality
|
||||
LAMMPS expects. Virtual functions that are not set to 0 are functions
|
||||
you can optionally define.
|
||||
|
||||
Here are some additional guidelines for modifying LAMMPS and adding
|
||||
new functionality:
|
||||
Additionally, new output options can be added directly to the
|
||||
thermo.cpp, dump_custom.cpp, and variable.cpp files as explained in
|
||||
these sections:
|
||||
|
||||
"Dump custom output options"_#dump_custom
|
||||
"Thermodynamic output options"_#thermo
|
||||
"Variable options"_#variable :ul
|
||||
|
||||
:line
|
||||
|
||||
Here are additional guidelines for modifying LAMMPS and adding new
|
||||
functionality:
|
||||
|
||||
Think about whether what you want to do would be better as a pre- or
|
||||
post-processing step. Many computations are more easily and more
|
||||
quickly done that way.
|
||||
quickly done that way. :ulb,l
|
||||
|
||||
Don't do anything within the timestepping of a run that isn't
|
||||
parallel. E.g. don't accumulate a bunch of data on a single processor
|
||||
and analyze it. You run the risk of seriously degrading the parallel
|
||||
efficiency.
|
||||
efficiency. :l
|
||||
|
||||
If your new feature reads arguments or writes output, make sure you
|
||||
follow the unit conventions discussed by the "units"_units.html
|
||||
command.
|
||||
command. :l
|
||||
|
||||
If you add something you think is truly useful and doesn't impact
|
||||
LAMMPS performance when it isn't used, send an email to the
|
||||
"developers"_http://lammps.sandia.gov/authors.html. We might be
|
||||
interested in adding it to the LAMMPS distribution.
|
||||
interested in adding it to the LAMMPS distribution. :l,ule
|
||||
|
||||
:line
|
||||
:line
|
||||
|
||||
Pairwise potentials :link(pair),h4
|
||||
Atom styles :link(atom),h4
|
||||
|
||||
All classes that compute pairwise interactions are sub-classes of the
|
||||
Pair class. See the pair.h file for a list of methods this class
|
||||
defines.
|
||||
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.
|
||||
|
||||
Pair_lj_cut.cpp and pair_lj_cut.h are the simplest example of a Pair
|
||||
class. They implement the {lj/cut} style of the
|
||||
"pair_style"_pair_style.html command.
|
||||
Atom_vec_atomic.cpp is a simple example of an atom style.
|
||||
|
||||
Here is a brief description of the class methods in pair.h:
|
||||
Here is a brief description of methods you define in your new derived
|
||||
class. See atom.h for details.
|
||||
|
||||
compute: the workhorse routine that computes the pairwise interactions
|
||||
settings: reads the input script line with any arguments you define
|
||||
coeff: set coefficients for one i,j type pair
|
||||
init_one: perform initialization for one i,j type pair
|
||||
write & read_restart: write/read i,j pair coeffs to restart files
|
||||
write & read_restart_settings: write/read global settings to restart files
|
||||
single: force and energy of a single pairwise interaction between 2 atoms
|
||||
compute_inner/middle/outer: versions of compute used by rRESPA :tb(s=:)
|
||||
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
|
||||
unpack_comm: retrieve an atom's info from the buffer
|
||||
pack_reverse: store an atom's info in a buffer communicating partial forces
|
||||
unpack_reverse: retrieve an atom's info from the buffer
|
||||
pack_border: store an atom's info in a buffer communicated on neighbor re-builds
|
||||
unpack_border: retrieve an atom's info from the buffer
|
||||
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=:)
|
||||
|
||||
The inner/middle/outer routines are optional. Only a few of the
|
||||
pairwise potentials use these in conjunction with rRESPA as set by the
|
||||
"run_style"_run_style.html command.
|
||||
The constructor of the derived class sets values for several variables
|
||||
that you must set when defining a new atom style. The atom arrays
|
||||
themselves are defined in atom.cpp. Search for the word "customize"
|
||||
and you will find locations you will need to modify.
|
||||
|
||||
:line
|
||||
|
||||
Bond, angle, dihedral, improper potentials :link(bond),h4
|
||||
|
||||
All classes that compute molecular interactions are sub-classes of the
|
||||
Bond, Angle, Dihedral, and Improper classes. See the bond.h, angle.h,
|
||||
dihedral.h, and improper.h file for a list of methods these classes
|
||||
defines.
|
||||
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 and bond_harmonic.h are the simplest example of a
|
||||
Bond class. Ditto for the harmonic forms of the angle, dihedral, and
|
||||
improper style commands. The bond_harmonic files implement the
|
||||
{harmonic} style of the "bond_style"_bond_style.html command.
|
||||
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 the class methods in bond.h, angle.h,
|
||||
etc:
|
||||
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.
|
||||
|
||||
compute: the workhorse routine that computes the molecular interactions
|
||||
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
|
||||
|
@ -174,141 +191,80 @@ single: force and energy of a single bond :tb(s=:)
|
|||
|
||||
:line
|
||||
|
||||
Dump options :link(dump),h4
|
||||
Compute styles :link(compute),h4
|
||||
|
||||
There are several classes that print dump files (snapshots of atoms)
|
||||
that are sub-classes of the Dump class. These include the
|
||||
dump_atom.cpp, dump_bond.cpp, and dump_custom.cpp files.
|
||||
Classes that compute scalar and vector quantities like temperature
|
||||
and the pressure tensor, as well as classes that compute per-atom
|
||||
quantities like kinetic energy and the centro-symmetry parameter
|
||||
are derived from the Compute class. New styles can be created
|
||||
to add new calculations to LAMMPS.
|
||||
|
||||
New dump classes can be added, but it is typically simpler to modify
|
||||
the DumpCustom class contained in the dump_custom.cpp file. See the
|
||||
"dump"_dump.html command and its {custom} style for a list of what
|
||||
atom information can already be dumped by DumpCustom. If the
|
||||
attribute you want to dump is not in the list, or if you define a "new
|
||||
atom style"_#atom with new attributes (e.g. atoms that store their own
|
||||
magnetic moment), here is how to dump it out in a snapshot file:
|
||||
Compute_temp.cpp is a simple example of computing a scalar
|
||||
temperature. Compute_ke_atom.cpp is a simple example of computing
|
||||
per-atom kinetic energy.
|
||||
|
||||
Search the dump_custom.cpp and dump_custom.h files for the word
|
||||
"customize". It appears in roughly half a dozen locations. In each
|
||||
of the locations you can add a bit of code that will extend the
|
||||
DumpCustom class to enable it to dump a new quantity. E.g. you will
|
||||
add a keyword, add an if test, add a new small method that packs the
|
||||
requested data into a buffer, etc. For the latter, you can perform a
|
||||
modest amount of computation in this method; see the pack_xs()
|
||||
function for an example.
|
||||
Here is a brief description of methods you define in your new derived
|
||||
class. See compute.h for details.
|
||||
|
||||
If desired, a dump custom option can also compute more complicated
|
||||
quantities by invoking a fix that computed quantities at the end of a
|
||||
timestep (should be the same timestep the dump is invoked on). See
|
||||
the ENERGY, CENTRO, and stress options (SXX, SYY, etc) in
|
||||
dump_custom.cpp for examples.
|
||||
|
||||
When you re-make LAMMPS, your new option should now be useable via the
|
||||
dump custom command.
|
||||
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=:)
|
||||
|
||||
:line
|
||||
|
||||
Thermodynamic output options :link(thermo),h4
|
||||
Dump styles :link(dump),h4
|
||||
Dump custom output options :link(dump_custom),h4
|
||||
|
||||
There is only one class that computes and prints thermodynamic
|
||||
information to the screen and log file, although the
|
||||
"thermo_style"_thermo_style.html command treats its options as styles.
|
||||
Classes that dump per-atom info to files are derived from the Dump
|
||||
class. To dump new quantities or in a new format, a new derived dump
|
||||
class can be added, but it is typically simpler to modify the
|
||||
DumpCustom class contained in the dump_custom.cpp file.
|
||||
|
||||
There are several styles defined in thermo.cpp: "one", "multi", and
|
||||
"granular". There is also a flexible "custom" style which allows you
|
||||
to specify what quantities will be printed each timestep where
|
||||
thermodynamics is computed. See the "thermo_style"_thermo_style.html
|
||||
command for a list of pre-defined quantities.
|
||||
Dump_atom.cpp is a simple example of a derived dump class.
|
||||
|
||||
Here is how you can extend the thermo output capabilities. Search the
|
||||
thermo.cpp and thermo.h files for the word "customize" which will tell
|
||||
you where to make these additions. Note that fixes can also print-out
|
||||
thermodynamic quantities via the "fix_modify"_fix_modify.html command,
|
||||
so you do not need to modify thermo.cpp to print fix information.
|
||||
Here is a brief description of methods you define in your new derived
|
||||
class. See dump.h for details.
|
||||
|
||||
If you want to create a new style (like "one" or "granular") that
|
||||
prints a collection of pre-defined quantities, you add a few lines
|
||||
that define the new style to thermo.cpp. First, add a #DEFINE line at
|
||||
the top of the file which lists the quantities to print. Then add the
|
||||
style name you have chosen to the if test in the constructor to copy
|
||||
the defined string to the line[] variable.
|
||||
write_header: write the header section of a snapshot of atoms
|
||||
count: count the number of lines a processor will output
|
||||
pack: pack a proc's output data into a buffer
|
||||
write_data: write a proc's data to a file :tb(s=:)
|
||||
|
||||
You can also add new quantities to the custom list. Add your new
|
||||
keyword to the if test in the parse_fields() function where the call
|
||||
to addfield() specifies the text string (8 character max) that will be
|
||||
printed with the quantity, the function that will compute it, and the
|
||||
data type (INT,FLOAT) of the quantity. Then at the bottom of the
|
||||
file, add a function compute_*() which computes the quantity you wish
|
||||
to print. The function assigns the quantity to the variable "dvalue"
|
||||
if it is a floating-point quantity, or to "ivalue" if it is an
|
||||
integer. See the other compute_*() functions for examples of how
|
||||
various quantities can be accessed, computed, summed across
|
||||
processors, normalized as per-atom values, etc. Also, if it makes
|
||||
sense to allow the quantity to be stored in a variable in the input
|
||||
script, add a couple of lines to the compute_value() function that is
|
||||
called when a variable is evaluated. Finally, add a prototype for
|
||||
your new compute method to thermo.h.
|
||||
See the "dump"_dump.html command and its {custom} style for a list of
|
||||
keywords for atom information that can already be dumped by
|
||||
DumpCustom. It includes options to dump per-atom info from Compute
|
||||
classes, so adding a new derived Compute class is one way to calculate
|
||||
new quantities to dump.
|
||||
|
||||
Alternatively, you can add new keywords to the dump custom command.
|
||||
Search for the word "customize" in dump_custom.cpp to see the
|
||||
half-dozen or so locations where code will need to be added.
|
||||
|
||||
:line
|
||||
|
||||
Temperature computation options :link(temp),h4
|
||||
|
||||
All classes that compute the temperature of the system are sub-classes
|
||||
of the Temperature class. See the temperature.h file for a list of
|
||||
methods these classes defines. Temperatures are computed by LAMMPS
|
||||
when velocities are set, when thermodynamics are computed, and when
|
||||
temperature is controlled by various thermostats like the "fix
|
||||
nvt"_fix_nvt.html of "fix langevin"_fix_langevin.html commands.
|
||||
|
||||
Temp_full.cpp and temp_full.h are the simplest example of a
|
||||
Temperature class. They implement the {full} style of the
|
||||
"temperature"_temperature.html command.
|
||||
|
||||
Here is a brief description of the class methods in temperature.h:
|
||||
|
||||
init: setup the temperature computation
|
||||
compute: compute and return temperature :tb(s=:)
|
||||
|
||||
:line
|
||||
|
||||
Region geometry options :link(region),h4
|
||||
|
||||
All classes that define geometric regions are sub-classes of the
|
||||
Region class. See the region.h file for a list of methods these
|
||||
classes defines. Regions are used elsewhere in LAMMPS to group atoms,
|
||||
delete atoms to create a void, insert atoms in a specified region,
|
||||
etc.
|
||||
|
||||
Region_sphere.cpp and region_sphere.h are the simplest example of a
|
||||
Region class. They implement the {sphere} style of the
|
||||
"region"_region.html command.
|
||||
|
||||
Here is a brief description of the single class method required:
|
||||
|
||||
match: determine whether a point is in the region :tb(s=:)
|
||||
|
||||
:line
|
||||
|
||||
Fix options :link(fix),h4
|
||||
Fix styles :link(fix),h4
|
||||
|
||||
In LAMMPS, a "fix" is any operation that is computed during
|
||||
timestepping that alters some property of the system. Essentially
|
||||
everything that happens during a simulation besides force computation,
|
||||
neighbor list manipulation, and output, is a "fix". This includes
|
||||
time integration (update of velocity and coordinates), force
|
||||
constraints (SHAKE or walls), and diagnostics (compute a diffusion
|
||||
coefficient). See the fix.h file for a list of methods these classes
|
||||
defines.
|
||||
neighbor list construction, and output, is a "fix". This includes
|
||||
time integration (update of coordinates and velocities), force
|
||||
constraints or boundary conditions (SHAKE or walls), and diagnostics
|
||||
(compute a diffusion coefficient). New styles can be created to add
|
||||
new options to LAMMPS.
|
||||
|
||||
There are dozens of fix options in LAMMPS; choose one as a template
|
||||
that is similar to what you want to implement. They can be as simple
|
||||
as zeroing out forces (see "fix enforce2d"_fix_enforce2d.html which
|
||||
corresponds to the {enforce2d} style) or as complicated as applying
|
||||
SHAKE constraints on bonds and angles (see "fix shake"_fix_shake.html
|
||||
which corresponds to the {shake} style) which involves many extra
|
||||
computations.
|
||||
Fix_setforce.cpp is a simple example of setting forces on atoms to
|
||||
prescribed values. There are dozens of fix options already in LAMMPS;
|
||||
choose one as a template that is similar to what you want to
|
||||
implement.
|
||||
|
||||
Here is a brief description of the class methods in fix.h:
|
||||
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
|
||||
|
@ -337,8 +293,7 @@ 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_fields: define quantities for thermodynamic output
|
||||
thermo_compute: compute thermodynamic quantities :tb(s=:)
|
||||
thermo: compute quantities for thermodynamic output :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
|
||||
|
@ -352,122 +307,188 @@ when to call the fix. By convention, this is the first argument the
|
|||
fix defines (after the ID, group-ID, style).
|
||||
|
||||
If the fix needs to store information for each atom that persists from
|
||||
timestep to timestep, it can manage that memory and migrate it with
|
||||
the atoms as they move from processors to processor by implementing
|
||||
the grow_arrays, copy_arrays, pack_exchange, and unpack_exchange
|
||||
methods. Similarly, the pack_restart and unpack_restart methods can be
|
||||
implemented to store information about the fix in restart files. If
|
||||
you wish an integrator or force constraint fix to work with rRESPA (see
|
||||
the "run_style"_run_style.html command), the initial_integrate,
|
||||
post_force_integrate, and final_integrate_respa methods can be
|
||||
implemented. The thermo_fields and thermo_compute methods enable a
|
||||
fix to contribute values to thermodynamic output, as printed
|
||||
timestep to timestep, it can manage that memory and migrate the info
|
||||
with the atoms as they move from processors to processor by
|
||||
implementing the grow_arrays, copy_arrays, pack_exchange, and
|
||||
unpack_exchange methods. Similarly, the pack_restart and
|
||||
unpack_restart methods can be implemented to store information about
|
||||
the fix in restart files. If you wish an integrator or force
|
||||
constraint fix to work with rRESPA (see the "run_style"_run_style.html
|
||||
command), the initial_integrate, post_force_integrate, and
|
||||
final_integrate_respa methods can be implemented. The thermo method
|
||||
enables a fix to contribute values to thermodynamic output, as printed
|
||||
quantities and/or to be summed to the potential energy of the system.
|
||||
|
||||
:line
|
||||
|
||||
Atom options :link(atom),h4
|
||||
Input script commands :link(command),h4
|
||||
|
||||
All classes that define an atom style are sub-classes of the Atom
|
||||
class. See the atom.h file for a list of methods these classes
|
||||
defines. The atom style determines what quantities are associated
|
||||
with an atom in a LAMMPS simulation. If one of the existing atom
|
||||
styles does not define all the arrays you need to store with an atom,
|
||||
then a new atom class can be created.
|
||||
New commands can be added to LAMMPS input scripts by adding new
|
||||
classes that have a "command" method and are listed in the Command
|
||||
sections of style.h (or style_user.h). For example, the create_atoms,
|
||||
read_data, velocity, and run commands are all implemented in this
|
||||
fashion. When such a command is encountered in the LAMMPS input
|
||||
script, LAMMPS simply creates a class with the corresponding name,
|
||||
invokes the "command" method of the class, and passes it the arguments
|
||||
from the input script. The command method can perform whatever
|
||||
operations it wishes on LAMMPS data structures.
|
||||
|
||||
Atom_atomic.cpp and atom_atomic.h are the simplest example of an Atom
|
||||
class. They implement the {atomic} style of the
|
||||
"atom_style"_atom_style.html command.
|
||||
The single method your new class must define is as follows:
|
||||
|
||||
Here is a brief description of the class methods in atom.h:
|
||||
command: operations performed by the new command :tb(s=:)
|
||||
|
||||
copy: copy info for one atom to another atom's array location
|
||||
pack_comm: store an atom's info in a buffer communicated every timestep
|
||||
unpack_comm: retrieve an atom's info from the buffer
|
||||
pack_reverse: store an atom's info in a buffer communicating partial forces
|
||||
unpack_reverse: retrieve an atom's info from the buffer
|
||||
pack_border: store an atom's info in a buffer communicated on neighbor re-builds
|
||||
unpack_border: retrieve an atom's info from the buffer
|
||||
pack_exchange: store all an atom's info to migrate to another processor
|
||||
unpack_exchange: retrieve an atom's info from the buffer
|
||||
:tb(s=:)
|
||||
Of course, the new class can define other methods and variables as
|
||||
needed.
|
||||
|
||||
There are also several methods in atom.cpp you will need to augment
|
||||
with information about your new atom class, following the patterns of
|
||||
the other atom styles. These routines are so similar for all classes,
|
||||
that it was simpler to just have one master routine for all classes.
|
||||
:line
|
||||
|
||||
constructor: create style variable and atom array ptrs to NULL
|
||||
destructor: free memory for atom arrays
|
||||
set_style: set style variable
|
||||
check_style: check for pure style vs hybrid style
|
||||
style2arg: convert style variables to keywords
|
||||
grow: re-allocate atom arrays to longer lengths
|
||||
unpack_data: parse atom lines from data file
|
||||
create_one: create an individual atom of this style
|
||||
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
|
||||
memory_usage: memory allocated by atom arrays
|
||||
:tb(s=:)
|
||||
Kspace computations :link(kspace),h4
|
||||
|
||||
Classes that compute long-range Coulombic interactions via K-space
|
||||
represenations (Ewald, PPPM) are derived from the KSpace class. New
|
||||
styles can be created to add new K-space options to LAMMPS.
|
||||
|
||||
Ewald.cpp is an example of computing K-space interactions.
|
||||
|
||||
Here is a brief description of methods you define in your new derived
|
||||
class. See kspace.h for details.
|
||||
|
||||
init: initialize the calculation before a run
|
||||
setup: computation before the 1st timestep of a run
|
||||
compute: every-timestep computation
|
||||
memory_usage: tally of memory usage :tb(s=:)
|
||||
|
||||
:line
|
||||
|
||||
Minimization solvers :link(min),h4
|
||||
|
||||
Classes that perform energy minimization derived from the Min class.
|
||||
New styles can be created to add new minimization algorithms to
|
||||
LAMMPS.
|
||||
|
||||
Min_cg.cpp is an example of conjugate gradient minimization.
|
||||
|
||||
Here is a brief description of methods you define in your new derived
|
||||
class. See min.h for details.
|
||||
|
||||
init: initialize the minimization before a run
|
||||
run: perform the minimization
|
||||
memory_usage: tally of memory usage :tb(s=:)
|
||||
|
||||
:line
|
||||
|
||||
Pairwise potentials :link(pair),h4
|
||||
|
||||
Classes that compute pairwise interactions are derived from the Pair
|
||||
class. In LAMMPS, pairwise calculation include manybody potentials
|
||||
such as EAM or Tersoff where particles interact without a static bond
|
||||
topology. New styles can be created to add new pair potentials to
|
||||
LAMMPS.
|
||||
|
||||
Pair_lj_cut.cpp is a simple example of a Pair class, though it
|
||||
includes some optional methods to enable its use with rRESPA.
|
||||
|
||||
Here is a brief description of the class methods in pair.h:
|
||||
|
||||
compute: workhorse routine that computes pairwise interactions
|
||||
settings: reads the input script line with arguments you define
|
||||
coeff: set coefficients for one i,j type pair
|
||||
init_one: perform initialization for one i,j type pair
|
||||
init_style: initialization specific to this pair style
|
||||
write & read_restart: write/read i,j pair coeffs to restart files
|
||||
write & read_restart_settings: write/read global settings to restart files
|
||||
single: force and energy of a single pairwise interaction between 2 atoms
|
||||
compute_inner/middle/outer: versions of compute used by rRESPA :tb(s=:)
|
||||
|
||||
The inner/middle/outer routines are optional.
|
||||
|
||||
:line
|
||||
|
||||
Region styles :link(region),h4
|
||||
|
||||
Classes that define geometric regions are derived from the Region
|
||||
class. Regions are used elsewhere in LAMMPS to group atoms, delete
|
||||
atoms to create a void, insert atoms in a specified region, etc. New
|
||||
styles can be created to add new region shapes to LAMMPS.
|
||||
|
||||
Region_sphere.cpp is an example of a spherical region.
|
||||
|
||||
Here is a brief description of methods you define in your new derived
|
||||
class. See region.h for details.
|
||||
|
||||
match: determine whether a point is in the region :tb(s=:)
|
||||
|
||||
:line
|
||||
|
||||
Thermodynamic output options :link(thermo),h4
|
||||
|
||||
There is one class that computes and prints thermodynamic information
|
||||
to the screen and log file; see the file thermo.cpp.
|
||||
|
||||
There are several styles defined in thermo.cpp: "one", "multi",
|
||||
"granular", etc. There is also a flexible "custom" style which allows
|
||||
the user to explicitly list keywords for quantities to print when
|
||||
thermodynamic info is output. See the
|
||||
"thermo_style"_thermo_style.html command for a list of defined
|
||||
quantities.
|
||||
|
||||
The thermo styles (one, multi, etc) are simply lists of keywords.
|
||||
Adding a new style thus only requies defining a new list of keywords.
|
||||
Search for the word "customize" with references to "thermo style" in
|
||||
thermo.cpp to see the two locations where code will need to be added.
|
||||
|
||||
New keywords can also be added to thermo.cpp to compute new quantities
|
||||
for output. Search for the word "customize" with references to
|
||||
"keyword" in thermo.cpp to see the several locations where code will
|
||||
need to be added.
|
||||
|
||||
Note that the "thermo_style custom"_thermo.html command already allows
|
||||
for thermo output of quantities calculated by "fixes"_fix.html,
|
||||
"computes"_compute.html, and "variables"_variable.html. Thus, it may
|
||||
be simpler to compute what you wish via one of those constructs, than
|
||||
by adding a new keyword to the thermo command.
|
||||
|
||||
:line
|
||||
|
||||
Variable options :link(variable),h4
|
||||
|
||||
The variable class stores and evaluates input script variables $a, $b,
|
||||
... $z, as described in "this section"_Section_commands.html#3_2.
|
||||
{Equal}-style variables are defined by an equation that is evaluated
|
||||
each time the variable is used. The equation can include functions,
|
||||
vectors, keywords, and numbers as described in the
|
||||
"variable"_variable.html command. The list of valid functions,
|
||||
vectors, and keywords, can be extended by adding a few lines of code
|
||||
to the evaluate() method at the end of the variable.cpp file. Search
|
||||
for the word "customize" to find the correct locations for adding
|
||||
code.
|
||||
There is one class that computes and stores "variable"_variable.html
|
||||
information in LAMMPS; see the file variable.cpp. The value
|
||||
associated with a variable can be periodically printed to the screen
|
||||
via the "print"_print.html, "fix print"_fix_print.html, or
|
||||
"thermo_style custom"_thermo_style.html commands. Variables of style
|
||||
"equal" can compute complex equations that involve the following types
|
||||
of arguments:
|
||||
|
||||
A new function (e.g. foo(arg1,arg2,...)) can be added in the section
|
||||
that starts with the comment
|
||||
thermo keywords = ke, vol, atoms, ...
|
||||
other variables = v_a, v_myvar, ...
|
||||
math functions = div(x,y), mult(x,y), add(x,y), ...
|
||||
group functions = mass(group), xcm(group,x), ...
|
||||
atom values = x[123], y[3], vx[34], ...
|
||||
compute values = c_mytemp[0], c_thermo_press[3], ...
|
||||
|
||||
// customize by adding function to this list and to if statement :pre
|
||||
Adding keywords for the "thermo_style custom"_themo_style.html command
|
||||
(which can then be accessed by variables) was discussed
|
||||
"here"_Section_modify.html#thermo on this page.
|
||||
|
||||
A new vector (e.g. q[]) can be added in the section that starts with
|
||||
the comment
|
||||
Adding a new math function of one or two arguments can be done by
|
||||
editing one section of the Variable::evaulate() method. Search for
|
||||
the word "customize" to find the appropriate location.
|
||||
|
||||
// customize by adding vector to this list and to if statement :pre
|
||||
Adding a new group function can be done by editing one section of the
|
||||
Variable::evaulate() method. Search for the word "customize" to find
|
||||
the appropriate location. You may need to add a new method to the
|
||||
Group class as well (see the group.cpp file).
|
||||
|
||||
A new keyword (e.g. mysum) can be added in the section that starts with
|
||||
the comment
|
||||
Accessing a new atom-based vector can be done by editing one section
|
||||
of the Variable::evaulate() method. Search for the word "customize"
|
||||
to find the appropriate location.
|
||||
|
||||
// customize by adding keyword to this list and to if statement :pre
|
||||
|
||||
Note that keywords supported by the "thermo_style
|
||||
custom"_themo_style.html command are evaluated by the thermo routines,
|
||||
so do not need to be added to variable.cpp.
|
||||
Adding new "compute styles"_compute.html (whose calculated values can
|
||||
then be accessed by variables) was discussed
|
||||
"here"_Section_modify.html#compute on this page.
|
||||
|
||||
:line
|
||||
|
||||
New top-level commands :link(command),h4
|
||||
|
||||
It is possible to add a new command to a LAMMPS input script as
|
||||
opposed to adding a new style to an existing command (atom_style,
|
||||
pair_style, fix, etc). For example the create_atoms, read_data,
|
||||
velocity, and run commands are all top-level LAMMPS commands that are
|
||||
listed in the Command section of style.h. When such a command is
|
||||
encountered in the LAMMPS input script, the topmost level of LAMMPS
|
||||
(lammps.cpp) simply creates a class with the corresponding name,
|
||||
invokes the "command" method of the class, and passes it the arguments
|
||||
from the input script. The command method can perform whatever
|
||||
operations it wishes on the LAMMPS data structures.
|
||||
|
||||
Thus to add a new command, you simply need to add a *.cpp and *.h file
|
||||
containing a single class:
|
||||
|
||||
command: operations performed by the new command :tb(s=:)
|
||||
|
||||
Of course, the new class can define other methods and variables that
|
||||
it uses internally.
|
||||
|
||||
:line
|
||||
|
||||
:link(Foo)
|
||||
|
|
|
@ -16,16 +16,18 @@ new and experienced users.
|
|||
</P>
|
||||
2.1 <A HREF = "#2_1">What's in the LAMMPS distribution</A><BR>
|
||||
2.2 <A HREF = "#2_2">Making LAMMPS</A><BR>
|
||||
2.3 <A HREF = "#2_3">Running LAMMPS</A><BR>
|
||||
2.4 <A HREF = "#2_4">Command-line options</A><BR>
|
||||
2.5 <A HREF = "#2_5">Screen output</A><BR>
|
||||
2.6 <A HREF = "#2_6">Tips for users of previous versions</A> <BR>
|
||||
2.3 <A HREF = "#2_3">Making LAMMPS with optional packages</A><BR>
|
||||
2.4 <A HREF = "#2_4">Building LAMMPS as a library</A><BR>
|
||||
2.5 <A HREF = "#2_5">Running LAMMPS</A><BR>
|
||||
2.6 <A HREF = "#2_6">Command-line options</A><BR>
|
||||
2.7 <A HREF = "#2_7">Screen output</A><BR>
|
||||
2.8 <A HREF = "#2_8">Tips for users of previous versions</A> <BR>
|
||||
|
||||
<HR>
|
||||
|
||||
<H4><A NAME = "2_1"></A>2.1 What's in the LAMMPS distribution
|
||||
</H4>
|
||||
<P>When you download LAMMPS you will need to unzip and untar the
|
||||
<P>When you download SLAMMPS you will need to unzip and untar the
|
||||
downloaded file with the following commands, after placing the file in
|
||||
an appropriate directory.
|
||||
</P>
|
||||
|
@ -57,20 +59,19 @@ makefile, there are compiler options, additional libraries can be used
|
|||
(MPI, FFT), etc. Please read this section carefully. If you are not
|
||||
comfortable with makefiles, or building codes on a Unix platform, or
|
||||
running an MPI job on your machine, please find a local expert to help
|
||||
you. Many of the emails we get about build and run problems are not
|
||||
really about LAMMPS - they are peculiar to the user's system,
|
||||
compilers, libraries, etc. Such questions are better answered by a
|
||||
local expert.
|
||||
you. Many compiling, linking, and run problems users have do not
|
||||
really have to do with LAMMPS - they are peculiar to the user's
|
||||
system, compilers, libraries, etc. Such questions are better answered
|
||||
by a local expert.
|
||||
</P>
|
||||
<P>If you have a build problem that you are convinced is a LAMMPS issue
|
||||
(e.g. the compiler complains about a line of LAMMPS source code), then
|
||||
please send an email to the
|
||||
<A HREF = "http://lammps.sandia.gov/authors.html">developers</A>. Note that doesn't
|
||||
include linking problems - that's a question for a local expert!
|
||||
<A HREF = "http://lammps.sandia.gov/authors.html">developers</A>.
|
||||
</P>
|
||||
<P>Also, if you succeed in building LAMMPS on a new kind of machine
|
||||
(which there isn't a similar Makefile for in the distribution), send
|
||||
it to the developers and we'll include it in future LAMMPS releases.
|
||||
<P>If you succeed in building LAMMPS on a new kind of machine (which
|
||||
there isn't a similar Makefile for in the distribution), send it to
|
||||
the developers and we'll include it in future LAMMPS releases.
|
||||
</P>
|
||||
<P><B><I>Building a LAMMPS executable:</I></B>
|
||||
</P>
|
||||
|
@ -85,12 +86,9 @@ type a command like:
|
|||
gmake mac
|
||||
</PRE>
|
||||
<P>If you get no errors and an executable like lmp_linux or lmp_mac is
|
||||
produced, you're done; it's your lucky day. The remainder of this
|
||||
section addressed the following topics: errors that occur when making
|
||||
LAMMPS, editing a new low-level Makefile.foo, how to make LAMMPS with
|
||||
and without packages, and additional build tips.
|
||||
produced, you're done; it's your lucky day.
|
||||
</P>
|
||||
<P><B><I>Errors that occur when making LAMMPS:</I></B>
|
||||
<P><B><I>Errors that can occur when making LAMMPS:</I></B>
|
||||
</P>
|
||||
<P>(1) If the make command breaks immediately with errors that indicate
|
||||
it can't find files with a "*" in their names, this can be because
|
||||
|
@ -210,98 +208,6 @@ gmake foo
|
|||
</PRE>
|
||||
<P>You should get the executable lmp_foo when the build is complete.
|
||||
</P>
|
||||
<P><B><I>How to make LAMMPS with and without packages:</I></B>
|
||||
</P>
|
||||
<P>The source code for LAMMPS is structured as a large set of core files
|
||||
that are always used plus additional packages, which are groups of
|
||||
files that enable a specific set of features. For example, force
|
||||
fields for molecular systems or granular systems are in packages. You
|
||||
can see the list of packages by typing "make package". The current
|
||||
list of packages is as follows:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >class2 </TD><TD > class 2 force fields</TD></TR>
|
||||
<TR><TD >dpd </TD><TD > dissipative particle dynamics (DPD) force field</TD></TR>
|
||||
<TR><TD >granular </TD><TD > force fields and boundary conditions for granular systems</TD></TR>
|
||||
<TR><TD >kspace </TD><TD > long-range Ewald and particle-mesh (PPPM) solvers</TD></TR>
|
||||
<TR><TD >manybody </TD><TD > metal, 3-body, bond-order potentials</TD></TR>
|
||||
<TR><TD >molecule </TD><TD > force fields for molecular systems</TD></TR>
|
||||
<TR><TD >poems </TD><TD > coupled rigid body motion</TD></TR>
|
||||
<TR><TD >xtc </TD><TD > dump atom snapshots in XTC format
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Any or all of these packages can be included or excluded when LAMMPS
|
||||
is built. The default is to include only the kspace, manybody, and
|
||||
molecule packages. You may wish to exclude certain packages if you
|
||||
will never run certain kinds of simulations. This will produce a
|
||||
smaller executable which in some cases will also run a bit faster.
|
||||
</P>
|
||||
<P>Packages are included or excluded by typing "make yes-name" or "make
|
||||
no-name", where "name" is the name of the package. You can also type
|
||||
"make yes-all" or "make no-all" to include/exclude all optional
|
||||
packages. These commands work by simply moving files back and forth
|
||||
between the main src directory and sub-directories with the package
|
||||
name, so that the files are not seen when LAMMPS is built. After you
|
||||
have included or excluded a package, you must re-make LAMMPS.
|
||||
</P>
|
||||
<P>Additional make options exist to help manage LAMMPS files that exist
|
||||
in both the src directory and in package sub-directories. Typing
|
||||
"make package-update" will overwrite src files with files from the
|
||||
package directories if the package has been included. Typing "make
|
||||
package-overwrite" will overwrite files in the package directories
|
||||
with src files. Typing "make package-check" will list differences
|
||||
between src and package versions of the same files.
|
||||
</P>
|
||||
<P>To use the poems package you must build LAMMPS with the POEMS library,
|
||||
which computes the constrained rigid-body motion of articulated
|
||||
(jointed) multibody systems. POEMS was written and is distributed by
|
||||
Prof Kurt Anderson's group at Rensselaer Polytechnic Institute (RPI).
|
||||
It is included in the LAMMPS distribution. To build LAMMPS with
|
||||
POEMS, you must use a low-level LAMMPS Makefile that includes the
|
||||
POEMS directory in its paths. See Makefile.g++.poems as an example.
|
||||
You must also build POEMS itself as a library before building LAMMPS,
|
||||
so that LAMMPS can link against it. The POEMS library is built by
|
||||
typing "make" from within the poems directory in the LAMMPS
|
||||
distribution. By default this uses Makefile which uses the gcc
|
||||
compiler. If you need to use another compiler (so that the POEMS
|
||||
library and LAMMPS are consistent), use another poems/Makefile.* or
|
||||
create your own and invoke it as "make -f Makefile.*".
|
||||
</P>
|
||||
<P><B><I>Building LAMMPS as a library:</I></B>
|
||||
</P>
|
||||
<P>LAMMPS can be built as a library, which can then be called from
|
||||
another application or a scripting language. See <A HREF = "Section_howto.html#4_10">this
|
||||
section</A> for more info on coupling LAMMPS to
|
||||
other codes. Building LAMMPS as a library is done by typing
|
||||
</P>
|
||||
<PRE>make makelib
|
||||
make -f Makefile.lib foo
|
||||
</PRE>
|
||||
<P>where foo is the machine name. The first "make" command will create a
|
||||
current Makefile.lib with all the file names in your src dir. The 2nd
|
||||
"make" command will use it to build LAMMPS as a library. This
|
||||
requires that Makefile.foo have a library target (lib) and
|
||||
system-specific settings for ARCHIVE and ARFLAGS. See Makefile.linux
|
||||
for an example. The build will create the file liblmp_foo.a which
|
||||
another application can link to. The callable functions in the
|
||||
library are listed in library.h, but you can add as many functions as
|
||||
you wish to library.h and library.cpp, which can access LAMMPS data
|
||||
and return it to the caller or set LAMMPS data values as specified by
|
||||
the caller. These 3 functions are included in the library:
|
||||
</P>
|
||||
<PRE>void lammps_open(int, char **, MPI_Comm);
|
||||
void lammps_close();
|
||||
int lammps_command(char *);
|
||||
</PRE>
|
||||
<P>The lammps_open() function is used to initialize LAMMPS, passing in a
|
||||
list of strings as if they were <A HREF = "#2_4">command-line arguments</A> when
|
||||
LAMMPS is run from the command line and a MPI communicator for LAMMPS
|
||||
to run under. The lammps_close() function is used to shut down LAMMPS
|
||||
and free all its memory. The lammps_command() function is used to
|
||||
pass a string to LAMMPS as if it were an input command read from an
|
||||
input script. See the library.h file for more information about the
|
||||
arguments and return values for these 3 functions.
|
||||
</P>
|
||||
<P><B><I>Additional build tips:</I></B>
|
||||
</P>
|
||||
<P>(1) Building LAMMPS for multiple platforms.
|
||||
|
@ -337,11 +243,149 @@ make. Or you should be able to pull all the source files into Visual
|
|||
C++ (ugh) or some similar development environment and build it. In
|
||||
the src/MAKE/Windows directory are some notes from users on how they
|
||||
built LAMMPS under Windows, so you can look at their instructions for
|
||||
tips. Good luck - I can't help you on this one.
|
||||
tips. Good luck - we can't help you on this one.
|
||||
</P>
|
||||
<H4><A NAME = "2_3"></A>2.3 Making LAMMPS with optional packages
|
||||
</H4>
|
||||
<P>The source code for LAMMPS is structured as a large set of core files
|
||||
that are always used plus additional packages, which are groups of
|
||||
files that enable a specific set of features. For example, force
|
||||
fields for molecular systems or granular systems are in packages. You
|
||||
can see the list of packages by typing "make package". The current
|
||||
list of packages is as follows:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >class2 </TD><TD > class 2 force fields</TD></TR>
|
||||
<TR><TD >dpd </TD><TD > dissipative particle dynamics (DPD) force field</TD></TR>
|
||||
<TR><TD >granular </TD><TD > force fields and boundary conditions for granular systems</TD></TR>
|
||||
<TR><TD >kspace </TD><TD > long-range Ewald and particle-mesh (PPPM) solvers</TD></TR>
|
||||
<TR><TD >manybody </TD><TD > metal, 3-body, bond-order potentials</TD></TR>
|
||||
<TR><TD >meam </TD><TD > modified embedded atom method (MEAM) potential</TD></TR>
|
||||
<TR><TD >molecule </TD><TD > force fields for molecular systems</TD></TR>
|
||||
<TR><TD >opt </TD><TD > optimized versions of a few pair potentials</TD></TR>
|
||||
<TR><TD >poems </TD><TD > coupled rigid body motion</TD></TR>
|
||||
<TR><TD >xtc </TD><TD > dump atom snapshots in XTC format
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>Any or all packages can be included or excluded when LAMMPS is built.
|
||||
The one exception is that to use the "opt" package, you must also be
|
||||
using the "molecule" and "manybody" packages. You may wish to exclude
|
||||
certain packages if you will never run certain kinds of simulations.
|
||||
This will produce a smaller executable which may run a bit faster.
|
||||
</P>
|
||||
<P>By default, LAMMPS includes only the "kspace", "manybody", and
|
||||
"molecule" packages. As described below, some packages require LAMMPS
|
||||
be linked to separately built library files, which will require
|
||||
editing of your machine Makefile.
|
||||
</P>
|
||||
<P>Packages are included or excluded by typing "make yes-name" or "make
|
||||
no-name", where "name" is the name of the package. You can also type
|
||||
"make yes-all" or "make no-all" to include/exclude all optional
|
||||
packages. These commands work by simply moving files back and forth
|
||||
between the main src directory and sub-directories with the package
|
||||
name, so that the files are seen or not seen when LAMMPS is built.
|
||||
After you have included or excluded a package, you must re-make
|
||||
LAMMPS.
|
||||
</P>
|
||||
<P>Additional make options exist to help manage LAMMPS files that exist
|
||||
in both the src directory and in package sub-directories. You do not
|
||||
normally need to use these commands unless you are editing LAMMPS
|
||||
files or have downloaded a patch from the LAMMPS WWW site. Typing
|
||||
"make package-update" will overwrite src files with files from the
|
||||
package directories if the package has been included. It should be
|
||||
used after a patch is installed, since patches only update the master
|
||||
package version of a file. Typing "make package-overwrite" will
|
||||
overwrite files in the package directories with src files. Typing
|
||||
"make package-check" will list differences between src and package
|
||||
versions of the same files.
|
||||
</P>
|
||||
<P>To use the "poems" package you must build LAMMPS with the POEMS
|
||||
library, which computes the constrained rigid-body motion of
|
||||
articulated (jointed) multibody systems. POEMS was written and is
|
||||
distributed by Prof Kurt Anderson's group at Rensselaer Polytechnic
|
||||
Institute (RPI) and a version is included in the LAMMPS distribution
|
||||
under the "lib" directory. To build LAMMPS with POEMS, you must use a
|
||||
low-level LAMMPS Makefile that includes the POEMS directory in its
|
||||
paths. See Makefile.g++_poems as an example. You must also build
|
||||
POEMS itself as a library before building LAMMPS, so that LAMMPS can
|
||||
link against it. The POEMS library is built by typing "make" from
|
||||
within the poems directory with the appropriate Makefile, e.g. "make
|
||||
-f Makefile.g++". If one of the provided Makefiles is not appropriate
|
||||
for your system you can edit or add one as needed.
|
||||
</P>
|
||||
<P>To use the "meam" package you must build LAMMPS with the MEAM library,
|
||||
which computes the modified embedded atom method potential, which is a
|
||||
generalization of EAM potentials that can be used to model a wider
|
||||
variety of materials. This MEAM implementation was written by Greg
|
||||
Wagner at Sandia and is included under the "lib" directory. To build
|
||||
LAMMPS with MEAM, you must use a low-level LAMMPS Makefile that
|
||||
includes the MEAM directory in its paths. See Makefile.linux_meam as
|
||||
an example. You must also build MEAM itself as a library before
|
||||
building LAMMPS, so that LAMMPS can link against it. This requires a
|
||||
F90 compiler. The library is built by typing "make" from within the
|
||||
meam directory with the appropriate Makefile, e.g. "make -f
|
||||
Makefile.icc". If one of the provided Makefiles is not appropriate
|
||||
for your system you can edit or add one as needed.
|
||||
</P>
|
||||
<P>Linking a Fortran library to a C++ code can be problematic
|
||||
(e.g. non-matching underscore conventions). If you have problems with
|
||||
a particular compiler/machine, please send an email to the developers.
|
||||
</P>
|
||||
<H4><A NAME = "2_4"></A>2.4 Building LAMMPS as a library
|
||||
</H4>
|
||||
<P>LAMMPS can be built as a library, which can then be called from
|
||||
another application or a scripting language. See <A HREF = "Section_howto.html#4_10">this
|
||||
section</A> for more info on coupling LAMMPS to
|
||||
other codes. Building LAMMPS as a library is done by typing
|
||||
</P>
|
||||
<PRE>make makelib
|
||||
make -f Makefile.lib foo
|
||||
</PRE>
|
||||
<P>where foo is the machine name. The first "make" command will create a
|
||||
current Makefile.lib with all the file names in your src dir. The 2nd
|
||||
"make" command will use it to build LAMMPS as a library. This
|
||||
requires that Makefile.foo have a library target (lib) and
|
||||
system-specific settings for ARCHIVE and ARFLAGS. See Makefile.linux
|
||||
for an example. The build will create the file liblmp_foo.a which
|
||||
another application can link to.
|
||||
</P>
|
||||
<P>When used from a C++ program, the library allows one or more LAMMPS
|
||||
objects to be instantiated. All of LAMMPS is wrapped in a LAMMPS_NS
|
||||
namespace; you can safely use any of its classes and methods from
|
||||
within your application code, as needed. See the sample code
|
||||
examples/couple/c++_driver.cpp as an example.
|
||||
</P>
|
||||
<P>When used from a C or Fortran program or a scripting language, the
|
||||
library has a simple function-style interface, provided in library.cpp
|
||||
and library.h. See the sample code examples/couple/c_driver.cpp as an
|
||||
example.
|
||||
</P>
|
||||
<P>You can add as many functions as you wish to library.cpp and
|
||||
library.h. In a general sense, those functions can access LAMMPS data
|
||||
and return it to the caller or set LAMMPS data values as specified by
|
||||
the caller. These 4 functions are currently included in library.cpp:
|
||||
</P>
|
||||
<PRE>void lammps_open(int, char **, MPI_Comm, void **ptr);
|
||||
void lammps_close(void *ptr);
|
||||
int lammps_file(void *ptr, char *);
|
||||
int lammps_command(void *ptr, char *);
|
||||
</PRE>
|
||||
<P>The lammps_open() function is used to initialize LAMMPS, passing in a
|
||||
list of strings as if they were <A HREF = "#2_6">command-line arguments</A> when
|
||||
LAMMPS is run from the command line and a MPI communicator for LAMMPS
|
||||
to run under. It returns a ptr to the LAMMPS object that is created,
|
||||
and which should be used in subsequent library calls. Note that
|
||||
lammps_open() can be called multiple times to create multiple LAMMPS
|
||||
objects.
|
||||
</P>
|
||||
<P>The lammps_close() function is used to shut down LAMMPS and free all
|
||||
its memory. The lammps_file() and lammps_command() functions are used
|
||||
to pass a file or string to LAMMPS as if it were an input file or
|
||||
single command read from an input script.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<H4><A NAME = "2_3"></A>2.3 Running LAMMPS
|
||||
<H4><A NAME = "2_5"></A>2.5 Running LAMMPS
|
||||
</H4>
|
||||
<P>By default, LAMMPS runs by reading commands from stdin; e.g. lmp_linux
|
||||
< in.file. This means you first create an input script (e.g. in.file)
|
||||
|
@ -388,7 +432,7 @@ more processors or setup a smaller problem.
|
|||
</P>
|
||||
<HR>
|
||||
|
||||
<H4><A NAME = "2_4"></A>2.4 Command-line options
|
||||
<H4><A NAME = "2_6"></A>2.6 Command-line options
|
||||
</H4>
|
||||
<P>At run time, LAMMPS recognizes several optional command-line switches
|
||||
which may be used in any order. For example, lmp_ibm might be
|
||||
|
@ -476,7 +520,7 @@ variables in scripts.
|
|||
</P>
|
||||
<HR>
|
||||
|
||||
<H4><A NAME = "2_5"></A>2.5 LAMMPS screen output
|
||||
<H4><A NAME = "2_7"></A>2.7 LAMMPS screen output
|
||||
</H4>
|
||||
<P>As LAMMPS reads an input script, it prints information to both the
|
||||
screen and a log file about significant actions it takes to setup a
|
||||
|
@ -573,7 +617,7 @@ communication, roughly 75% in the example above.
|
|||
</P>
|
||||
<HR>
|
||||
|
||||
<H4><A NAME = "2_6"></A>2.6 Tips for users of previous LAMMPS versions
|
||||
<H4><A NAME = "2_8"></A>2.8 Tips for users of previous LAMMPS versions
|
||||
</H4>
|
||||
<P>LAMMPS 2003 is a complete C++ rewrite of LAMMPS 2001, which was
|
||||
written in F90. Features of earlier versions of LAMMPS are listed in
|
||||
|
|
|
@ -13,16 +13,18 @@ new and experienced users.
|
|||
|
||||
2.1 "What's in the LAMMPS distribution"_#2_1
|
||||
2.2 "Making LAMMPS"_#2_2
|
||||
2.3 "Running LAMMPS"_#2_3
|
||||
2.4 "Command-line options"_#2_4
|
||||
2.5 "Screen output"_#2_5
|
||||
2.6 "Tips for users of previous versions"_#2_6 :all(b)
|
||||
2.3 "Making LAMMPS with optional packages"_#2_3
|
||||
2.4 "Building LAMMPS as a library"_#2_4
|
||||
2.5 "Running LAMMPS"_#2_5
|
||||
2.6 "Command-line options"_#2_6
|
||||
2.7 "Screen output"_#2_7
|
||||
2.8 "Tips for users of previous versions"_#2_8 :all(b)
|
||||
|
||||
:line
|
||||
|
||||
2.1 What's in the LAMMPS distribution :h4,link(2_1)
|
||||
|
||||
When you download LAMMPS you will need to unzip and untar the
|
||||
When you download SLAMMPS you will need to unzip and untar the
|
||||
downloaded file with the following commands, after placing the file in
|
||||
an appropriate directory.
|
||||
|
||||
|
@ -52,20 +54,19 @@ makefile, there are compiler options, additional libraries can be used
|
|||
(MPI, FFT), etc. Please read this section carefully. If you are not
|
||||
comfortable with makefiles, or building codes on a Unix platform, or
|
||||
running an MPI job on your machine, please find a local expert to help
|
||||
you. Many of the emails we get about build and run problems are not
|
||||
really about LAMMPS - they are peculiar to the user's system,
|
||||
compilers, libraries, etc. Such questions are better answered by a
|
||||
local expert.
|
||||
you. Many compiling, linking, and run problems users have do not
|
||||
really have to do with LAMMPS - they are peculiar to the user's
|
||||
system, compilers, libraries, etc. Such questions are better answered
|
||||
by a local expert.
|
||||
|
||||
If you have a build problem that you are convinced is a LAMMPS issue
|
||||
(e.g. the compiler complains about a line of LAMMPS source code), then
|
||||
please send an email to the
|
||||
"developers"_http://lammps.sandia.gov/authors.html. Note that doesn't
|
||||
include linking problems - that's a question for a local expert!
|
||||
"developers"_http://lammps.sandia.gov/authors.html.
|
||||
|
||||
Also, if you succeed in building LAMMPS on a new kind of machine
|
||||
(which there isn't a similar Makefile for in the distribution), send
|
||||
it to the developers and we'll include it in future LAMMPS releases.
|
||||
If you succeed in building LAMMPS on a new kind of machine (which
|
||||
there isn't a similar Makefile for in the distribution), send it to
|
||||
the developers and we'll include it in future LAMMPS releases.
|
||||
|
||||
[{Building a LAMMPS executable:}]
|
||||
|
||||
|
@ -80,12 +81,9 @@ make linux
|
|||
gmake mac :pre
|
||||
|
||||
If you get no errors and an executable like lmp_linux or lmp_mac is
|
||||
produced, you're done; it's your lucky day. The remainder of this
|
||||
section addressed the following topics: errors that occur when making
|
||||
LAMMPS, editing a new low-level Makefile.foo, how to make LAMMPS with
|
||||
and without packages, and additional build tips.
|
||||
produced, you're done; it's your lucky day.
|
||||
|
||||
[{Errors that occur when making LAMMPS:}]
|
||||
[{Errors that can occur when making LAMMPS:}]
|
||||
|
||||
(1) If the make command breaks immediately with errors that indicate
|
||||
it can't find files with a "*" in their names, this can be because
|
||||
|
@ -205,96 +203,6 @@ gmake foo :pre
|
|||
|
||||
You should get the executable lmp_foo when the build is complete.
|
||||
|
||||
[{How to make LAMMPS with and without packages:}]
|
||||
|
||||
The source code for LAMMPS is structured as a large set of core files
|
||||
that are always used plus additional packages, which are groups of
|
||||
files that enable a specific set of features. For example, force
|
||||
fields for molecular systems or granular systems are in packages. You
|
||||
can see the list of packages by typing "make package". The current
|
||||
list of packages is as follows:
|
||||
|
||||
class2 : class 2 force fields
|
||||
dpd : dissipative particle dynamics (DPD) force field
|
||||
granular : force fields and boundary conditions for granular systems
|
||||
kspace : long-range Ewald and particle-mesh (PPPM) solvers
|
||||
manybody : metal, 3-body, bond-order potentials
|
||||
molecule : force fields for molecular systems
|
||||
poems : coupled rigid body motion
|
||||
xtc : dump atom snapshots in XTC format :tb(s=:)
|
||||
|
||||
Any or all of these packages can be included or excluded when LAMMPS
|
||||
is built. The default is to include only the kspace, manybody, and
|
||||
molecule packages. You may wish to exclude certain packages if you
|
||||
will never run certain kinds of simulations. This will produce a
|
||||
smaller executable which in some cases will also run a bit faster.
|
||||
|
||||
Packages are included or excluded by typing "make yes-name" or "make
|
||||
no-name", where "name" is the name of the package. You can also type
|
||||
"make yes-all" or "make no-all" to include/exclude all optional
|
||||
packages. These commands work by simply moving files back and forth
|
||||
between the main src directory and sub-directories with the package
|
||||
name, so that the files are not seen when LAMMPS is built. After you
|
||||
have included or excluded a package, you must re-make LAMMPS.
|
||||
|
||||
Additional make options exist to help manage LAMMPS files that exist
|
||||
in both the src directory and in package sub-directories. Typing
|
||||
"make package-update" will overwrite src files with files from the
|
||||
package directories if the package has been included. Typing "make
|
||||
package-overwrite" will overwrite files in the package directories
|
||||
with src files. Typing "make package-check" will list differences
|
||||
between src and package versions of the same files.
|
||||
|
||||
To use the poems package you must build LAMMPS with the POEMS library,
|
||||
which computes the constrained rigid-body motion of articulated
|
||||
(jointed) multibody systems. POEMS was written and is distributed by
|
||||
Prof Kurt Anderson's group at Rensselaer Polytechnic Institute (RPI).
|
||||
It is included in the LAMMPS distribution. To build LAMMPS with
|
||||
POEMS, you must use a low-level LAMMPS Makefile that includes the
|
||||
POEMS directory in its paths. See Makefile.g++.poems as an example.
|
||||
You must also build POEMS itself as a library before building LAMMPS,
|
||||
so that LAMMPS can link against it. The POEMS library is built by
|
||||
typing "make" from within the poems directory in the LAMMPS
|
||||
distribution. By default this uses Makefile which uses the gcc
|
||||
compiler. If you need to use another compiler (so that the POEMS
|
||||
library and LAMMPS are consistent), use another poems/Makefile.* or
|
||||
create your own and invoke it as "make -f Makefile.*".
|
||||
|
||||
[{Building LAMMPS as a library:}]
|
||||
|
||||
LAMMPS can be built as a library, which can then be called from
|
||||
another application or a scripting language. See "this
|
||||
section"_Section_howto.html#4_10 for more info on coupling LAMMPS to
|
||||
other codes. Building LAMMPS as a library is done by typing
|
||||
|
||||
make makelib
|
||||
make -f Makefile.lib foo :pre
|
||||
|
||||
where foo is the machine name. The first "make" command will create a
|
||||
current Makefile.lib with all the file names in your src dir. The 2nd
|
||||
"make" command will use it to build LAMMPS as a library. This
|
||||
requires that Makefile.foo have a library target (lib) and
|
||||
system-specific settings for ARCHIVE and ARFLAGS. See Makefile.linux
|
||||
for an example. The build will create the file liblmp_foo.a which
|
||||
another application can link to. The callable functions in the
|
||||
library are listed in library.h, but you can add as many functions as
|
||||
you wish to library.h and library.cpp, which can access LAMMPS data
|
||||
and return it to the caller or set LAMMPS data values as specified by
|
||||
the caller. These 3 functions are included in the library:
|
||||
|
||||
void lammps_open(int, char **, MPI_Comm);
|
||||
void lammps_close();
|
||||
int lammps_command(char *); :pre
|
||||
|
||||
The lammps_open() function is used to initialize LAMMPS, passing in a
|
||||
list of strings as if they were "command-line arguments"_#2_4 when
|
||||
LAMMPS is run from the command line and a MPI communicator for LAMMPS
|
||||
to run under. The lammps_close() function is used to shut down LAMMPS
|
||||
and free all its memory. The lammps_command() function is used to
|
||||
pass a string to LAMMPS as if it were an input command read from an
|
||||
input script. See the library.h file for more information about the
|
||||
arguments and return values for these 3 functions.
|
||||
|
||||
[{Additional build tips:}]
|
||||
|
||||
(1) Building LAMMPS for multiple platforms.
|
||||
|
@ -330,11 +238,147 @@ make. Or you should be able to pull all the source files into Visual
|
|||
C++ (ugh) or some similar development environment and build it. In
|
||||
the src/MAKE/Windows directory are some notes from users on how they
|
||||
built LAMMPS under Windows, so you can look at their instructions for
|
||||
tips. Good luck - I can't help you on this one.
|
||||
tips. Good luck - we can't help you on this one.
|
||||
|
||||
2.3 Making LAMMPS with optional packages :h4,link(2_3)
|
||||
|
||||
The source code for LAMMPS is structured as a large set of core files
|
||||
that are always used plus additional packages, which are groups of
|
||||
files that enable a specific set of features. For example, force
|
||||
fields for molecular systems or granular systems are in packages. You
|
||||
can see the list of packages by typing "make package". The current
|
||||
list of packages is as follows:
|
||||
|
||||
class2 : class 2 force fields
|
||||
dpd : dissipative particle dynamics (DPD) force field
|
||||
granular : force fields and boundary conditions for granular systems
|
||||
kspace : long-range Ewald and particle-mesh (PPPM) solvers
|
||||
manybody : metal, 3-body, bond-order potentials
|
||||
meam : modified embedded atom method (MEAM) potential
|
||||
molecule : force fields for molecular systems
|
||||
opt : optimized versions of a few pair potentials
|
||||
poems : coupled rigid body motion
|
||||
xtc : dump atom snapshots in XTC format :tb(s=:)
|
||||
|
||||
Any or all packages can be included or excluded when LAMMPS is built.
|
||||
The one exception is that to use the "opt" package, you must also be
|
||||
using the "molecule" and "manybody" packages. You may wish to exclude
|
||||
certain packages if you will never run certain kinds of simulations.
|
||||
This will produce a smaller executable which may run a bit faster.
|
||||
|
||||
By default, LAMMPS includes only the "kspace", "manybody", and
|
||||
"molecule" packages. As described below, some packages require LAMMPS
|
||||
be linked to separately built library files, which will require
|
||||
editing of your machine Makefile.
|
||||
|
||||
Packages are included or excluded by typing "make yes-name" or "make
|
||||
no-name", where "name" is the name of the package. You can also type
|
||||
"make yes-all" or "make no-all" to include/exclude all optional
|
||||
packages. These commands work by simply moving files back and forth
|
||||
between the main src directory and sub-directories with the package
|
||||
name, so that the files are seen or not seen when LAMMPS is built.
|
||||
After you have included or excluded a package, you must re-make
|
||||
LAMMPS.
|
||||
|
||||
Additional make options exist to help manage LAMMPS files that exist
|
||||
in both the src directory and in package sub-directories. You do not
|
||||
normally need to use these commands unless you are editing LAMMPS
|
||||
files or have downloaded a patch from the LAMMPS WWW site. Typing
|
||||
"make package-update" will overwrite src files with files from the
|
||||
package directories if the package has been included. It should be
|
||||
used after a patch is installed, since patches only update the master
|
||||
package version of a file. Typing "make package-overwrite" will
|
||||
overwrite files in the package directories with src files. Typing
|
||||
"make package-check" will list differences between src and package
|
||||
versions of the same files.
|
||||
|
||||
To use the "poems" package you must build LAMMPS with the POEMS
|
||||
library, which computes the constrained rigid-body motion of
|
||||
articulated (jointed) multibody systems. POEMS was written and is
|
||||
distributed by Prof Kurt Anderson's group at Rensselaer Polytechnic
|
||||
Institute (RPI) and a version is included in the LAMMPS distribution
|
||||
under the "lib" directory. To build LAMMPS with POEMS, you must use a
|
||||
low-level LAMMPS Makefile that includes the POEMS directory in its
|
||||
paths. See Makefile.g++_poems as an example. You must also build
|
||||
POEMS itself as a library before building LAMMPS, so that LAMMPS can
|
||||
link against it. The POEMS library is built by typing "make" from
|
||||
within the poems directory with the appropriate Makefile, e.g. "make
|
||||
-f Makefile.g++". If one of the provided Makefiles is not appropriate
|
||||
for your system you can edit or add one as needed.
|
||||
|
||||
To use the "meam" package you must build LAMMPS with the MEAM library,
|
||||
which computes the modified embedded atom method potential, which is a
|
||||
generalization of EAM potentials that can be used to model a wider
|
||||
variety of materials. This MEAM implementation was written by Greg
|
||||
Wagner at Sandia and is included under the "lib" directory. To build
|
||||
LAMMPS with MEAM, you must use a low-level LAMMPS Makefile that
|
||||
includes the MEAM directory in its paths. See Makefile.linux_meam as
|
||||
an example. You must also build MEAM itself as a library before
|
||||
building LAMMPS, so that LAMMPS can link against it. This requires a
|
||||
F90 compiler. The library is built by typing "make" from within the
|
||||
meam directory with the appropriate Makefile, e.g. "make -f
|
||||
Makefile.icc". If one of the provided Makefiles is not appropriate
|
||||
for your system you can edit or add one as needed.
|
||||
|
||||
Linking a Fortran library to a C++ code can be problematic
|
||||
(e.g. non-matching underscore conventions). If you have problems with
|
||||
a particular compiler/machine, please send an email to the developers.
|
||||
|
||||
2.4 Building LAMMPS as a library :h4,link(2_4)
|
||||
|
||||
LAMMPS can be built as a library, which can then be called from
|
||||
another application or a scripting language. See "this
|
||||
section"_Section_howto.html#4_10 for more info on coupling LAMMPS to
|
||||
other codes. Building LAMMPS as a library is done by typing
|
||||
|
||||
make makelib
|
||||
make -f Makefile.lib foo :pre
|
||||
|
||||
where foo is the machine name. The first "make" command will create a
|
||||
current Makefile.lib with all the file names in your src dir. The 2nd
|
||||
"make" command will use it to build LAMMPS as a library. This
|
||||
requires that Makefile.foo have a library target (lib) and
|
||||
system-specific settings for ARCHIVE and ARFLAGS. See Makefile.linux
|
||||
for an example. The build will create the file liblmp_foo.a which
|
||||
another application can link to.
|
||||
|
||||
When used from a C++ program, the library allows one or more LAMMPS
|
||||
objects to be instantiated. All of LAMMPS is wrapped in a LAMMPS_NS
|
||||
namespace; you can safely use any of its classes and methods from
|
||||
within your application code, as needed. See the sample code
|
||||
examples/couple/c++_driver.cpp as an example.
|
||||
|
||||
When used from a C or Fortran program or a scripting language, the
|
||||
library has a simple function-style interface, provided in library.cpp
|
||||
and library.h. See the sample code examples/couple/c_driver.cpp as an
|
||||
example.
|
||||
|
||||
You can add as many functions as you wish to library.cpp and
|
||||
library.h. In a general sense, those functions can access LAMMPS data
|
||||
and return it to the caller or set LAMMPS data values as specified by
|
||||
the caller. These 4 functions are currently included in library.cpp:
|
||||
|
||||
void lammps_open(int, char **, MPI_Comm, void **ptr);
|
||||
void lammps_close(void *ptr);
|
||||
int lammps_file(void *ptr, char *);
|
||||
int lammps_command(void *ptr, char *); :pre
|
||||
|
||||
The lammps_open() function is used to initialize LAMMPS, passing in a
|
||||
list of strings as if they were "command-line arguments"_#2_6 when
|
||||
LAMMPS is run from the command line and a MPI communicator for LAMMPS
|
||||
to run under. It returns a ptr to the LAMMPS object that is created,
|
||||
and which should be used in subsequent library calls. Note that
|
||||
lammps_open() can be called multiple times to create multiple LAMMPS
|
||||
objects.
|
||||
|
||||
The lammps_close() function is used to shut down LAMMPS and free all
|
||||
its memory. The lammps_file() and lammps_command() functions are used
|
||||
to pass a file or string to LAMMPS as if it were an input file or
|
||||
single command read from an input script.
|
||||
|
||||
:line
|
||||
|
||||
2.3 Running LAMMPS :h4,link(2_3)
|
||||
2.5 Running LAMMPS :h4,link(2_5)
|
||||
|
||||
By default, LAMMPS runs by reading commands from stdin; e.g. lmp_linux
|
||||
< in.file. This means you first create an input script (e.g. in.file)
|
||||
|
@ -381,7 +425,7 @@ more processors or setup a smaller problem.
|
|||
|
||||
:line
|
||||
|
||||
2.4 Command-line options :h4,link(2_4)
|
||||
2.6 Command-line options :h4,link(2_6)
|
||||
|
||||
At run time, LAMMPS recognizes several optional command-line switches
|
||||
which may be used in any order. For example, lmp_ibm might be
|
||||
|
@ -469,7 +513,7 @@ variables in scripts.
|
|||
|
||||
:line
|
||||
|
||||
2.5 LAMMPS screen output :h4,link(2_5)
|
||||
2.7 LAMMPS screen output :h4,link(2_7)
|
||||
|
||||
As LAMMPS reads an input script, it prints information to both the
|
||||
screen and a log file about significant actions it takes to setup a
|
||||
|
@ -566,7 +610,7 @@ communication, roughly 75% in the example above.
|
|||
|
||||
:line
|
||||
|
||||
2.6 Tips for users of previous LAMMPS versions :h4,link(2_6)
|
||||
2.8 Tips for users of previous LAMMPS versions :h4,link(2_8)
|
||||
|
||||
LAMMPS 2003 is a complete C++ rewrite of LAMMPS 2001, which was
|
||||
written in F90. Features of earlier versions of LAMMPS are listed in
|
||||
|
|
|
@ -62,14 +62,14 @@ corresponds to the 1st example above would be listed as
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "angle_coeff.html">angle_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "angle_style_none.html">angle_style none</A> - turn off angle interactions
|
||||
<LI><A HREF = "angle_style_hybrid.html">angle_style hybrid</A> - define multiple styles of angle interactions
|
||||
<UL><LI><A HREF = "angle_none.html">angle_style none</A> - turn off angle interactions
|
||||
<LI><A HREF = "angle_hybrid.html">angle_style hybrid</A> - define multiple styles of angle interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "angle_style_charmm.html">angle_style charmm</A> - CHARMM angle
|
||||
<LI><A HREF = "angle_style_class2.html">angle_style class2</A> - COMPASS (class 2) angle
|
||||
<LI><A HREF = "angle_style_cosine.html">angle_style cosine</A> - cosine angle potential
|
||||
<LI><A HREF = "angle_style_cosine_squared.html">angle_style cosine/squared</A> - cosine squared angle potential
|
||||
<LI><A HREF = "angle_style_harmonic.html">angle_style harmonic</A> - harmonic angle
|
||||
<UL><LI><A HREF = "angle_charmm.html">angle_style charmm</A> - CHARMM angle
|
||||
<LI><A HREF = "angle_class2.html">angle_style class2</A> - COMPASS (class 2) angle
|
||||
<LI><A HREF = "angle_cosine.html">angle_style cosine</A> - cosine angle potential
|
||||
<LI><A HREF = "angle_cosine_squared.html">angle_style cosine/squared</A> - cosine squared angle potential
|
||||
<LI><A HREF = "angle_harmonic.html">angle_style harmonic</A> - harmonic angle
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -59,14 +59,14 @@ Here is an alphabetic list of angle styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "angle_coeff"_angle_coeff.html command:
|
||||
|
||||
"angle_style none"_angle_style_none.html - turn off angle interactions
|
||||
"angle_style hybrid"_angle_style_hybrid.html - define multiple styles of angle interactions :ul
|
||||
"angle_style none"_angle_none.html - turn off angle interactions
|
||||
"angle_style hybrid"_angle_hybrid.html - define multiple styles of angle interactions :ul
|
||||
|
||||
"angle_style charmm"_angle_style_charmm.html - CHARMM angle
|
||||
"angle_style class2"_angle_style_class2.html - COMPASS (class 2) angle
|
||||
"angle_style cosine"_angle_style_cosine.html - cosine angle potential
|
||||
"angle_style cosine/squared"_angle_style_cosine_squared.html - cosine squared angle potential
|
||||
"angle_style harmonic"_angle_style_harmonic.html - harmonic angle :ul
|
||||
"angle_style charmm"_angle_charmm.html - CHARMM angle
|
||||
"angle_style class2"_angle_class2.html - COMPASS (class 2) angle
|
||||
"angle_style cosine"_angle_cosine.html - cosine angle potential
|
||||
"angle_style cosine/squared"_angle_cosine_squared.html - cosine squared angle potential
|
||||
"angle_style harmonic"_angle_harmonic.html - harmonic angle :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -51,14 +51,14 @@ exist between the 3 bonded atoms.
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "angle_coeff.html">angle_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "angle_style_none.html">angle_style none</A> - turn off angle interactions
|
||||
<LI><A HREF = "angle_style_hybrid.html">angle_style hybrid</A> - define multiple styles of angle interactions
|
||||
<UL><LI><A HREF = "angle_none.html">angle_style none</A> - turn off angle interactions
|
||||
<LI><A HREF = "angle_hybrid.html">angle_style hybrid</A> - define multiple styles of angle interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "angle_style_charmm.html">angle_style charmm</A> - CHARMM angle
|
||||
<LI><A HREF = "angle_style_class2.html">angle_style class2</A> - COMPASS (class 2) angle
|
||||
<LI><A HREF = "angle_style_cosine.html">angle_style cosine</A> - cosine angle potential
|
||||
<LI><A HREF = "angle_style_cosine_squared.html">angle_style cosine/squared</A> - cosine squared angle potential
|
||||
<LI><A HREF = "angle_style_harmonic.html">angle_style harmonic</A> - harmonic angle
|
||||
<UL><LI><A HREF = "angle_charmm.html">angle_style charmm</A> - CHARMM angle
|
||||
<LI><A HREF = "angle_class2.html">angle_style class2</A> - COMPASS (class 2) angle
|
||||
<LI><A HREF = "angle_cosine.html">angle_style cosine</A> - cosine angle potential
|
||||
<LI><A HREF = "angle_cosine_squared.html">angle_style cosine/squared</A> - cosine squared angle potential
|
||||
<LI><A HREF = "angle_harmonic.html">angle_style harmonic</A> - harmonic angle
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -49,14 +49,14 @@ Here is an alphabetic list of angle styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "angle_coeff"_angle_coeff.html command:
|
||||
|
||||
"angle_style none"_angle_style_none.html - turn off angle interactions
|
||||
"angle_style hybrid"_angle_style_hybrid.html - define multiple styles of angle interactions :ul
|
||||
"angle_style none"_angle_none.html - turn off angle interactions
|
||||
"angle_style hybrid"_angle_hybrid.html - define multiple styles of angle interactions :ul
|
||||
|
||||
"angle_style charmm"_angle_style_charmm.html - CHARMM angle
|
||||
"angle_style class2"_angle_style_class2.html - COMPASS (class 2) angle
|
||||
"angle_style cosine"_angle_style_cosine.html - cosine angle potential
|
||||
"angle_style cosine/squared"_angle_style_cosine_squared.html - cosine squared angle potential
|
||||
"angle_style harmonic"_angle_style_harmonic.html - harmonic angle :ul
|
||||
"angle_style charmm"_angle_charmm.html - CHARMM angle
|
||||
"angle_style class2"_angle_class2.html - COMPASS (class 2) angle
|
||||
"angle_style cosine"_angle_cosine.html - cosine angle potential
|
||||
"angle_style cosine/squared"_angle_cosine_squared.html - cosine squared angle potential
|
||||
"angle_style harmonic"_angle_harmonic.html - harmonic angle :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -15,14 +15,15 @@
|
|||
</P>
|
||||
<PRE>atom_style style args
|
||||
</PRE>
|
||||
<UL><LI>style = <I>angle</I> or <I>atomic</I> or <I>bond</I> or <I>charge</I> or <I>dipole</I> or <I>dpd</I> or <I>full</I> or <I>granular</I> or <I>molecular</I> or <I>hybrid</I>
|
||||
<UL><LI>style = <I>angle</I> or <I>atomic</I> or <I>bond</I> or <I>charge</I> or <I>dpd</I> or <I>full</I> or <I>granular</I> or <I>molecular</I> or <I>hybrid</I>
|
||||
</UL>
|
||||
<PRE> args = none for any style except <I>hybrid</I>
|
||||
<I>hybrid</I> args = list of one or more styles
|
||||
<I>hybrid</I> args = list of one or more sub-styles
|
||||
</PRE>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>atom_style bond
|
||||
<PRE>atom_style atomic
|
||||
atom_style bond
|
||||
atom_style full
|
||||
atom_style hybrid charge bond
|
||||
</PRE>
|
||||
|
@ -51,11 +52,10 @@ velocities, atom IDs and types.
|
|||
<LI><I>atomic</I> = only the default values
|
||||
<LI><I>bond</I> = bonds - e.g. bead-spring polymers
|
||||
<LI><I>charge</I> = charge
|
||||
<LI><I>dipole</I> = charge + dipole moments
|
||||
<LI><I>dpd</I> = default values, also communicates velocities
|
||||
<LI><I>molecular</I> = bonds, angles, dihedrals, impropers - e.g. all-atom polymers
|
||||
<LI><I>full</I> = molecular + charge - e.g. biomolecules, charged polymers
|
||||
<LI><I>granular</I> = granular material with rotational properties
|
||||
<LI><I>granular</I> = granular atoms with rotational properties
|
||||
</UL>
|
||||
<P>Typical simulations with a single pair potential will use only one of
|
||||
these styles. For cases where multiple pair potentials will be used
|
||||
|
@ -77,13 +77,15 @@ section</A>.
|
|||
<P>The <I>angle</I>, <I>bond</I>, <I>full</I>, and <I>molecular</I> styles are part of the
|
||||
"molecular" package. The <I>granular</I> style is part of the "granular"
|
||||
package. The <I>dpd</I> style is part of the "dpd" package. They are only
|
||||
enabled if LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_2">Making
|
||||
enabled if LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "read_data.html">read_data</A>, <A HREF = "pair_style.html">pair_style</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>atom_style atomic
|
||||
</P>
|
||||
</HTML>
|
||||
|
|
|
@ -12,13 +12,14 @@ atom_style command :h3
|
|||
|
||||
atom_style style args :pre
|
||||
|
||||
style = {angle} or {atomic} or {bond} or {charge} or {dipole} or {dpd} or \
|
||||
style = {angle} or {atomic} or {bond} or {charge} or {dpd} or \
|
||||
{full} or {granular} or {molecular} or {hybrid} :ul
|
||||
args = none for any style except {hybrid}
|
||||
{hybrid} args = list of one or more styles :pre
|
||||
{hybrid} args = list of one or more sub-styles :pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
atom_style atomic
|
||||
atom_style bond
|
||||
atom_style full
|
||||
atom_style hybrid charge bond :pre
|
||||
|
@ -48,11 +49,10 @@ velocities, atom IDs and types.
|
|||
{atomic} = only the default values
|
||||
{bond} = bonds - e.g. bead-spring polymers
|
||||
{charge} = charge
|
||||
{dipole} = charge + dipole moments
|
||||
{dpd} = default values, also communicates velocities
|
||||
{molecular} = bonds, angles, dihedrals, impropers - e.g. all-atom polymers
|
||||
{full} = molecular + charge - e.g. biomolecules, charged polymers
|
||||
{granular} = granular material with rotational properties :ul
|
||||
{granular} = granular atoms with rotational properties :ul
|
||||
|
||||
Typical simulations with a single pair potential will use only one of
|
||||
these styles. For cases where multiple pair potentials will be used
|
||||
|
@ -75,10 +75,12 @@ The {angle}, {bond}, {full}, and {molecular} styles are part of the
|
|||
"molecular" package. The {granular} style is part of the "granular"
|
||||
package. The {dpd} style is part of the "dpd" package. They are only
|
||||
enabled if LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_2 section for more info.
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"read_data"_read_data.html, "pair_style"_pair_style.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
atom_style atomic
|
||||
|
|
|
@ -63,16 +63,16 @@ corresponds to the 1st example above would be listed as
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "bond_coeff.html">bond_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "bond_style_none.html">bond_style none</A> - turn off bonded interactions
|
||||
<LI><A HREF = "bond_style_hybrid.html">bond_style hybrid</A> - define multiple styles of bond interactions
|
||||
<UL><LI><A HREF = "bond_none.html">bond_style none</A> - turn off bonded interactions
|
||||
<LI><A HREF = "bond_hybrid.html">bond_style hybrid</A> - define multiple styles of bond interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "bond_style_class.html">bond_style class2</A> - COMPASS (class 2) bond
|
||||
<LI><A HREF = "bond_style_fene.html">bond_style fene</A> - FENE (finite-extensible non-linear elastic) bond
|
||||
<LI><A HREF = "bond_style_fene_expand.html">bond_style fene/expand</A> - FENE bonds with variable size particles
|
||||
<LI><A HREF = "bond_style_harmonic.html">bond_style harmonic</A> - harmonic bond
|
||||
<LI><A HREF = "bond_style_morse.html">bond_style morse</A> - Morse bond
|
||||
<LI><A HREF = "bond_style_nonlinear.html">bond_style nonlinear</A> - nonlinear bond
|
||||
<LI><A HREF = "bond_style_quartic.html">bond_style quartic</A> - breakable quartic bond
|
||||
<UL><LI><A HREF = "bond_class.html">bond_style class2</A> - COMPASS (class 2) bond
|
||||
<LI><A HREF = "bond_fene.html">bond_style fene</A> - FENE (finite-extensible non-linear elastic) bond
|
||||
<LI><A HREF = "bond_fene_expand.html">bond_style fene/expand</A> - FENE bonds with variable size particles
|
||||
<LI><A HREF = "bond_harmonic.html">bond_style harmonic</A> - harmonic bond
|
||||
<LI><A HREF = "bond_morse.html">bond_style morse</A> - Morse bond
|
||||
<LI><A HREF = "bond_nonlinear.html">bond_style nonlinear</A> - nonlinear bond
|
||||
<LI><A HREF = "bond_quartic.html">bond_style quartic</A> - breakable quartic bond
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -60,16 +60,16 @@ Here is an alphabetic list of bond styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "bond_coeff"_bond_coeff.html command:
|
||||
|
||||
"bond_style none"_bond_style_none.html - turn off bonded interactions
|
||||
"bond_style hybrid"_bond_style_hybrid.html - define multiple styles of bond interactions :ul
|
||||
"bond_style none"_bond_none.html - turn off bonded interactions
|
||||
"bond_style hybrid"_bond_hybrid.html - define multiple styles of bond interactions :ul
|
||||
|
||||
"bond_style class2"_bond_style_class.html - COMPASS (class 2) bond
|
||||
"bond_style fene"_bond_style_fene.html - FENE (finite-extensible non-linear elastic) bond
|
||||
"bond_style fene/expand"_bond_style_fene_expand.html - FENE bonds with variable size particles
|
||||
"bond_style harmonic"_bond_style_harmonic.html - harmonic bond
|
||||
"bond_style morse"_bond_style_morse.html - Morse bond
|
||||
"bond_style nonlinear"_bond_style_nonlinear.html - nonlinear bond
|
||||
"bond_style quartic"_bond_style_quartic.html - breakable quartic bond :ul
|
||||
"bond_style class2"_bond_class.html - COMPASS (class 2) bond
|
||||
"bond_style fene"_bond_fene.html - FENE (finite-extensible non-linear elastic) bond
|
||||
"bond_style fene/expand"_bond_fene_expand.html - FENE bonds with variable size particles
|
||||
"bond_style harmonic"_bond_harmonic.html - harmonic bond
|
||||
"bond_style morse"_bond_morse.html - Morse bond
|
||||
"bond_style nonlinear"_bond_nonlinear.html - nonlinear bond
|
||||
"bond_style quartic"_bond_quartic.html - breakable quartic bond :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -60,16 +60,16 @@ exist between 2 bonded atoms.
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "bond_coeff.html">bond_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "bond_style_none.html">bond_style none</A> - turn off bonded interactions
|
||||
<LI><A HREF = "bond_style_hybrid.html">bond_style hybrid</A> - define multiple styles of bond interactions
|
||||
<UL><LI><A HREF = "bond_none.html">bond_style none</A> - turn off bonded interactions
|
||||
<LI><A HREF = "bond_hybrid.html">bond_style hybrid</A> - define multiple styles of bond interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "bond_style_class2.html">bond_style class2</A> - COMPASS (class 2) bond
|
||||
<LI><A HREF = "bond_style_fene.html">bond_style fene</A> - FENE (finite-extensible non-linear elastic) bond
|
||||
<LI><A HREF = "bond_style_fene_expand.html">bond_style fene/expand</A> - FENE bonds with variable size particles
|
||||
<LI><A HREF = "bond_style_harmonic.html">bond_style harmonic</A> - harmonic bond
|
||||
<LI><A HREF = "bond_style_morse.html">bond_style morse</A> - Morse bond
|
||||
<LI><A HREF = "bond_style_nonlinear.html">bond_style nonlinear</A> - nonlinear bond
|
||||
<LI><A HREF = "bond_style_quartic.html">bond_style quartic</A> - breakable quartic bond
|
||||
<UL><LI><A HREF = "bond_class2.html">bond_style class2</A> - COMPASS (class 2) bond
|
||||
<LI><A HREF = "bond_fene.html">bond_style fene</A> - FENE (finite-extensible non-linear elastic) bond
|
||||
<LI><A HREF = "bond_fene_expand.html">bond_style fene/expand</A> - FENE bonds with variable size particles
|
||||
<LI><A HREF = "bond_harmonic.html">bond_style harmonic</A> - harmonic bond
|
||||
<LI><A HREF = "bond_morse.html">bond_style morse</A> - Morse bond
|
||||
<LI><A HREF = "bond_nonlinear.html">bond_style nonlinear</A> - nonlinear bond
|
||||
<LI><A HREF = "bond_quartic.html">bond_style quartic</A> - breakable quartic bond
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -57,16 +57,16 @@ Here is an alphabetic list of bond styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "bond_coeff"_bond_coeff.html command:
|
||||
|
||||
"bond_style none"_bond_style_none.html - turn off bonded interactions
|
||||
"bond_style hybrid"_bond_style_hybrid.html - define multiple styles of bond interactions :ul
|
||||
"bond_style none"_bond_none.html - turn off bonded interactions
|
||||
"bond_style hybrid"_bond_hybrid.html - define multiple styles of bond interactions :ul
|
||||
|
||||
"bond_style class2"_bond_style_class2.html - COMPASS (class 2) bond
|
||||
"bond_style fene"_bond_style_fene.html - FENE (finite-extensible non-linear elastic) bond
|
||||
"bond_style fene/expand"_bond_style_fene_expand.html - FENE bonds with variable size particles
|
||||
"bond_style harmonic"_bond_style_harmonic.html - harmonic bond
|
||||
"bond_style morse"_bond_style_morse.html - Morse bond
|
||||
"bond_style nonlinear"_bond_style_nonlinear.html - nonlinear bond
|
||||
"bond_style quartic"_bond_style_quartic.html - breakable quartic bond :ul
|
||||
"bond_style class2"_bond_class2.html - COMPASS (class 2) bond
|
||||
"bond_style fene"_bond_fene.html - FENE (finite-extensible non-linear elastic) bond
|
||||
"bond_style fene/expand"_bond_fene_expand.html - FENE bonds with variable size particles
|
||||
"bond_style harmonic"_bond_harmonic.html - harmonic bond
|
||||
"bond_style morse"_bond_morse.html - Morse bond
|
||||
"bond_style nonlinear"_bond_nonlinear.html - nonlinear bond
|
||||
"bond_style quartic"_bond_quartic.html - breakable quartic bond :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -64,15 +64,15 @@ corresponds to the 1st example above would be listed as
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "dihedral_coeff.html">dihedral_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "dihedral_style_none.html">dihedral_style none</A> - turn off dihedral interactions
|
||||
<LI><A HREF = "dihedral_style_hybrid.html">dihedral_style hybrid</A> - define multiple styles of dihedral interactions
|
||||
<UL><LI><A HREF = "dihedral_none.html">dihedral_style none</A> - turn off dihedral interactions
|
||||
<LI><A HREF = "dihedral_hybrid.html">dihedral_style hybrid</A> - define multiple styles of dihedral interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "dihedral_style_charmm.html">dihedral_style charmm</A> - CHARMM dihedral
|
||||
<LI><A HREF = "dihedral_style_class2.html">dihedral_style class2</A> - COMPASS (class 2) dihedral
|
||||
<LI><A HREF = "dihedral_style_harmonic.html">dihedral_style harmonic</A> - harmonic dihedral
|
||||
<LI><A HREF = "dihedral_style_helix.html">dihedral_style helix</A> - helix dihedral
|
||||
<LI><A HREF = "dihedral_style_multi_harmonic.html">dihedral_style multi/harmonic</A> - multi-harmonic dihedral
|
||||
<LI><A HREF = "dihedral_style_opls.html">dihedral_style opls</A> - OPLS dihedral
|
||||
<UL><LI><A HREF = "dihedral_charmm.html">dihedral_style charmm</A> - CHARMM dihedral
|
||||
<LI><A HREF = "dihedral_class2.html">dihedral_style class2</A> - COMPASS (class 2) dihedral
|
||||
<LI><A HREF = "dihedral_harmonic.html">dihedral_style harmonic</A> - harmonic dihedral
|
||||
<LI><A HREF = "dihedral_helix.html">dihedral_style helix</A> - helix dihedral
|
||||
<LI><A HREF = "dihedral_multi_harmonic.html">dihedral_style multi/harmonic</A> - multi-harmonic dihedral
|
||||
<LI><A HREF = "dihedral_opls.html">dihedral_style opls</A> - OPLS dihedral
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -61,15 +61,15 @@ Here is an alphabetic list of dihedral styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "dihedral_coeff"_dihedral_coeff.html command:
|
||||
|
||||
"dihedral_style none"_dihedral_style_none.html - turn off dihedral interactions
|
||||
"dihedral_style hybrid"_dihedral_style_hybrid.html - define multiple styles of dihedral interactions :ul
|
||||
"dihedral_style none"_dihedral_none.html - turn off dihedral interactions
|
||||
"dihedral_style hybrid"_dihedral_hybrid.html - define multiple styles of dihedral interactions :ul
|
||||
|
||||
"dihedral_style charmm"_dihedral_style_charmm.html - CHARMM dihedral
|
||||
"dihedral_style class2"_dihedral_style_class2.html - COMPASS (class 2) dihedral
|
||||
"dihedral_style harmonic"_dihedral_style_harmonic.html - harmonic dihedral
|
||||
"dihedral_style helix"_dihedral_style_helix.html - helix dihedral
|
||||
"dihedral_style multi/harmonic"_dihedral_style_multi_harmonic.html - multi-harmonic dihedral
|
||||
"dihedral_style opls"_dihedral_style_opls.html - OPLS dihedral :ul
|
||||
"dihedral_style charmm"_dihedral_charmm.html - CHARMM dihedral
|
||||
"dihedral_style class2"_dihedral_class2.html - COMPASS (class 2) dihedral
|
||||
"dihedral_style harmonic"_dihedral_harmonic.html - harmonic dihedral
|
||||
"dihedral_style helix"_dihedral_helix.html - helix dihedral
|
||||
"dihedral_style multi/harmonic"_dihedral_multi_harmonic.html - multi-harmonic dihedral
|
||||
"dihedral_style opls"_dihedral_opls.html - OPLS dihedral :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -66,15 +66,15 @@ torsions that contain the j-k bond in an i-j-k-l torsion.
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "dihedral_coeff.html">dihedral_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "dihedral_style_none.html">dihedral_style none</A> - turn off dihedral interactions
|
||||
<LI><A HREF = "dihedral_style_hybrid.html">dihedral_style hybrid</A> - define multiple styles of dihedral interactions
|
||||
<UL><LI><A HREF = "dihedral_none.html">dihedral_style none</A> - turn off dihedral interactions
|
||||
<LI><A HREF = "dihedral_hybrid.html">dihedral_style hybrid</A> - define multiple styles of dihedral interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "dihedral_style_charmm.html">dihedral_style charmm</A> - CHARMM dihedral
|
||||
<LI><A HREF = "dihedral_style_class2.html">dihedral_style class2</A> - COMPASS (class 2) dihedral
|
||||
<LI><A HREF = "dihedral_style_harmonic.html">dihedral_style harmonic</A> - harmonic dihedral
|
||||
<LI><A HREF = "dihedral_style_helix.html">dihedral_style helix</A> - helix dihedral
|
||||
<LI><A HREF = "dihedral_style_multi_harmonic.html">dihedral_style multi/harmonic</A> - multi-harmonic dihedral
|
||||
<LI><A HREF = "dihedral_style_opls.html">dihedral_style opls</A> - OPLS dihedral
|
||||
<UL><LI><A HREF = "dihedral_charmm.html">dihedral_style charmm</A> - CHARMM dihedral
|
||||
<LI><A HREF = "dihedral_class2.html">dihedral_style class2</A> - COMPASS (class 2) dihedral
|
||||
<LI><A HREF = "dihedral_harmonic.html">dihedral_style harmonic</A> - harmonic dihedral
|
||||
<LI><A HREF = "dihedral_helix.html">dihedral_style helix</A> - helix dihedral
|
||||
<LI><A HREF = "dihedral_multi_harmonic.html">dihedral_style multi/harmonic</A> - multi-harmonic dihedral
|
||||
<LI><A HREF = "dihedral_opls.html">dihedral_style opls</A> - OPLS dihedral
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -64,15 +64,15 @@ Here is an alphabetic list of dihedral styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "dihedral_coeff"_dihedral_coeff.html command:
|
||||
|
||||
"dihedral_style none"_dihedral_style_none.html - turn off dihedral interactions
|
||||
"dihedral_style hybrid"_dihedral_style_hybrid.html - define multiple styles of dihedral interactions :ul
|
||||
"dihedral_style none"_dihedral_none.html - turn off dihedral interactions
|
||||
"dihedral_style hybrid"_dihedral_hybrid.html - define multiple styles of dihedral interactions :ul
|
||||
|
||||
"dihedral_style charmm"_dihedral_style_charmm.html - CHARMM dihedral
|
||||
"dihedral_style class2"_dihedral_style_class2.html - COMPASS (class 2) dihedral
|
||||
"dihedral_style harmonic"_dihedral_style_harmonic.html - harmonic dihedral
|
||||
"dihedral_style helix"_dihedral_style_helix.html - helix dihedral
|
||||
"dihedral_style multi/harmonic"_dihedral_style_multi_harmonic.html - multi-harmonic dihedral
|
||||
"dihedral_style opls"_dihedral_style_opls.html - OPLS dihedral :ul
|
||||
"dihedral_style charmm"_dihedral_charmm.html - CHARMM dihedral
|
||||
"dihedral_style class2"_dihedral_class2.html - COMPASS (class 2) dihedral
|
||||
"dihedral_style harmonic"_dihedral_harmonic.html - harmonic dihedral
|
||||
"dihedral_style helix"_dihedral_helix.html - helix dihedral
|
||||
"dihedral_style multi/harmonic"_dihedral_multi_harmonic.html - multi-harmonic dihedral
|
||||
"dihedral_style opls"_dihedral_opls.html - OPLS dihedral :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
165
doc/dump.html
165
doc/dump.html
|
@ -19,7 +19,7 @@
|
|||
|
||||
<LI>group-ID = ID of the group of atoms to be dumped
|
||||
|
||||
<LI>style = <I>atom</I> or <I>bond</I> or <I>custom</I> or <I>dcd</I> or <I>xtc</I> or <I>xyz</I>
|
||||
<LI>style = <I>atom</I> or <I>bond</I> or <I>dcd</I> or <I>xtc</I> or <I>xyz</I> or <I>custom</I>
|
||||
|
||||
<LI>N = dump every this many timesteps
|
||||
|
||||
|
@ -29,11 +29,18 @@
|
|||
|
||||
<PRE> <I>atom</I> args = none
|
||||
<I>bond</I> args = none
|
||||
<I>dcd</I> args = none
|
||||
<I>xtc</I> args = precision (optional)
|
||||
precision = power-of-10 value from 10 to 1000000 (default = 1000)
|
||||
<I>xyz</I> args = none
|
||||
<I>custom</I> args = list of atom attributes
|
||||
possible attributes = tag, mol, type, x, y, z, xs, ys, zs, xu, yu, zu,
|
||||
ix, iy, iz, vx, vy, vz, fx, fy, fz,
|
||||
q, mux, muy, muz, tqx, tqy, tqz,
|
||||
etotal, ke, epair, centro, sxx, syy, szz, sxy, sxz, syz
|
||||
possible attributes = tag, mol, type,
|
||||
x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz,
|
||||
vx, vy, vz, fx, fy, fz,
|
||||
q, mux, muy, muz, tqx, tqy, tqz,
|
||||
epair, ke, etotal, centro,
|
||||
sxx, syy, szz, sxy, sxz, syz,
|
||||
c_ID, c_ID[N]
|
||||
tag = atom ID
|
||||
mol = molecule ID
|
||||
type = atom type
|
||||
|
@ -46,15 +53,13 @@
|
|||
q = atom charge
|
||||
mux,muy,muz = orientation of dipolar atom
|
||||
tqx,tqy,tqz = torque on dipolar atoms
|
||||
etotal = per-atom total energy (ke + epair)
|
||||
ke = per-atom kinetic energy
|
||||
epair = per-atom pairwise energy
|
||||
ke = per-atom kinetic energy
|
||||
etotal = per-atom total energy (ke + epair)
|
||||
centro = per-atom centro-symmetry parameter
|
||||
sxx, syy, szz, sxy, sxz, syz = per-atom stress tensor components
|
||||
<I>dcd</I> args = none
|
||||
<I>xtc</I> args = precision (optional)
|
||||
precision = power-of-10 value from 10 to 1000000 (default = 1000)
|
||||
<I>xyz</I> args = none
|
||||
c_ID = scalar per-atom quantity calculated by a compute identified by its ID
|
||||
c_ID[N] = Nth per-atom vector quantity calculated by a compute identified by its ID
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
|
@ -63,7 +68,7 @@
|
|||
<PRE>dump myDump all atom 100 dump.atom
|
||||
dump 2 subgroup atom 50 dump.run.bin
|
||||
dump 4a all custom 100 dump.myforce.* tag type x y vx fx
|
||||
dump 4b flow custom 100 dump.%.myforce tag type epair sxx syy szz
|
||||
dump 4b flow custom 100 dump.%.myforce tag type epair sxx syy szz c_myF[3]
|
||||
dump 1 all xtc 1000 file.xtc 100.0
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
@ -207,87 +212,71 @@ styles.
|
|||
part of the <I>custom</I> style.
|
||||
</P>
|
||||
<P>The <I>tag</I>, <I>mol</I>, <I>type</I>, <I>x</I>, <I>y</I>, <I>z</I>, <I>vx</I>, <I>vy</I>, <I>vz</I>, <I>fx</I>, <I>fy</I>,
|
||||
<I>fz</I>, <I>q</I> attributes are self-explanatory. <I>Tag</I> is the atom ID.
|
||||
<I>Mol</I> is the molecule ID, included in the data file for molecular
|
||||
systems. The <I>x</I>, <I>y</I>, <I>z</I> attributes write atom coordinates
|
||||
"unscaled", in the appropriate distance units (Angstroms, sigma, etc).
|
||||
Use <I>xs</I>, <I>ys</I>, <I>zs</I> if you want the coordinates "scaled" to the box
|
||||
size, so that each value is 0.0 to 1.0. Use <I>xu</I>, <I>yu</I>, <I>zu</I> if you
|
||||
want the coordinates "unwrapped" by the image flags for each atom.
|
||||
Unwrapped means that if the atom has passed thru a periodic boundary
|
||||
one or more times, the value is printed for what the coordinate would
|
||||
be if it had not been wrapped back into the periodic box. Note that
|
||||
using <I>xu</I>, <I>yu</I>, <I>zu</I> means that the coordinate values may be far
|
||||
outside the box size printed with the snapshot. The image flags can
|
||||
be printed directly using the <I>ix</I>, <I>iy</I>, <I>iz</I> attributes. The
|
||||
<A HREF = "dump_modify.html">dump_modify</A> documentation describes in more detail
|
||||
what is meant by scaled vs unscaled coordinates and the image flags.
|
||||
<I>fz</I>, <I>q</I> keywords are self-explanatory. <I>Tag</I> is the atom ID. <I>Mol</I>
|
||||
is the molecule ID, included in the data file for molecular systems.
|
||||
The <I>x</I>, <I>y</I>, <I>z</I> keywords write atom coordinates "unscaled", in the
|
||||
appropriate distance units (Angstroms, sigma, etc). Use <I>xs</I>, <I>ys</I>,
|
||||
<I>zs</I> if you want the coordinates "scaled" to the box size, so that
|
||||
each value is 0.0 to 1.0. Use <I>xu</I>, <I>yu</I>, <I>zu</I> if you want the
|
||||
coordinates "unwrapped" by the image flags for each atom. Unwrapped
|
||||
means that if the atom has passed thru a periodic boundary one or more
|
||||
times, the value is printed for what the coordinate would be if it had
|
||||
not been wrapped back into the periodic box. Note that using <I>xu</I>,
|
||||
<I>yu</I>, <I>zu</I> means that the coordinate values may be far outside the box
|
||||
size printed with the snapshot. The image flags can be printed
|
||||
directly using the <I>ix</I>, <I>iy</I>, <I>iz</I> keywords. The
|
||||
<A HREF = "dump_modify.html">dump_modify</A> command describes in more detail what
|
||||
is meant by scaled vs unscaled coordinates and the image flags.
|
||||
</P>
|
||||
<P>The <I>mux</I>, <I>muy</I>, <I>muz</I>, <I>tqy</I>, <I>tqx</I>, <I>tqy</I> attributes are specific
|
||||
to dipolar systems defined with an atom style of <I>dipole</I>.
|
||||
<P>The <I>mux</I>, <I>muy</I>, <I>muz</I>, <I>tqy</I>, <I>tqx</I>, <I>tqy</I> keywords are specific
|
||||
to dipolar systems defined with an atom style of <I>dipole</I>. The first
|
||||
3 give the orientation of the atom's dipole. The latter 3 give the
|
||||
torque on the dipolar atoms.
|
||||
</P>
|
||||
<P>The <I>etotal</I> attribute computes the total energy of each atom, which
|
||||
is the <I>ke</I> plus <I>epair</I> values. Note that it does not include
|
||||
contributions due to bonds, angles, etc that the atom is part of.
|
||||
<P>The <I>epair</I>, <I>ke</I>, <I>etotal</I>, <I>centro</I>, and <I>sxx</I>, etc keywords print
|
||||
the pairwise energy, kinetic energy, total energy (pairwise +
|
||||
kinetic), centro-symmetry parameter, and components of the per-atom
|
||||
stress tensor for each atom. These quantities are calculated by
|
||||
computes that the dump defines, as if these commands had been issued:
|
||||
</P>
|
||||
<P>The <I>ke</I> attribute computes the kinetic energy of each atom
|
||||
which is simply 0.5 m v^2.
|
||||
<PRE>compute dump-ID_epair/atom group-ID <A HREF = "compute_epair_atom.html">epair/atom</A>
|
||||
compute dump-ID_ke/atom group-ID <A HREF = "compute_ke_atom.html">ke/atom</A>
|
||||
compute dump-ID_etotal/atom group-ID <A HREF = "compute_etotal_atom.html">etotal/atom</A>
|
||||
compute dump-ID_centro/atom group-ID <A HREF = "compute_centro_atom.html">centro/atom</A>
|
||||
compute dump-ID_stress/atom group-ID <A HREF = "compute_stress_atom.html">stress/atom</A>
|
||||
</PRE>
|
||||
<P>See the corresponding <A HREF = "compute.html">compute</A> style commands for
|
||||
details on what is computed for each atom. Note that the ID of each
|
||||
new compute is the dump-ID with the compute style appended (with an
|
||||
underscore). The group for each new compute is the same as the dump
|
||||
group.
|
||||
</P>
|
||||
<P>The <I>epair</I> attribute computes the pairwise energy for each atom.
|
||||
This is its pairwise interaction with all of its neighbors (divided by
|
||||
2). Summed over all atoms, this should equal the pairwise energy of
|
||||
the entire system (Van der Waals + Coulombic). However, for force
|
||||
fields that include a contribution to the pairwise energy that is
|
||||
computed as part of dihedral terms (i.e. 1-4 interactions), this
|
||||
contribution is not included in the per-atom pairwise energy.
|
||||
Computation of the per-atom energy requires a loop thru the neighbor
|
||||
list and inter-processor communication, so it can be inefficient to
|
||||
dump this quantity too frequently or to have multiple dump commands,
|
||||
each with a <I>epair</I> attribute.
|
||||
<P>Note that the <I>etotal</I> keyword does not include energy contributions
|
||||
due to bonds, angles, etc that the atom is part of.
|
||||
</P>
|
||||
<P>The <I>centro</I> attribute causes the centro-symmetry parameter to be
|
||||
computed for each atom in the dump group using the following formula
|
||||
from <A HREF = "#Kelchner">(Kelchner)</A>
|
||||
<P>The <I>sxx</I>, <I>syy</I>, <I>szz</I>, <I>sxy</I>, <I>sxz</I>, <I>syz</I> keywords access the 6
|
||||
components of the stress tensor calculated for each atom by the
|
||||
<A HREF = "compute_stress_atom.html">compute stress/atom</A> style.
|
||||
</P>
|
||||
<CENTER><IMG SRC = "Eqs/centro_symmetry.jpg">
|
||||
</CENTER>
|
||||
<P>where the 12 nearest neighbors are found and Ri and Ri+6 are the
|
||||
vectors from the central atom to the opposite pair of nearest
|
||||
neighbors. In solid state systems this is a useful measure of the
|
||||
local lattice disorder around an atom and can be used to characterize
|
||||
whether the atom is part of a perfect lattice, a local defect (e.g. a
|
||||
dislocation or stacking fault), or at a surface. The neighbor list
|
||||
needed to compute this quantity is constructed each time the dump is
|
||||
performed. Thus it can be inefficient to dump this quantity too
|
||||
frequently or to have multiple dump commands, each with a <I>centro</I>
|
||||
attribute.
|
||||
<P>The <I>c_ID</I> and <I>c_ID[N]</I> keywords allow scalar or vector per-atom
|
||||
quantities calculated by a compute to be output. The ID in the
|
||||
keyword should be replaced by the actual ID of the compute that has
|
||||
been defined elsewhere in the input script. See the
|
||||
<A HREF = "compute.html">compute</A> command for details. Note that scalar and
|
||||
vector quantities that are not calculated on a per-atoms basis
|
||||
(e.g. global temperature or pressure) cannot be output in a dump.
|
||||
Rather, these quantities are output by the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command.
|
||||
</P>
|
||||
<P>The <I>sxx</I>, <I>syy</I>, <I>szz</I>, <I>sxy</I>, <I>sxz</I>, <I>syz</I> attributes compute the
|
||||
pairwise stress tensor for each atom where the <I>ab</I> component of the
|
||||
stress on atom <I>i</I> is given by
|
||||
<P>If <I>c_ID</I> is used as a keyword, then the a single per-atom quantity
|
||||
calculated by the compute is printed. If <I>c_ID[N]</I> is used, then N in
|
||||
the range from 1-M will print a specific component of the per-atom
|
||||
vector calculated by the compute. A value of N=0 will output the
|
||||
single per-atom quantity.
|
||||
</P>
|
||||
<CENTER><IMG SRC = "Eqs/stress_tensor.jpg">
|
||||
</CENTER>
|
||||
<P>where the first term is a kinetic energy component for atom <I>i</I>, <I>j</I>
|
||||
loops over the <I>N</I> neighbors of atom <I>i</I>, and <I>Fb</I> is one of 3
|
||||
components of force on atom <I>i</I> due to atom <I>j</I>. Both <I>a</I> and <I>b</I> can
|
||||
take on values x,y,z to generate the 6 components of the symmetric
|
||||
tensor.
|
||||
</P>
|
||||
<P>Note that this formula for stress does not include virial
|
||||
contributions from intra-molecular interactions (e.g. bonds, angles,
|
||||
torsions, etc). Also note that this quantity is the negative of the
|
||||
per-atom pressure tensor. It is also really a stress-volume
|
||||
formulation. It would need to be divided by a per-atom volume to have
|
||||
units of stress, but an individual atom's volume is not easy to
|
||||
compute in a deformed solid. Computation of stress tensor components
|
||||
requires a loop thru the neighbor list and inter-processor
|
||||
communication, so it can be inefficient to dump this quantity too
|
||||
frequently or to have multiple dump commands, each with stress tensor
|
||||
attributes.
|
||||
</P>
|
||||
<P>See <A HREF = "Section_modify.html">this section</A> for information on how to modify
|
||||
LAMMPS to dump other kinds of per-atom quantities.
|
||||
<P>See <A HREF = "Section_modify.html">this section</A> for information on how to add
|
||||
new compute styles to LAMMPS that calculate per-atom quantities which
|
||||
could then be output with these keywords.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
|
@ -319,10 +308,4 @@ gran/diag</A> command should be used instead.
|
|||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "Kelchner"></A>
|
||||
|
||||
<P><B>(Kelchner)</B> Kelchner, Plimpton, Hamilton, Phys Rev B, 58, 11085 (1998).
|
||||
</P>
|
||||
</HTML>
|
||||
|
|
162
doc/dump.txt
162
doc/dump.txt
|
@ -14,17 +14,24 @@ dump ID group-ID style N file args :pre
|
|||
|
||||
ID = user-assigned name for the dump :ulb,l
|
||||
group-ID = ID of the group of atoms to be dumped :l
|
||||
style = {atom} or {bond} or {custom} or {dcd} or {xtc} or {xyz} :l
|
||||
style = {atom} or {bond} or {dcd} or {xtc} or {xyz} or {custom} :l
|
||||
N = dump every this many timesteps :l
|
||||
file = name of file to write dump info to :l
|
||||
args = list of arguments for a particular style :l
|
||||
{atom} args = none
|
||||
{bond} args = none
|
||||
{dcd} args = none
|
||||
{xtc} args = precision (optional)
|
||||
precision = power-of-10 value from 10 to 1000000 (default = 1000)
|
||||
{xyz} args = none
|
||||
{custom} args = list of atom attributes
|
||||
possible attributes = tag, mol, type, x, y, z, xs, ys, zs, xu, yu, zu,
|
||||
ix, iy, iz, vx, vy, vz, fx, fy, fz,
|
||||
q, mux, muy, muz, tqx, tqy, tqz,
|
||||
etotal, ke, epair, centro, sxx, syy, szz, sxy, sxz, syz
|
||||
possible attributes = tag, mol, type,
|
||||
x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz,
|
||||
vx, vy, vz, fx, fy, fz,
|
||||
q, mux, muy, muz, tqx, tqy, tqz,
|
||||
epair, ke, etotal, centro,
|
||||
sxx, syy, szz, sxy, sxz, syz,
|
||||
c_ID, c_ID\[N\]
|
||||
tag = atom ID
|
||||
mol = molecule ID
|
||||
type = atom type
|
||||
|
@ -37,15 +44,13 @@ args = list of arguments for a particular style :l
|
|||
q = atom charge
|
||||
mux,muy,muz = orientation of dipolar atom
|
||||
tqx,tqy,tqz = torque on dipolar atoms
|
||||
etotal = per-atom total energy (ke + epair)
|
||||
ke = per-atom kinetic energy
|
||||
epair = per-atom pairwise energy
|
||||
ke = per-atom kinetic energy
|
||||
etotal = per-atom total energy (ke + epair)
|
||||
centro = per-atom centro-symmetry parameter
|
||||
sxx, syy, szz, sxy, sxz, syz = per-atom stress tensor components
|
||||
{dcd} args = none
|
||||
{xtc} args = precision (optional)
|
||||
precision = power-of-10 value from 10 to 1000000 (default = 1000)
|
||||
{xyz} args = none :pre
|
||||
c_ID = scalar per-atom quantity calculated by a compute identified by its ID
|
||||
c_ID\[N\] = Nth per-atom vector quantity calculated by a compute identified by its ID :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
@ -53,7 +58,7 @@ args = list of arguments for a particular style :l
|
|||
dump myDump all atom 100 dump.atom
|
||||
dump 2 subgroup atom 50 dump.run.bin
|
||||
dump 4a all custom 100 dump.myforce.* tag type x y vx fx
|
||||
dump 4b flow custom 100 dump.%.myforce tag type epair sxx syy szz
|
||||
dump 4b flow custom 100 dump.%.myforce tag type epair sxx syy szz c_myF\[3\]
|
||||
dump 1 all xtc 1000 file.xtc 100.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
@ -197,87 +202,71 @@ This section explains the atom quantities that can be specified as
|
|||
part of the {custom} style.
|
||||
|
||||
The {tag}, {mol}, {type}, {x}, {y}, {z}, {vx}, {vy}, {vz}, {fx}, {fy},
|
||||
{fz}, {q} attributes are self-explanatory. {Tag} is the atom ID.
|
||||
{Mol} is the molecule ID, included in the data file for molecular
|
||||
systems. The {x}, {y}, {z} attributes write atom coordinates
|
||||
"unscaled", in the appropriate distance units (Angstroms, sigma, etc).
|
||||
Use {xs}, {ys}, {zs} if you want the coordinates "scaled" to the box
|
||||
size, so that each value is 0.0 to 1.0. Use {xu}, {yu}, {zu} if you
|
||||
want the coordinates "unwrapped" by the image flags for each atom.
|
||||
Unwrapped means that if the atom has passed thru a periodic boundary
|
||||
one or more times, the value is printed for what the coordinate would
|
||||
be if it had not been wrapped back into the periodic box. Note that
|
||||
using {xu}, {yu}, {zu} means that the coordinate values may be far
|
||||
outside the box size printed with the snapshot. The image flags can
|
||||
be printed directly using the {ix}, {iy}, {iz} attributes. The
|
||||
"dump_modify"_dump_modify.html documentation describes in more detail
|
||||
what is meant by scaled vs unscaled coordinates and the image flags.
|
||||
{fz}, {q} keywords are self-explanatory. {Tag} is the atom ID. {Mol}
|
||||
is the molecule ID, included in the data file for molecular systems.
|
||||
The {x}, {y}, {z} keywords write atom coordinates "unscaled", in the
|
||||
appropriate distance units (Angstroms, sigma, etc). Use {xs}, {ys},
|
||||
{zs} if you want the coordinates "scaled" to the box size, so that
|
||||
each value is 0.0 to 1.0. Use {xu}, {yu}, {zu} if you want the
|
||||
coordinates "unwrapped" by the image flags for each atom. Unwrapped
|
||||
means that if the atom has passed thru a periodic boundary one or more
|
||||
times, the value is printed for what the coordinate would be if it had
|
||||
not been wrapped back into the periodic box. Note that using {xu},
|
||||
{yu}, {zu} means that the coordinate values may be far outside the box
|
||||
size printed with the snapshot. The image flags can be printed
|
||||
directly using the {ix}, {iy}, {iz} keywords. The
|
||||
"dump_modify"_dump_modify.html command describes in more detail what
|
||||
is meant by scaled vs unscaled coordinates and the image flags.
|
||||
|
||||
The {mux}, {muy}, {muz}, {tqy}, {tqx}, {tqy} attributes are specific
|
||||
to dipolar systems defined with an atom style of {dipole}.
|
||||
The {mux}, {muy}, {muz}, {tqy}, {tqx}, {tqy} keywords are specific
|
||||
to dipolar systems defined with an atom style of {dipole}. The first
|
||||
3 give the orientation of the atom's dipole. The latter 3 give the
|
||||
torque on the dipolar atoms.
|
||||
|
||||
The {etotal} attribute computes the total energy of each atom, which
|
||||
is the {ke} plus {epair} values. Note that it does not include
|
||||
contributions due to bonds, angles, etc that the atom is part of.
|
||||
The {epair}, {ke}, {etotal}, {centro}, and {sxx}, etc keywords print
|
||||
the pairwise energy, kinetic energy, total energy (pairwise +
|
||||
kinetic), centro-symmetry parameter, and components of the per-atom
|
||||
stress tensor for each atom. These quantities are calculated by
|
||||
computes that the dump defines, as if these commands had been issued:
|
||||
|
||||
The {ke} attribute computes the kinetic energy of each atom
|
||||
which is simply 0.5 m v^2.
|
||||
compute dump-ID_epair/atom group-ID "epair/atom"_compute_epair_atom.html
|
||||
compute dump-ID_ke/atom group-ID "ke/atom"_compute_ke_atom.html
|
||||
compute dump-ID_etotal/atom group-ID "etotal/atom"_compute_etotal_atom.html
|
||||
compute dump-ID_centro/atom group-ID "centro/atom"_compute_centro_atom.html
|
||||
compute dump-ID_stress/atom group-ID "stress/atom"_compute_stress_atom.html :pre
|
||||
|
||||
The {epair} attribute computes the pairwise energy for each atom.
|
||||
This is its pairwise interaction with all of its neighbors (divided by
|
||||
2). Summed over all atoms, this should equal the pairwise energy of
|
||||
the entire system (Van der Waals + Coulombic). However, for force
|
||||
fields that include a contribution to the pairwise energy that is
|
||||
computed as part of dihedral terms (i.e. 1-4 interactions), this
|
||||
contribution is not included in the per-atom pairwise energy.
|
||||
Computation of the per-atom energy requires a loop thru the neighbor
|
||||
list and inter-processor communication, so it can be inefficient to
|
||||
dump this quantity too frequently or to have multiple dump commands,
|
||||
each with a {epair} attribute.
|
||||
See the corresponding "compute"_compute.html style commands for
|
||||
details on what is computed for each atom. Note that the ID of each
|
||||
new compute is the dump-ID with the compute style appended (with an
|
||||
underscore). The group for each new compute is the same as the dump
|
||||
group.
|
||||
|
||||
The {centro} attribute causes the centro-symmetry parameter to be
|
||||
computed for each atom in the dump group using the following formula
|
||||
from "(Kelchner)"_#Kelchner
|
||||
Note that the {etotal} keyword does not include energy contributions
|
||||
due to bonds, angles, etc that the atom is part of.
|
||||
|
||||
:c,image(Eqs/centro_symmetry.jpg)
|
||||
The {sxx}, {syy}, {szz}, {sxy}, {sxz}, {syz} keywords access the 6
|
||||
components of the stress tensor calculated for each atom by the
|
||||
"compute stress/atom"_compute_stress_atom.html style.
|
||||
|
||||
where the 12 nearest neighbors are found and Ri and Ri+6 are the
|
||||
vectors from the central atom to the opposite pair of nearest
|
||||
neighbors. In solid state systems this is a useful measure of the
|
||||
local lattice disorder around an atom and can be used to characterize
|
||||
whether the atom is part of a perfect lattice, a local defect (e.g. a
|
||||
dislocation or stacking fault), or at a surface. The neighbor list
|
||||
needed to compute this quantity is constructed each time the dump is
|
||||
performed. Thus it can be inefficient to dump this quantity too
|
||||
frequently or to have multiple dump commands, each with a {centro}
|
||||
attribute.
|
||||
The {c_ID} and {c_ID\[N\]} keywords allow scalar or vector per-atom
|
||||
quantities calculated by a compute to be output. The ID in the
|
||||
keyword should be replaced by the actual ID of the compute that has
|
||||
been defined elsewhere in the input script. See the
|
||||
"compute"_compute.html command for details. Note that scalar and
|
||||
vector quantities that are not calculated on a per-atoms basis
|
||||
(e.g. global temperature or pressure) cannot be output in a dump.
|
||||
Rather, these quantities are output by the "thermo_style
|
||||
custom"_thermo_style.html command.
|
||||
|
||||
The {sxx}, {syy}, {szz}, {sxy}, {sxz}, {syz} attributes compute the
|
||||
pairwise stress tensor for each atom where the {ab} component of the
|
||||
stress on atom {i} is given by
|
||||
If {c_ID} is used as a keyword, then the a single per-atom quantity
|
||||
calculated by the compute is printed. If {c_ID\[N\]} is used, then N in
|
||||
the range from 1-M will print a specific component of the per-atom
|
||||
vector calculated by the compute. A value of N=0 will output the
|
||||
single per-atom quantity.
|
||||
|
||||
:c,image(Eqs/stress_tensor.jpg)
|
||||
|
||||
where the first term is a kinetic energy component for atom {i}, {j}
|
||||
loops over the {N} neighbors of atom {i}, and {Fb} is one of 3
|
||||
components of force on atom {i} due to atom {j}. Both {a} and {b} can
|
||||
take on values x,y,z to generate the 6 components of the symmetric
|
||||
tensor.
|
||||
|
||||
Note that this formula for stress does not include virial
|
||||
contributions from intra-molecular interactions (e.g. bonds, angles,
|
||||
torsions, etc). Also note that this quantity is the negative of the
|
||||
per-atom pressure tensor. It is also really a stress-volume
|
||||
formulation. It would need to be divided by a per-atom volume to have
|
||||
units of stress, but an individual atom's volume is not easy to
|
||||
compute in a deformed solid. Computation of stress tensor components
|
||||
requires a loop thru the neighbor list and inter-processor
|
||||
communication, so it can be inefficient to dump this quantity too
|
||||
frequently or to have multiple dump commands, each with stress tensor
|
||||
attributes.
|
||||
|
||||
See "this section"_Section_modify.html for information on how to modify
|
||||
LAMMPS to dump other kinds of per-atom quantities.
|
||||
See "this section"_Section_modify.html for information on how to add
|
||||
new compute styles to LAMMPS that calculate per-atom quantities which
|
||||
could then be output with these keywords.
|
||||
|
||||
:line
|
||||
|
||||
|
@ -308,8 +297,3 @@ gran/diag"_fix_gran_diag.html command should be used instead.
|
|||
"dump_modify"_dump_modify.html, "undump"_undump.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Kelchner)
|
||||
[(Kelchner)] Kelchner, Plimpton, Hamilton, Phys Rev B, 58, 11085 (1998).
|
||||
|
|
|
@ -100,12 +100,12 @@ choice affects not only the indenter's physical geometry, but also its
|
|||
velocity and force constant since they are defined in terms of
|
||||
distance as well.
|
||||
</P>
|
||||
<P>This fix supports the <A HREF = "fix_modify.html">fix_modify</A> options for
|
||||
<I>thermo</I> and <I>energy</I>. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed,
|
||||
where the energy of each particle interacting with the indenter is K/3
|
||||
(r - R)^3. The latter will add this contribution to the total
|
||||
potential energy (PotEng).
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The energy of each
|
||||
particle interacting with the indenter is K/3 (r - R)^3. The
|
||||
contribution can also be printed by itself via the keyword <I>f_fix-ID</I>
|
||||
in the <A HREF = "thermo_style.html">thermo_style custom</A> command.
|
||||
</P>
|
||||
<P>The forces due to this fix are also imposed during an energy
|
||||
minimization, invoked by the <A HREF = "minimize.html">minimize</A> command. If you
|
||||
|
|
|
@ -91,12 +91,12 @@ choice affects not only the indenter's physical geometry, but also its
|
|||
velocity and force constant since they are defined in terms of
|
||||
distance as well.
|
||||
|
||||
This fix supports the "fix_modify"_fix_modify.html options for
|
||||
{thermo} and {energy}. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed,
|
||||
where the energy of each particle interacting with the indenter is K/3
|
||||
(r - R)^3. The latter will add this contribution to the total
|
||||
potential energy (PotEng).
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The energy of each
|
||||
particle interacting with the indenter is K/3 (r - R)^3. The
|
||||
contribution can also be printed by itself via the keyword {f_fix-ID}
|
||||
in the "thermo_style custom"_thermo_style.html command.
|
||||
|
||||
The forces due to this fix are also imposed during an energy
|
||||
minimization, invoked by the "minimize"_minimize.html command. If you
|
||||
|
|
|
@ -19,18 +19,18 @@
|
|||
|
||||
<LI>one or more keyword/value pairs may be appended
|
||||
|
||||
<LI>keyword = <I>temp</I> or <I>energy</I> or <I>thermo</I>
|
||||
<LI>keyword = <I>temp</I> or <I>press</I> or <I>thermo</I>
|
||||
|
||||
<PRE> <I>temp</I> value = temperature ID
|
||||
<I>energy</I> value = <I>yes</I> or <I>no</I>
|
||||
<PRE> <I>temp</I> value = compute ID that calculates a temperature
|
||||
<I>press</I> value = compute ID that calculates a pressure
|
||||
<I>thermo</I> value = <I>yes</I> or <I>no</I>
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix_modify 3 temp myTemp
|
||||
fix_modify 1 thermo yes energy no
|
||||
<PRE>fix_modify 3 temp myTemp press myPress
|
||||
fix_modify 1 thermo yes
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
|
@ -38,30 +38,29 @@ fix_modify 1 thermo yes energy no
|
|||
fix styles support all parameters.
|
||||
</P>
|
||||
<P>The <I>temp</I> keyword is used to determine how a fix computes
|
||||
temperature. The specified temperature ID must have been previously
|
||||
defined by the user via the <A HREF = "temperature.html">temperature</A> command.
|
||||
The default setting for <I>temp</I> is temperature ID = <I>default</I>. Fix
|
||||
styles that use the <I>temp</I> setting are
|
||||
<A HREF = "fix_temp_rescale.html">temp/rescale</A>, <A HREF = "fix_nvt.html">nvt</A>, and
|
||||
<A HREF = "fix_npt.html">npt</A>.
|
||||
temperature. The specified compute ID must have been previously
|
||||
defined by the user via the <A HREF = "compute.html">compute</A> command and it must
|
||||
be a style of compute that calculates a temperature. All fixes that
|
||||
compute temperatures defined their own compute by default, as
|
||||
described in their documentation. Thus this option allows the user to
|
||||
override the default method for computing T.
|
||||
</P>
|
||||
<P>The <I>energy</I> and <I>thermo</I> keywords enable a fix to compute and/or
|
||||
print quantities as part of the thermodynamic output to the screen and
|
||||
log file (if the fix defines such quantities). When the <I>energy</I>
|
||||
keyword is set to <I>yes</I>, the fix computes a contribution to the total
|
||||
potential energy that is printed as PotEng during thermodynamic
|
||||
output. When the <I>thermo</I> keyword is set to yes, the fix prints one
|
||||
or more values that are appended to the list of thermodynamic outputs.
|
||||
See the <A HREF = "thermo_style.html">thermo_style</A> command for how this printing
|
||||
is formatted.
|
||||
<P>The <I>press</I> keyword is used to determine how a fix computes pressure.
|
||||
The specified compute ID must have been previously defined by the user
|
||||
via the <A HREF = "compute.html">compute</A> command and it must be a style of
|
||||
compute that calculates a pressure. All fixes that compute pressures
|
||||
defined their own compute by default, as described in their
|
||||
documentation. Thus this option allows the user to override the
|
||||
default method for computing P.
|
||||
</P>
|
||||
<P>The fixes that support the <I>energy</I> and <I>thermo</I> options include: <A HREF = "fix_indent.html">fix
|
||||
indent</A>, <A HREF = "fix_nvt.html">fix nvt</A>, <A HREF = "fix_nph.html">fix
|
||||
nph</A>, <A HREF = "fix_npt.html">fix npt</A>, <A HREF = "fix_orient_fcc.html">fix
|
||||
orient/fcc</A>, <A HREF = "fix_temp_rescale.html">fix
|
||||
temp/rescale</A>, and <A HREF = "fix_wall_lj93.html">fix
|
||||
wall/lj93</A>. See the individual fix commands for
|
||||
more info on what is computed and/or printed.
|
||||
<P>For fixes that calculates a contribution to the potential energy of
|
||||
the system, the <I>thermo</I> keyword will include that contribution in
|
||||
thermodyanmic output of the potential energy, as invoked by the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> command. The value of the
|
||||
contribution can also be printed by itself using the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> keywords. The documentation for individual
|
||||
fix commands specifies whether they make a contribution to the
|
||||
potential energy.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
</P>
|
||||
|
@ -72,6 +71,7 @@ more info on what is computed and/or printed.
|
|||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>The option defaults are temp = default, energy = no, thermo = no.
|
||||
<P>The option defaults are temp = ID defined by fix, press = ID defined
|
||||
by fix, thermo = no.
|
||||
</P>
|
||||
</HTML>
|
||||
|
|
|
@ -14,16 +14,16 @@ fix_modify fix-ID keyword value ... :pre
|
|||
|
||||
fix-ID = ID of the fix to modify :ulb,l
|
||||
one or more keyword/value pairs may be appended :l
|
||||
keyword = {temp} or {energy} or {thermo} :l
|
||||
{temp} value = temperature ID
|
||||
{energy} value = {yes} or {no}
|
||||
keyword = {temp} or {press} or {thermo} :l
|
||||
{temp} value = compute ID that calculates a temperature
|
||||
{press} value = compute ID that calculates a pressure
|
||||
{thermo} value = {yes} or {no} :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix_modify 3 temp myTemp
|
||||
fix_modify 1 thermo yes energy no :pre
|
||||
fix_modify 3 temp myTemp press myPress
|
||||
fix_modify 1 thermo yes :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
@ -31,30 +31,29 @@ Modify one or more parameters of a previously defined fix. Not all
|
|||
fix styles support all parameters.
|
||||
|
||||
The {temp} keyword is used to determine how a fix computes
|
||||
temperature. The specified temperature ID must have been previously
|
||||
defined by the user via the "temperature"_temperature.html command.
|
||||
The default setting for {temp} is temperature ID = {default}. Fix
|
||||
styles that use the {temp} setting are
|
||||
"temp/rescale"_fix_temp_rescale.html, "nvt"_fix_nvt.html, and
|
||||
"npt"_fix_npt.html.
|
||||
temperature. The specified compute ID must have been previously
|
||||
defined by the user via the "compute"_compute.html command and it must
|
||||
be a style of compute that calculates a temperature. All fixes that
|
||||
compute temperatures defined their own compute by default, as
|
||||
described in their documentation. Thus this option allows the user to
|
||||
override the default method for computing T.
|
||||
|
||||
The {energy} and {thermo} keywords enable a fix to compute and/or
|
||||
print quantities as part of the thermodynamic output to the screen and
|
||||
log file (if the fix defines such quantities). When the {energy}
|
||||
keyword is set to {yes}, the fix computes a contribution to the total
|
||||
potential energy that is printed as PotEng during thermodynamic
|
||||
output. When the {thermo} keyword is set to yes, the fix prints one
|
||||
or more values that are appended to the list of thermodynamic outputs.
|
||||
See the "thermo_style"_thermo_style.html command for how this printing
|
||||
is formatted.
|
||||
The {press} keyword is used to determine how a fix computes pressure.
|
||||
The specified compute ID must have been previously defined by the user
|
||||
via the "compute"_compute.html command and it must be a style of
|
||||
compute that calculates a pressure. All fixes that compute pressures
|
||||
defined their own compute by default, as described in their
|
||||
documentation. Thus this option allows the user to override the
|
||||
default method for computing P.
|
||||
|
||||
The fixes that support the {energy} and {thermo} options include: "fix
|
||||
indent"_fix_indent.html, "fix nvt"_fix_nvt.html, "fix
|
||||
nph"_fix_nph.html, "fix npt"_fix_npt.html, "fix
|
||||
orient/fcc"_fix_orient_fcc.html, "fix
|
||||
temp/rescale"_fix_temp_rescale.html, and "fix
|
||||
wall/lj93"_fix_wall_lj93.html. See the individual fix commands for
|
||||
more info on what is computed and/or printed.
|
||||
For fixes that calculates a contribution to the potential energy of
|
||||
the system, the {thermo} keyword will include that contribution in
|
||||
thermodyanmic output of the potential energy, as invoked by the
|
||||
"thermo_style"_thermo_style.html command. The value of the
|
||||
contribution can also be printed by itself using the "thermo_style
|
||||
custom"_thermo_style.html keywords. The documentation for individual
|
||||
fix commands specifies whether they make a contribution to the
|
||||
potential energy.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
|
@ -65,4 +64,5 @@ more info on what is computed and/or printed.
|
|||
|
||||
[Default:]
|
||||
|
||||
The option defaults are temp = default, energy = no, thermo = no.
|
||||
The option defaults are temp = ID defined by fix, press = ID defined
|
||||
by fix, thermo = no.
|
||||
|
|
|
@ -71,26 +71,8 @@ only the atoms in the fix group are re-scaled. The latter can be
|
|||
useful for leaving the coordinates of atoms in a solid substrate
|
||||
unchanged and controlling the pressure of a surrounding fluid.
|
||||
</P>
|
||||
<P>This fix computes a temperature each timestep, to contribute to the
|
||||
pressure. The fix creates its own method for computing T, as if it
|
||||
had been defined by the command:
|
||||
</P>
|
||||
<PRE>temperature fix-ID all full
|
||||
</PRE>
|
||||
<P>See the <A HREF = "temperature.html">temperature</A> command for details. Note that
|
||||
this is NOT the temperature with ID = <I>default</I>. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the <A HREF = "temp_modify.html">temp_modify</A> command or
|
||||
print the temperature with thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>The pressure can be controlled in one of several styles, as specified
|
||||
by the <I>p-style</I> argument. In each case, the desired pressure at each
|
||||
timestep is a ramped value during the run from the starting value to
|
||||
|
@ -130,17 +112,49 @@ oscillations after a few periods.
|
|||
shape. Parinello-Rahman boundary conditions (tilted box) are not
|
||||
implemented in LAMMPS.
|
||||
</P>
|
||||
<P>For all styles, the <I>Pdamp</I> parameter is specified in time units and
|
||||
determines how rapidly the pressure is relaxed. For example, a value
|
||||
of 1000.0 means to relax the temperature in a timespan of (roughly)
|
||||
1000 time units (tau or fmsec or psec - see the <A HREF = "units.html">units</A>
|
||||
command).
|
||||
<P>For all styles, the <I>Pdamp</I> parameter operates like the <I>Tdamp</I>
|
||||
parameter, determining the time scale on which pressure is relaxed.
|
||||
For example, a value of 1000.0 means to relax the pressure in a
|
||||
timespan of (roughly) 1000 time units (tau or fmsec or psec - see the
|
||||
<A HREF = "units.html">units</A> command).
|
||||
</P>
|
||||
<P>This fix supports the "fix_modify" options for <I>thermo</I> and <I>energy</I>.
|
||||
The former will print the contribution the fix makes to the energy of
|
||||
the system when thermodynamics is printed. The latter will add this
|
||||
contribution to the total potential energy (PotEng) so that energy
|
||||
conservation can be monitored.
|
||||
<HR>
|
||||
|
||||
<P>This fix computes a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if these commands had been issued:
|
||||
</P>
|
||||
<PRE>compute fix-ID_temp group-ID temp
|
||||
</PRE>
|
||||
<PRE>compute fix-ID_press group-ID pressure fix-ID_temp
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_temp.html">compute temp</A> and <A HREF = "compute_pressure.html<A HREF = "temp"<A HREF = "press"">>>compute
|
||||
pressure</A> commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID with </A> or </A>
|
||||
appended and the group for the new computes is the same as the fix
|
||||
group.
|
||||
</P>
|
||||
<P>Note that these are NOT the computes used by thermodynamic output (see
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>
|
||||
and <I>thermo_press</I>. This means you can change the attributes of this
|
||||
fix's temperature or pressure via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
|
||||
or pressure during thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate compute-ID.
|
||||
It also means that changing attributes of <I>thermo_temp</I> or
|
||||
<I>thermo_press</I> will have no effect on this fix. Alternatively, you
|
||||
can directly assign a new compute (for calculating temeperature or
|
||||
pressure) that you have defined to this fix via the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
</P>
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The contribution can
|
||||
also be printed by itself via the keyword <I>f_fix-ID</I> in the
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> command.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
|
|
|
@ -62,25 +62,7 @@ only the atoms in the fix group are re-scaled. The latter can be
|
|||
useful for leaving the coordinates of atoms in a solid substrate
|
||||
unchanged and controlling the pressure of a surrounding fluid.
|
||||
|
||||
This fix computes a temperature each timestep, to contribute to the
|
||||
pressure. The fix creates its own method for computing T, as if it
|
||||
had been defined by the command:
|
||||
|
||||
temperature fix-ID all full :pre
|
||||
|
||||
See the "temperature"_temperature.html command for details. Note that
|
||||
this is NOT the temperature with ID = {default}. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the "temp_modify"_temp_modify.html command or
|
||||
print the temperature with thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
"fix_modify"_fix_modify.html command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
:line
|
||||
|
||||
The pressure can be controlled in one of several styles, as specified
|
||||
by the {p-style} argument. In each case, the desired pressure at each
|
||||
|
@ -121,17 +103,48 @@ For all pressure styles, the simulation box stays rectangular in
|
|||
shape. Parinello-Rahman boundary conditions (tilted box) are not
|
||||
implemented in LAMMPS.
|
||||
|
||||
For all styles, the {Pdamp} parameter is specified in time units and
|
||||
determines how rapidly the pressure is relaxed. For example, a value
|
||||
of 1000.0 means to relax the temperature in a timespan of (roughly)
|
||||
1000 time units (tau or fmsec or psec - see the "units"_units.html
|
||||
command).
|
||||
For all styles, the {Pdamp} parameter operates like the {Tdamp}
|
||||
parameter, determining the time scale on which pressure is relaxed.
|
||||
For example, a value of 1000.0 means to relax the pressure in a
|
||||
timespan of (roughly) 1000 time units (tau or fmsec or psec - see the
|
||||
"units"_units.html command).
|
||||
|
||||
This fix supports the "fix_modify" options for {thermo} and {energy}.
|
||||
The former will print the contribution the fix makes to the energy of
|
||||
the system when thermodynamics is printed. The latter will add this
|
||||
contribution to the total potential energy (PotEng) so that energy
|
||||
conservation can be monitored.
|
||||
:line
|
||||
|
||||
This fix computes a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if these commands had been issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp :pre
|
||||
compute fix-ID_press group-ID pressure fix-ID_temp :pre
|
||||
|
||||
See the "compute temp"_compute_temp.html and "compute
|
||||
pressure"_compute_pressure.html commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID with "_temp" or "_press"
|
||||
appended and the group for the new computes is the same as the fix
|
||||
group.
|
||||
|
||||
Note that these are NOT the computes used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}
|
||||
and {thermo_press}. This means you can change the attributes of this
|
||||
fix's temperature or pressure via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
or pressure during thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} or
|
||||
{thermo_press} will have no effect on this fix. Alternatively, you
|
||||
can directly assign a new compute (for calculating temeperature or
|
||||
pressure) that you have defined to this fix via the
|
||||
"fix_modify"_fix_modify.html command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The contribution can
|
||||
also be printed by itself via the keyword {f_fix-ID} in the
|
||||
"thermo_style custom"_thermo_style.html command.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
|
|
|
@ -76,26 +76,8 @@ only the atoms in the fix group are re-scaled. The latter can be
|
|||
useful for leaving the coordinates of atoms in a solid substrate
|
||||
unchanged and controlling the pressure of a surrounding fluid.
|
||||
</P>
|
||||
<P>This fix computes a temperature each timestep, to contribute to the
|
||||
pressure. The fix creates its own method for computing T, as if it
|
||||
had been defined by the command:
|
||||
</P>
|
||||
<PRE>temperature fix-ID all full
|
||||
</PRE>
|
||||
<P>See the <A HREF = "temperature.html">temperature</A> command for details. Note that
|
||||
this is NOT the temperature with ID = <I>default</I>. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the <A HREF = "temp_modify.html">temp_modify</A> command or
|
||||
print the temperature with thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>The pressure can be controlled in one of several styles, as specified
|
||||
by the <I>p-style</I> argument. In each case, the desired pressure at each
|
||||
timestep is a ramped value during the run from the starting value to
|
||||
|
@ -137,12 +119,47 @@ implemented in LAMMPS.
|
|||
</P>
|
||||
<P>For all styles, the <I>Pdamp</I> parameter operates like the <I>Tdamp</I>
|
||||
parameter, determining the time scale on which pressure is relaxed.
|
||||
For example, a value of 1000.0 means to relax the pressure in a
|
||||
timespan of (roughly) 1000 time units (tau or fmsec or psec - see the
|
||||
<A HREF = "units.html">units</A> command).
|
||||
</P>
|
||||
<P>This fix supports the <A HREF = "fix_modify.html">fix_modify</A> options for
|
||||
<I>thermo</I> and <I>energy</I>. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng) so that energy conservation can be monitored.
|
||||
<HR>
|
||||
|
||||
<P>This fix computes a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if these commands had been issued:
|
||||
</P>
|
||||
<PRE>compute fix-ID_temp group-ID temp
|
||||
</PRE>
|
||||
<PRE>compute fix-ID_press group-ID pressure fix-ID_temp
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_temp.html">compute temp</A> and <A HREF = "compute_pressure.html<A HREF = "temp"<A HREF = "press"">>>compute
|
||||
pressure</A> commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID with </A> or </A>
|
||||
appended and the group for the new computes is the same as the fix
|
||||
group.
|
||||
</P>
|
||||
<P>Note that these are NOT the computes used by thermodynamic output (see
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>
|
||||
and <I>thermo_press</I>. This means you can change the attributes of this
|
||||
fix's temperature or pressure via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
|
||||
or pressure during thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate compute-ID.
|
||||
It also means that changing attributes of <I>thermo_temp</I> or
|
||||
<I>thermo_press</I> will have no effect on this fix. Alternatively, you
|
||||
can directly assign a new compute (for calculating temeperature or
|
||||
pressure) that you have defined to this fix via the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
</P>
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The contribution can
|
||||
also be printed by itself via the keyword <I>f_fix-ID</I> in the
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> command.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
|
|
|
@ -65,25 +65,7 @@ only the atoms in the fix group are re-scaled. The latter can be
|
|||
useful for leaving the coordinates of atoms in a solid substrate
|
||||
unchanged and controlling the pressure of a surrounding fluid.
|
||||
|
||||
This fix computes a temperature each timestep, to contribute to the
|
||||
pressure. The fix creates its own method for computing T, as if it
|
||||
had been defined by the command:
|
||||
|
||||
temperature fix-ID all full :pre
|
||||
|
||||
See the "temperature"_temperature.html command for details. Note that
|
||||
this is NOT the temperature with ID = {default}. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the "temp_modify"_temp_modify.html command or
|
||||
print the temperature with thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
"fix_modify"_fix_modify.html command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
:line
|
||||
|
||||
The pressure can be controlled in one of several styles, as specified
|
||||
by the {p-style} argument. In each case, the desired pressure at each
|
||||
|
@ -126,12 +108,46 @@ implemented in LAMMPS.
|
|||
|
||||
For all styles, the {Pdamp} parameter operates like the {Tdamp}
|
||||
parameter, determining the time scale on which pressure is relaxed.
|
||||
For example, a value of 1000.0 means to relax the pressure in a
|
||||
timespan of (roughly) 1000 time units (tau or fmsec or psec - see the
|
||||
"units"_units.html command).
|
||||
|
||||
This fix supports the "fix_modify"_fix_modify.html options for
|
||||
{thermo} and {energy}. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng) so that energy conservation can be monitored.
|
||||
:line
|
||||
|
||||
This fix computes a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if these commands had been issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp :pre
|
||||
compute fix-ID_press group-ID pressure fix-ID_temp :pre
|
||||
|
||||
See the "compute temp"_compute_temp.html and "compute
|
||||
pressure"_compute_pressure.html commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID with "_temp" or "_press"
|
||||
appended and the group for the new computes is the same as the fix
|
||||
group.
|
||||
|
||||
Note that these are NOT the computes used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}
|
||||
and {thermo_press}. This means you can change the attributes of this
|
||||
fix's temperature or pressure via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
or pressure during thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} or
|
||||
{thermo_press} will have no effect on this fix. Alternatively, you
|
||||
can directly assign a new compute (for calculating temeperature or
|
||||
pressure) that you have defined to this fix via the
|
||||
"fix_modify"_fix_modify.html command. If you do this, note that the
|
||||
kinetic energy derived from T should be consistent with the virial
|
||||
term computed using all atoms. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The contribution can
|
||||
also be printed by itself via the keyword {f_fix-ID} in the
|
||||
"thermo_style custom"_thermo_style.html command.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
|
|
|
@ -61,27 +61,33 @@ Performing a short run and monitoring the temperature is the best way
|
|||
to determine if the drag term is working. Typically a value between
|
||||
0.2 to 2.0 is sufficient to damp oscillations after a few periods.
|
||||
</P>
|
||||
<P>This fix computes a temperature each timestep. The fix creates its
|
||||
own method for computing T, as if it had been defined by the command:
|
||||
<P>This fix computes a temperature each timestep. To do this, the fix
|
||||
creates its own compute of style "temp", as if this command had been
|
||||
issued:
|
||||
</P>
|
||||
<PRE>temperature fix-ID group-ID full
|
||||
<PRE>compute fix-ID_temp group-ID temp
|
||||
</PRE>
|
||||
<P>See the <A HREF = "temperature.html">temperature</A> command for details. Note that
|
||||
this is NOT the temperature with ID = <I>default</I>. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the <A HREF = "temp_modify.html">temp_modify</A> command or
|
||||
print the temperature with thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command.
|
||||
<P>See the <A HREF = "compute_temp.html<A HREF = "temp"">>compute temp</A> command for details. Note
|
||||
that the ID of the new compute is the fix-ID with </A> appended and
|
||||
the group for the new compute is the same as the fix group.
|
||||
</P>
|
||||
<P>This fix supports the <A HREF = "fix_modify.html">fix_modify</A> options for
|
||||
<I>thermo</I> and <I>energy</I>. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng) so that energy conservation can be monitored.
|
||||
<P>Note that this is NOT the compute used by thermodynamic output (see
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
|
||||
during thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate compute-ID.
|
||||
It also means that changing attributes of <I>thermo_temp</I> will have no
|
||||
effect on this fix. Alternatively, you can directly assign a new
|
||||
compute (for calculating temeperature) that you have defined to this
|
||||
fix via the <A HREF = "fix_modify.html">fix_modify</A> command.
|
||||
</P>
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The contribution can
|
||||
also be printed by itself via the keyword <I>f_fix-ID</I> in the
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> command.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
|
|
|
@ -52,27 +52,33 @@ Performing a short run and monitoring the temperature is the best way
|
|||
to determine if the drag term is working. Typically a value between
|
||||
0.2 to 2.0 is sufficient to damp oscillations after a few periods.
|
||||
|
||||
This fix computes a temperature each timestep. The fix creates its
|
||||
own method for computing T, as if it had been defined by the command:
|
||||
This fix computes a temperature each timestep. To do this, the fix
|
||||
creates its own compute of style "temp", as if this command had been
|
||||
issued:
|
||||
|
||||
temperature fix-ID group-ID full :pre
|
||||
compute fix-ID_temp group-ID temp :pre
|
||||
|
||||
See the "temperature"_temperature.html command for details. Note that
|
||||
this is NOT the temperature with ID = {default}. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the "temp_modify"_temp_modify.html command or
|
||||
print the temperature with thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
"fix_modify"_fix_modify.html command.
|
||||
See the "compute temp"_compute_temp.html command for details. Note
|
||||
that the ID of the new compute is the fix-ID with "_temp" appended and
|
||||
the group for the new compute is the same as the fix group.
|
||||
|
||||
This fix supports the "fix_modify"_fix_modify.html options for
|
||||
{thermo} and {energy}. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng) so that energy conservation can be monitored.
|
||||
Note that this is NOT the compute used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
during thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} will have no
|
||||
effect on this fix. Alternatively, you can directly assign a new
|
||||
compute (for calculating temeperature) that you have defined to this
|
||||
fix via the "fix_modify"_fix_modify.html command.
|
||||
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The contribution can
|
||||
also be printed by itself via the keyword {f_fix-ID} in the
|
||||
"thermo_style custom"_thermo_style.html command.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
|
|
|
@ -116,11 +116,11 @@ symmetry, so the list must include one from each pair of
|
|||
equal-and-opposite neighbors. A pair of orientation files for a
|
||||
Sigma=5 tilt boundary are show below.
|
||||
</P>
|
||||
<P>This fix supports the <A HREF = "fix_modify.html">fix_modify</A> options for
|
||||
<I>thermo</I> and <I>energy</I>. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng).
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The contribution can
|
||||
also be printed by itself via the keyword <I>f_fix-ID</I> in the
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> command.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
|
|
|
@ -113,11 +113,11 @@ symmetry, so the list must include one from each pair of
|
|||
equal-and-opposite neighbors. A pair of orientation files for a
|
||||
Sigma=5 tilt boundary are show below.
|
||||
|
||||
This fix supports the "fix_modify"_fix_modify.html options for
|
||||
{thermo} and {energy}. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng).
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The contribution can
|
||||
also be printed by itself via the keyword {f_fix-ID} in the
|
||||
"thermo_style custom"_thermo_style.html command.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
|
|
|
@ -30,28 +30,29 @@
|
|||
simulation run. This can be used for diagnostic purposes or even as a
|
||||
debugging tool to monitor some quantity during a run. The text string
|
||||
must be a single argument, so it should be enclosed in double quotes
|
||||
if it is more than one word. If it contains variables ($a thru $z) it
|
||||
must be enclosed in double quotes to insure they are not evaluated
|
||||
when the input script is read, but will instead be evaluated when the
|
||||
string is printed.
|
||||
if it is more than one word. If it contains variables it must be
|
||||
enclosed in double quotes to insure they are not evaluated when the
|
||||
input script is read, but will instead be evaluated when the string is
|
||||
printed.
|
||||
</P>
|
||||
<P>See the <A HREF = "variable.html">variable</A> command for a description of <I>equal</I>
|
||||
style variables which are the most useful ones to use with the fix
|
||||
print command, since they are evaluated afresh each timestep that the
|
||||
fix print line is output.
|
||||
fix print line is output. Equal-style variables can calculate complex
|
||||
formulas involving atom and group properties, mathematical operations,
|
||||
other variables, etc.
|
||||
</P>
|
||||
<P>Note that if <I>equal</I>-style variables are used in the print line which
|
||||
contain <A HREF = "thermo_style.html">thermo_style custom</A> keywords for potential
|
||||
energy such as pe, eng, evdwl, ebond, etc, they will only be
|
||||
up-to-date on timesteps where thermodynamics are computed. Hence, if
|
||||
you output thermodynamics every 100 steps, but issue a fix print
|
||||
command with N = 2 that contains such a variable, the printed value
|
||||
will only be current on timesteps that are a multiple of 100. This is
|
||||
because the potential functions in LAMMPS (pairwise, bond, etc) only
|
||||
compute energies on timesteps when thermodynamic output is being
|
||||
performed.
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
<P>If <I>equal</I>-style variables are used which contain
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> keywords for energy such as
|
||||
pe, eng, evdwl, ebond, etc, then they will only be up-to-date on
|
||||
timesteps where thermodynamics are computed. For example, if you
|
||||
output thermodynamics every 100 steps, but issue a fix print command
|
||||
with N = 2 that contains such a variable, the printed value will only
|
||||
be current on timesteps that are a multiple of 100. This is because
|
||||
the potential functions in LAMMPS (pairwise, bond, etc) only compute
|
||||
energies on timesteps when thermodynamic output is being performed.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
|
|
|
@ -27,28 +27,29 @@ Print a text string to the screen and logfile every N steps during a
|
|||
simulation run. This can be used for diagnostic purposes or even as a
|
||||
debugging tool to monitor some quantity during a run. The text string
|
||||
must be a single argument, so it should be enclosed in double quotes
|
||||
if it is more than one word. If it contains variables ($a thru $z) it
|
||||
must be enclosed in double quotes to insure they are not evaluated
|
||||
when the input script is read, but will instead be evaluated when the
|
||||
string is printed.
|
||||
if it is more than one word. If it contains variables it must be
|
||||
enclosed in double quotes to insure they are not evaluated when the
|
||||
input script is read, but will instead be evaluated when the string is
|
||||
printed.
|
||||
|
||||
See the "variable"_variable.html command for a description of {equal}
|
||||
style variables which are the most useful ones to use with the fix
|
||||
print command, since they are evaluated afresh each timestep that the
|
||||
fix print line is output.
|
||||
fix print line is output. Equal-style variables can calculate complex
|
||||
formulas involving atom and group properties, mathematical operations,
|
||||
other variables, etc.
|
||||
|
||||
Note that if {equal}-style variables are used in the print line which
|
||||
contain "thermo_style custom"_thermo_style.html keywords for potential
|
||||
energy such as pe, eng, evdwl, ebond, etc, they will only be
|
||||
up-to-date on timesteps where thermodynamics are computed. Hence, if
|
||||
you output thermodynamics every 100 steps, but issue a fix print
|
||||
command with N = 2 that contains such a variable, the printed value
|
||||
will only be current on timesteps that are a multiple of 100. This is
|
||||
because the potential functions in LAMMPS (pairwise, bond, etc) only
|
||||
compute energies on timesteps when thermodynamic output is being
|
||||
performed.
|
||||
[Restrictions:]
|
||||
|
||||
[Restrictions:] none
|
||||
If {equal}-style variables are used which contain
|
||||
"thermo_style custom"_thermo_style.html keywords for energy such as
|
||||
pe, eng, evdwl, ebond, etc, then they will only be up-to-date on
|
||||
timesteps where thermodynamics are computed. For example, if you
|
||||
output thermodynamics every 100 steps, but issue a fix print command
|
||||
with N = 2 that contains such a variable, the printed value will only
|
||||
be current on timesteps that are a multiple of 100. This is because
|
||||
the potential functions in LAMMPS (pairwise, bond, etc) only compute
|
||||
energies on timesteps when thermodynamic output is being performed.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
|
|
|
@ -15,26 +15,17 @@
|
|||
</P>
|
||||
<PRE>fix ID group-ID temp/rescale N Tstart Tstop window fraction keyword values ...
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
|
||||
<LI>temp/rescale = style name of this fix command
|
||||
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
<LI>temp/rescale = style name of this fix command
|
||||
<LI>N = perform rescaling every N steps
|
||||
|
||||
<LI>Tstart,Tstop = desired temperature at start/end of run (temperature units)
|
||||
|
||||
<LI>window = only rescale if temperature is outside this window (temperature units)
|
||||
|
||||
<LI>fraction = rescale to target temperature by this fraction
|
||||
|
||||
<LI>zero or more keyword/value pairs may be appended to the args
|
||||
|
||||
<PRE>keyword = <I>region</I>
|
||||
<I>region</I> values = region-ID
|
||||
region-ID = ID of region to apply rescaling to
|
||||
</PRE>
|
||||
|
||||
<LI>Tstart,Tstop = desired temperature at start/end of run (temperature units)
|
||||
<LI>window = only rescale if temperature is outside this window (temperature units)
|
||||
<LI>fraction = rescale to target temperature by this fraction
|
||||
<LI>zero or more keyword/value pairs may be appended to the args
|
||||
<LI>keyword = <I>region</I>
|
||||
</UL>
|
||||
<PRE> <I>region</I> values = region-ID of region to apply rescaling to
|
||||
</PRE>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 3 flow temp/rescale 100 1.0 1.1 0.02 0.5
|
||||
|
@ -61,43 +52,47 @@ value.
|
|||
specified geometric region (and in the fix group). Since atoms can
|
||||
enter/leave a region, this test is performed each timestep.
|
||||
</P>
|
||||
<P>This fix computes a temperature each timestep. The fix creates its
|
||||
own method for computing T, as if it had been defined by one of these
|
||||
commands:
|
||||
</P>
|
||||
<PRE>temperature fix-ID group-ID full
|
||||
temperature fix-ID group-ID region region-ID
|
||||
</PRE>
|
||||
<P>Which is used depends on whether a region was specified with the fix.
|
||||
See the <A HREF = "temperature.html">temperature</A> command for details. Note that
|
||||
this is NOT the temperature with ID = <I>default</I>. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the <A HREF = "temp_modify.html">temp_modify</A> command or
|
||||
print the temperature with thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command. For consistency, if using the
|
||||
keyword <I>region</I>, the temperature you assign should also be of style
|
||||
<I>region</I>.
|
||||
</P>
|
||||
<P>A temp/rescale fix does not update the coordinates of its atoms. It
|
||||
is normally used with a fix of style <I>nve</I> that does that. A
|
||||
temp/rescale fix should not normally be used on atoms that also have
|
||||
their temperature controlled by another fix - e.g. a
|
||||
<A HREF = "fix_nvt.html">nvt</A> or <A HREF = "fix_langevin.html">langevin</A> fix.
|
||||
</P>
|
||||
<P>This fix supports the <A HREF = "fix_modify.html">fix_modify</A> options for
|
||||
<I>thermo</I> and <I>energy</I>. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng) so that energy conservation can be monitored. Note that the
|
||||
energy value printed by thermo is not cummulative energy, but energy
|
||||
added in the most recent rescaling. Also note that because this fix
|
||||
is invoked every N steps and thermo may be printed every M steps, that
|
||||
unless M is a multiple of N, the energy info printed by thermo will
|
||||
not be for the current timestep.
|
||||
<P>This fix computes a temperature each timestep. To do this, the fix
|
||||
creates its own compute of style "temp" or "temp/region", as if one of
|
||||
these commands had been issued:
|
||||
</P>
|
||||
<PRE>compute fix-ID_temp group-ID temp
|
||||
compute fix-ID_temp group-ID temp/region region-ID
|
||||
</PRE>
|
||||
<P>Which is used depends on whether a region was specified with the fix.
|
||||
See the <A HREF = "compute_temp.html">compute temp</A> and <A HREF = "compute_temp_region.html<A HREF = "temp"">>compute
|
||||
temp/region</A> commands for details. Note that
|
||||
the ID of the new compute is the fix-ID with </A> appended and the
|
||||
group for the new compute is the same as the fix group.
|
||||
</P>
|
||||
<P>Note that this is NOT the compute used by thermodynamic output (see
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
|
||||
during thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate compute-ID.
|
||||
It also means that changing attributes of <I>thermo_temp</I> will have no
|
||||
effect on this fix. Alternatively, you can directly assign a new
|
||||
compute (for calculating temeperature) that you have defined to this
|
||||
fix via the <A HREF = "fix_modify.html">fix_modify</A> command. For consistency, if
|
||||
using the keyword <I>region</I>, the compute you assign should also be of
|
||||
style <I>temp/region</I>.
|
||||
</P>
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The contribution can
|
||||
also be printed by itself via the keyword <I>f_fix-ID</I> in the
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> command. Note that because
|
||||
this fix is invoked every N steps and thermodynamic info may be
|
||||
printed every M steps, that unless M is a multiple of N, the energy
|
||||
info accessed will not be for the current timestep.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
</P>
|
||||
|
|
|
@ -12,17 +12,15 @@ fix temp/rescale command :h3
|
|||
|
||||
fix ID group-ID temp/rescale N Tstart Tstop window fraction keyword values ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
temp/rescale = style name of this fix command :l
|
||||
N = perform rescaling every N steps :l
|
||||
Tstart,Tstop = desired temperature at start/end of run (temperature units) :l
|
||||
window = only rescale if temperature is outside this window (temperature units) :l
|
||||
fraction = rescale to target temperature by this fraction :l
|
||||
zero or more keyword/value pairs may be appended to the args :l
|
||||
keyword = {region}
|
||||
{region} values = region-ID
|
||||
region-ID = ID of region to apply rescaling to :pre
|
||||
:ule
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
temp/rescale = style name of this fix command
|
||||
N = perform rescaling every N steps
|
||||
Tstart,Tstop = desired temperature at start/end of run (temperature units)
|
||||
window = only rescale if temperature is outside this window (temperature units)
|
||||
fraction = rescale to target temperature by this fraction
|
||||
zero or more keyword/value pairs may be appended to the args
|
||||
keyword = {region} :ul
|
||||
{region} values = region-ID of region to apply rescaling to :pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
|
@ -50,43 +48,47 @@ The keyword {region} applies the fix only to atoms that are in the
|
|||
specified geometric region (and in the fix group). Since atoms can
|
||||
enter/leave a region, this test is performed each timestep.
|
||||
|
||||
This fix computes a temperature each timestep. The fix creates its
|
||||
own method for computing T, as if it had been defined by one of these
|
||||
commands:
|
||||
|
||||
temperature fix-ID group-ID full
|
||||
temperature fix-ID group-ID region region-ID :pre
|
||||
|
||||
Which is used depends on whether a region was specified with the fix.
|
||||
See the "temperature"_temperature.html command for details. Note that
|
||||
this is NOT the temperature with ID = {default}. This means you can
|
||||
change the attributes of this fix's temperature (e.g. its
|
||||
degrees-of-freedom) via the "temp_modify"_temp_modify.html command or
|
||||
print the temperature with thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate temp-ID =
|
||||
fix-ID. It also means that changing attributes of the default
|
||||
temperature will have no effect on this fix. Alternatively, you can
|
||||
directly assign a new temperature to the fix via the
|
||||
"fix_modify"_fix_modify.html command. For consistency, if using the
|
||||
keyword {region}, the temperature you assign should also be of style
|
||||
{region}.
|
||||
|
||||
A temp/rescale fix does not update the coordinates of its atoms. It
|
||||
is normally used with a fix of style {nve} that does that. A
|
||||
temp/rescale fix should not normally be used on atoms that also have
|
||||
their temperature controlled by another fix - e.g. a
|
||||
"nvt"_fix_nvt.html or "langevin"_fix_langevin.html fix.
|
||||
|
||||
This fix supports the "fix_modify"_fix_modify.html options for
|
||||
{thermo} and {energy}. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed. The
|
||||
latter will add this contribution to the total potential energy
|
||||
(PotEng) so that energy conservation can be monitored. Note that the
|
||||
energy value printed by thermo is not cummulative energy, but energy
|
||||
added in the most recent rescaling. Also note that because this fix
|
||||
is invoked every N steps and thermo may be printed every M steps, that
|
||||
unless M is a multiple of N, the energy info printed by thermo will
|
||||
not be for the current timestep.
|
||||
This fix computes a temperature each timestep. To do this, the fix
|
||||
creates its own compute of style "temp" or "temp/region", as if one of
|
||||
these commands had been issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp
|
||||
compute fix-ID_temp group-ID temp/region region-ID :pre
|
||||
|
||||
Which is used depends on whether a region was specified with the fix.
|
||||
See the "compute temp"_compute_temp.html and "compute
|
||||
temp/region"_compute_temp_region.html commands for details. Note that
|
||||
the ID of the new compute is the fix-ID with "_temp" appended and the
|
||||
group for the new compute is the same as the fix group.
|
||||
|
||||
Note that this is NOT the compute used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
during thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} will have no
|
||||
effect on this fix. Alternatively, you can directly assign a new
|
||||
compute (for calculating temeperature) that you have defined to this
|
||||
fix via the "fix_modify"_fix_modify.html command. For consistency, if
|
||||
using the keyword {region}, the compute you assign should also be of
|
||||
style {temp/region}.
|
||||
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The contribution can
|
||||
also be printed by itself via the keyword {f_fix-ID} in the
|
||||
"thermo_style custom"_thermo_style.html command. Note that because
|
||||
this fix is invoked every N steps and thermodynamic info may be
|
||||
printed every M steps, that unless M is a multiple of N, the energy
|
||||
info accessed will not be for the current timestep.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
|
|
|
@ -44,12 +44,11 @@ provided by the <A HREF = "fix_wall_lj93.html">fix wall/lj93</A> command.
|
|||
<P>The wall potential is shifted so that the energy of a wall-particle
|
||||
interaction is 0.0 at the cutoff distance.
|
||||
</P>
|
||||
<P>This fix supports the <A HREF = "fix_modify.html">fix_modify</A> options for
|
||||
<I>thermo</I> and <I>energy</I>. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed,
|
||||
where the energy of each particle comes from the integrated form of
|
||||
the equation above. The latter will add this contribution to the
|
||||
total potential energy (PotEng).
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The contribution can
|
||||
also be printed by itself via the keyword <I>f_fix-ID</I> in the
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> command.
|
||||
</P>
|
||||
<P>The forces due to this fix are also imposed during an energy
|
||||
minimization, invoked by the <A HREF = "minimize.html">minimize</A> command. If you
|
||||
|
|
|
@ -41,12 +41,11 @@ provided by the "fix wall/lj93"_fix_wall_lj93.html command.
|
|||
The wall potential is shifted so that the energy of a wall-particle
|
||||
interaction is 0.0 at the cutoff distance.
|
||||
|
||||
This fix supports the "fix_modify"_fix_modify.html options for
|
||||
{thermo} and {energy}. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed,
|
||||
where the energy of each particle comes from the integrated form of
|
||||
the equation above. The latter will add this contribution to the
|
||||
total potential energy (PotEng).
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The contribution can
|
||||
also be printed by itself via the keyword {f_fix-ID} in the
|
||||
"thermo_style custom"_thermo_style.html command.
|
||||
|
||||
The forces due to this fix are also imposed during an energy
|
||||
minimization, invoked by the "minimize"_minimize.html command. If you
|
||||
|
|
|
@ -45,12 +45,11 @@ wall/lj126</A> command.
|
|||
<P>The wall potential is shifted so that the energy of a wall-particle
|
||||
interaction is 0.0 at the cutoff distance.
|
||||
</P>
|
||||
<P>This fix supports the <A HREF = "fix_modify.html">fix_modify</A> options for
|
||||
<I>thermo</I> and <I>energy</I>. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed,
|
||||
where the energy of each particle comes from the integrated form of
|
||||
the equation above. The latter will add this contribution to the
|
||||
total potential energy (PotEng).
|
||||
<P>This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the <A HREF = "fix_modify.html">fix_modify energy</A> option. The contribution can
|
||||
also be printed by itself via the keyword <I>f_fix-ID</I> in the
|
||||
<A HREF = "thermo_style.html">thermo_style custom</A> command.
|
||||
</P>
|
||||
<P>The forces due to this fix are also imposed during an energy
|
||||
minimization, invoked by the <A HREF = "minimize.html">minimize</A> command. If you
|
||||
|
|
|
@ -42,12 +42,11 @@ wall/lj126"_fix_wall_lj126.html command.
|
|||
The wall potential is shifted so that the energy of a wall-particle
|
||||
interaction is 0.0 at the cutoff distance.
|
||||
|
||||
This fix supports the "fix_modify"_fix_modify.html options for
|
||||
{thermo} and {energy}. The former will print the contribution the fix
|
||||
makes to the energy of the system when thermodynamics is printed,
|
||||
where the energy of each particle comes from the integrated form of
|
||||
the equation above. The latter will add this contribution to the
|
||||
total potential energy (PotEng).
|
||||
This fix makes a contribution to the potential energy of the system
|
||||
that can be included in thermodynamic output of potential energy using
|
||||
the "fix_modify energy"_fix_modify.html option. The contribution can
|
||||
also be printed by itself via the keyword {f_fix-ID} in the
|
||||
"thermo_style custom"_thermo_style.html command.
|
||||
|
||||
The forces due to this fix are also imposed during an energy
|
||||
minimization, invoked by the "minimize"_minimize.html command. If you
|
||||
|
|
|
@ -64,12 +64,12 @@ corresponds to the 1st example above would be listed as
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "improper_coeff.html">improper_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "improper_style_none.html">improper_style none</A> - turn off improper interactions
|
||||
<LI><A HREF = "improper_style_hybrid.html">improper_style hybrid</A> - define multiple styles of improper interactions
|
||||
<UL><LI><A HREF = "improper_none.html">improper_style none</A> - turn off improper interactions
|
||||
<LI><A HREF = "improper_hybrid.html">improper_style hybrid</A> - define multiple styles of improper interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "improper_style_class2.html">improper_style class2</A> - COMPASS (class 2) improper
|
||||
<LI><A HREF = "improper_style_cvff.html">improper_style cvff</A> - CVFF improper
|
||||
<LI><A HREF = "improper_style_harmonic.html">improper_style harmonic</A> - harmonic improper
|
||||
<UL><LI><A HREF = "improper_class2.html">improper_style class2</A> - COMPASS (class 2) improper
|
||||
<LI><A HREF = "improper_cvff.html">improper_style cvff</A> - CVFF improper
|
||||
<LI><A HREF = "improper_harmonic.html">improper_style harmonic</A> - harmonic improper
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -61,12 +61,12 @@ Here is an alphabetic list of improper styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "improper_coeff"_improper_coeff.html command:
|
||||
|
||||
"improper_style none"_improper_style_none.html - turn off improper interactions
|
||||
"improper_style hybrid"_improper_style_hybrid.html - define multiple styles of improper interactions :ul
|
||||
"improper_style none"_improper_none.html - turn off improper interactions
|
||||
"improper_style hybrid"_improper_hybrid.html - define multiple styles of improper interactions :ul
|
||||
|
||||
"improper_style class2"_improper_style_class2.html - COMPASS (class 2) improper
|
||||
"improper_style cvff"_improper_style_cvff.html - CVFF improper
|
||||
"improper_style harmonic"_improper_style_harmonic.html - harmonic improper :ul
|
||||
"improper_style class2"_improper_class2.html - COMPASS (class 2) improper
|
||||
"improper_style cvff"_improper_cvff.html - CVFF improper
|
||||
"improper_style harmonic"_improper_harmonic.html - harmonic improper :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -48,12 +48,12 @@ exist between the 4 bonded atoms.
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated <A HREF = "improper_coeff.html">improper_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "improper_style_none.html">improper_style none</A> - turn off improper interactions
|
||||
<LI><A HREF = "improper_style_hybrid.html">improper_style hybrid</A> - define multiple styles of improper interactions
|
||||
<UL><LI><A HREF = "improper_none.html">improper_style none</A> - turn off improper interactions
|
||||
<LI><A HREF = "improper_hybrid.html">improper_style hybrid</A> - define multiple styles of improper interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "improper_style_class2.html">improper_style class2</A> - COMPASS (class 2) improper
|
||||
<LI><A HREF = "improper_style_cvff.html">improper_style cvff</A> - CVFF improper
|
||||
<LI><A HREF = "improper_style_harmonic.html">improper_style harmonic</A> - harmonic improper
|
||||
<UL><LI><A HREF = "improper_class2.html">improper_style class2</A> - COMPASS (class 2) improper
|
||||
<LI><A HREF = "improper_cvff.html">improper_style cvff</A> - CVFF improper
|
||||
<LI><A HREF = "improper_harmonic.html">improper_style harmonic</A> - harmonic improper
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -45,12 +45,12 @@ Here is an alphabetic list of improper styles defined in LAMMPS. Click on
|
|||
the style to display the formula it computes and coefficients
|
||||
specified by the associated "improper_coeff"_improper_coeff.html command:
|
||||
|
||||
"improper_style none"_improper_style_none.html - turn off improper interactions
|
||||
"improper_style hybrid"_improper_style_hybrid.html - define multiple styles of improper interactions :ul
|
||||
"improper_style none"_improper_none.html - turn off improper interactions
|
||||
"improper_style hybrid"_improper_hybrid.html - define multiple styles of improper interactions :ul
|
||||
|
||||
"improper_style class2"_improper_style_class2.html - COMPASS (class 2) improper
|
||||
"improper_style cvff"_improper_style_cvff.html - CVFF improper
|
||||
"improper_style harmonic"_improper_style_harmonic.html - harmonic improper :ul
|
||||
"improper_style class2"_improper_class2.html - COMPASS (class 2) improper
|
||||
"improper_style cvff"_improper_cvff.html - CVFF improper
|
||||
"improper_style harmonic"_improper_harmonic.html - harmonic improper :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ the same log file.
|
|||
</P>
|
||||
<P>The file "log.lammps" is the default log file for a LAMMPS run. The
|
||||
name of the initial log file can also be set by the command-line
|
||||
switch -log. See <A HREF = "Section_start.html#2_4">this section</A> for details.
|
||||
switch -log. See <A HREF = "Section_start.html#2_6">this section</A> for details.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
</P>
|
||||
|
|
|
@ -30,7 +30,7 @@ the same log file.
|
|||
|
||||
The file "log.lammps" is the default log file for a LAMMPS run. The
|
||||
name of the initial log file can also be set by the command-line
|
||||
switch -log. See "this section"_Section_start.html#2_4 for details.
|
||||
switch -log. See "this section"_Section_start.html#2_6 for details.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ stored in the list.
|
|||
</P>
|
||||
<P>When a run is finished, counts of the number of neighbors stored in
|
||||
the pairwise list and the number of times neighbor lists were built
|
||||
are printed to the screen and log file. See <A HREF = "Section_start.html#2_5">this
|
||||
are printed to the screen and log file. See <A HREF = "Section_start.html#2_7">this
|
||||
section</A> for details.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
|
|
|
@ -46,7 +46,7 @@ stored in the list.
|
|||
When a run is finished, counts of the number of neighbors stored in
|
||||
the pairwise list and the number of times neighbor lists were built
|
||||
are printed to the screen and log file. See "this
|
||||
section"_Section_start.html#2_5 for details.
|
||||
section"_Section_start.html#2_7 for details.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ the next command is used with <I>universe</I>- or <I>uloop</I>-style variables,
|
|||
the next value is assigned to whichever processor partition executes
|
||||
the command first. All processors in the partition are assigned the
|
||||
same value. Running LAMMPS on multiple partitions of processors via
|
||||
the "-partition" command-line switch is described in <A HREF = "Section_start.html#2_4">this
|
||||
the "-partition" command-line switch is described in <A HREF = "Section_start.html#2_6">this
|
||||
section</A> of the manual. <I>Universe</I>- and
|
||||
<I>uloop</I>-style variables are incremented using the files
|
||||
"tmp.lammps.variable" and "tmp.lammps.variable.lock" which you will
|
||||
|
|
|
@ -45,7 +45,7 @@ the next value is assigned to whichever processor partition executes
|
|||
the command first. All processors in the partition are assigned the
|
||||
same value. Running LAMMPS on multiple partitions of processors via
|
||||
the "-partition" command-line switch is described in "this
|
||||
section"_Section_start.html#2_4 of the manual. {Universe}- and
|
||||
section"_Section_start.html#2_6 of the manual. {Universe}- and
|
||||
{uloop}-style variables are incremented using the files
|
||||
"tmp.lammps.variable" and "tmp.lammps.variable.lock" which you will
|
||||
see in your directory during such a LAMMPS run.
|
||||
|
|
|
@ -83,40 +83,39 @@ the style to display the formula it computes, arguments specified in
|
|||
the pair_style command, and coefficients specified by the associated
|
||||
<A HREF = "pair_coeff.html">pair_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "pair_style_none.html">pair_style none</A> - turn off pairwise interactions
|
||||
<LI><A HREF = "pair_style_hybrid.html">pair_style hybrid</A> - define multiple styles of pairwise interactions
|
||||
<UL><LI><A HREF = "pair_none.html">pair_style none</A> - turn off pairwise interactions
|
||||
<LI><A HREF = "pair_hybrid.html">pair_style hybrid</A> - define multiple styles of pairwise interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "pair_style_buck.html">pair_style buck</A> - Buckingham potential
|
||||
<LI><A HREF = "pair_style_buck.html">pair_style buck/coul/cut</A> - Buckinhham with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_buck.html">pair_style buck/coul/long</A> - Buckingham with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_dipole.html">pair_style dipole/cut</A> - cutoff dipole and charge interactions
|
||||
<LI><A HREF = "pair_style_dpd.html">pair_style dpd</A> - dissipative particle dynamics (DPD)
|
||||
<LI><A HREF = "pair_style_eam.html">pair_style eam</A> - embedded atom method (EAM)
|
||||
<LI><A HREF = "pair_style_eam.html">pair_style eam/alloy</A> - alloy EAM
|
||||
<LI><A HREF = "pair_style_eam.html">pair_style eam/fs</A> - Finnis-Sinclair EAM
|
||||
<LI><A HREF = "pair_style_granular.html">pair_style gran/hertzian</A> - granular potential with Hertizain interactions
|
||||
<LI><A HREF = "pair_style_granular.html">pair_style gran/history</A> - granular potential with history effects
|
||||
<LI><A HREF = "pair_style_granular.html">pair_style gran/no_history</A> - granular potential without history effects
|
||||
<LI><A HREF = "pair_style_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
|
||||
<LI><A HREF = "pair_style_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
|
||||
<LI><A HREF = "pair_style_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_class2.html">pair_style lj/class2/coul/long</A> - COMPASS with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut</A> - cutoff Lennard-Jones potential with no Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye damping added to Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
|
||||
<LI><A HREF = "pair_style_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
|
||||
<LI><A HREF = "pair_style_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
|
||||
<LI><A HREF = "pair_style_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
|
||||
<LI><A HREF = "pair_style_morse.html">pair_style morse</A> - Morse potential
|
||||
<LI><A HREF = "pair_style_soft.html">pair_style soft</A> - Soft (cosine) potential
|
||||
<LI><A HREF = "pair_style_sw.html">pair_style sw</A> - Stillinger-Weber 3-body potential
|
||||
<LI><A HREF = "pair_style_table.html">pair_style table</A> - tabulated pair potential
|
||||
<LI><A HREF = "pair_style_tersoff.html">pair_style tersoff</A> - Tersoff 3-body potential
|
||||
<LI><A HREF = "pair_style_yukawa.html">pair_style yukawa</A> - Yukawa potential
|
||||
<UL><LI><A HREF = "pair_buck.html">pair_style buck</A> - Buckingham potential
|
||||
<LI><A HREF = "pair_buck.html">pair_style buck/coul/cut</A> - Buckinhham with cutoff Coulomb
|
||||
<LI><A HREF = "pair_buck.html">pair_style buck/coul/long</A> - Buckingham with long-range Coulomb
|
||||
<LI><A HREF = "pair_dpd.html">pair_style dpd</A> - dissipative particle dynamics (DPD)
|
||||
<LI><A HREF = "pair_eam.html">pair_style eam</A> - embedded atom method (EAM)
|
||||
<LI><A HREF = "pair_eam.html">pair_style eam/alloy</A> - alloy EAM
|
||||
<LI><A HREF = "pair_eam.html">pair_style eam/fs</A> - Finnis-Sinclair EAM
|
||||
<LI><A HREF = "pair_granular.html">pair_style gran/hertzian</A> - granular potential with Hertizain interactions
|
||||
<LI><A HREF = "pair_granular.html">pair_style gran/history</A> - granular potential with history effects
|
||||
<LI><A HREF = "pair_granular.html">pair_style gran/no_history</A> - granular potential without history effects
|
||||
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
|
||||
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
|
||||
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
|
||||
<LI><A HREF = "pair_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
|
||||
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
|
||||
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/long</A> - COMPASS with long-range Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut</A> - cutoff Lennard-Jones potential with no Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye damping added to Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
|
||||
<LI><A HREF = "pair_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
|
||||
<LI><A HREF = "pair_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
|
||||
<LI><A HREF = "pair_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
|
||||
<LI><A HREF = "pair_morse.html">pair_style morse</A> - Morse potential
|
||||
<LI><A HREF = "pair_soft.html">pair_style soft</A> - Soft (cosine) potential
|
||||
<LI><A HREF = "pair_sw.html">pair_style sw</A> - Stillinger-Weber 3-body potential
|
||||
<LI><A HREF = "pair_table.html">pair_style table</A> - tabulated pair potential
|
||||
<LI><A HREF = "pair_tersoff.html">pair_style tersoff</A> - Tersoff 3-body potential
|
||||
<LI><A HREF = "pair_yukawa.html">pair_style yukawa</A> - Yukawa potential
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -80,40 +80,39 @@ the style to display the formula it computes, arguments specified in
|
|||
the pair_style command, and coefficients specified by the associated
|
||||
"pair_coeff"_pair_coeff.html command:
|
||||
|
||||
"pair_style none"_pair_style_none.html - turn off pairwise interactions
|
||||
"pair_style hybrid"_pair_style_hybrid.html - define multiple styles of pairwise interactions :ul
|
||||
"pair_style none"_pair_none.html - turn off pairwise interactions
|
||||
"pair_style hybrid"_pair_hybrid.html - define multiple styles of pairwise interactions :ul
|
||||
|
||||
"pair_style buck"_pair_style_buck.html - Buckingham potential
|
||||
"pair_style buck/coul/cut"_pair_style_buck.html - Buckinhham with cutoff Coulomb
|
||||
"pair_style buck/coul/long"_pair_style_buck.html - Buckingham with long-range Coulomb
|
||||
"pair_style dipole/cut"_pair_style_dipole.html - cutoff dipole and charge interactions
|
||||
"pair_style dpd"_pair_style_dpd.html - dissipative particle dynamics (DPD)
|
||||
"pair_style eam"_pair_style_eam.html - embedded atom method (EAM)
|
||||
"pair_style eam/alloy"_pair_style_eam.html - alloy EAM
|
||||
"pair_style eam/fs"_pair_style_eam.html - Finnis-Sinclair EAM
|
||||
"pair_style gran/hertzian"_pair_style_granular.html - granular potential with Hertizain interactions
|
||||
"pair_style gran/history"_pair_style_granular.html - granular potential with history effects
|
||||
"pair_style gran/no_history"_pair_style_granular.html - granular potential without history effects
|
||||
"pair_style lj/charmm/coul/charmm"_pair_style_charmm.html - CHARMM potential with cutoff Coulomb
|
||||
"pair_style lj/charmm/coul/charmm/implicit"_pair_style_charmm.html - CHARMM for implicit solvent
|
||||
"pair_style lj/charmm/coul/long"_pair_style_charmm.html - CHARMM with long-range Coulomb
|
||||
"pair_style lj/class2"_pair_style_class2.html - COMPASS (class 2) force field with no Coulomb
|
||||
"pair_style lj/class2/coul/cut"_pair_style_class2.html - COMPASS with cutoff Coulomb
|
||||
"pair_style lj/class2/coul/long"_pair_style_class2.html - COMPASS with long-range Coulomb
|
||||
"pair_style lj/cut"_pair_style_lj.html - cutoff Lennard-Jones potential with no Coulomb
|
||||
"pair_style lj/cut/coul/cut"_pair_style_lj.html - LJ with cutoff Coulomb
|
||||
"pair_style lj/cut/coul/debye"_pair_style_lj.html - LJ with Debye damping added to Coulomb
|
||||
"pair_style lj/cut/coul/long"_pair_style_lj.html - LJ with long-range Coulomb
|
||||
"pair_style lj/cut/coul/long/tip4p"_pair_style_lj.html - LJ with long-range Coulomb for TIP4P water
|
||||
"pair_style lj/expand"_pair_style_lj_expand.html - Lennard-Jones for variable size particles
|
||||
"pair_style lj/smooth"_pair_style_lj_smooth.html - smoothed Lennard-Jones potential
|
||||
"pair_style meam"_pair_style_meam.html - modified embedded atom method (MEAM)
|
||||
"pair_style morse"_pair_style_morse.html - Morse potential
|
||||
"pair_style soft"_pair_style_soft.html - Soft (cosine) potential
|
||||
"pair_style sw"_pair_style_sw.html - Stillinger-Weber 3-body potential
|
||||
"pair_style table"_pair_style_table.html - tabulated pair potential
|
||||
"pair_style tersoff"_pair_style_tersoff.html - Tersoff 3-body potential
|
||||
"pair_style yukawa"_pair_style_yukawa.html - Yukawa potential :ul
|
||||
"pair_style buck"_pair_buck.html - Buckingham potential
|
||||
"pair_style buck/coul/cut"_pair_buck.html - Buckinhham with cutoff Coulomb
|
||||
"pair_style buck/coul/long"_pair_buck.html - Buckingham with long-range Coulomb
|
||||
"pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD)
|
||||
"pair_style eam"_pair_eam.html - embedded atom method (EAM)
|
||||
"pair_style eam/alloy"_pair_eam.html - alloy EAM
|
||||
"pair_style eam/fs"_pair_eam.html - Finnis-Sinclair EAM
|
||||
"pair_style gran/hertzian"_pair_granular.html - granular potential with Hertizain interactions
|
||||
"pair_style gran/history"_pair_granular.html - granular potential with history effects
|
||||
"pair_style gran/no_history"_pair_granular.html - granular potential without history effects
|
||||
"pair_style lj/charmm/coul/charmm"_pair_charmm.html - CHARMM potential with cutoff Coulomb
|
||||
"pair_style lj/charmm/coul/charmm/implicit"_pair_charmm.html - CHARMM for implicit solvent
|
||||
"pair_style lj/charmm/coul/long"_pair_charmm.html - CHARMM with long-range Coulomb
|
||||
"pair_style lj/class2"_pair_class2.html - COMPASS (class 2) force field with no Coulomb
|
||||
"pair_style lj/class2/coul/cut"_pair_class2.html - COMPASS with cutoff Coulomb
|
||||
"pair_style lj/class2/coul/long"_pair_class2.html - COMPASS with long-range Coulomb
|
||||
"pair_style lj/cut"_pair_lj.html - cutoff Lennard-Jones potential with no Coulomb
|
||||
"pair_style lj/cut/coul/cut"_pair_lj.html - LJ with cutoff Coulomb
|
||||
"pair_style lj/cut/coul/debye"_pair_lj.html - LJ with Debye damping added to Coulomb
|
||||
"pair_style lj/cut/coul/long"_pair_lj.html - LJ with long-range Coulomb
|
||||
"pair_style lj/cut/coul/long/tip4p"_pair_lj.html - LJ with long-range Coulomb for TIP4P water
|
||||
"pair_style lj/expand"_pair_lj_expand.html - Lennard-Jones for variable size particles
|
||||
"pair_style lj/smooth"_pair_lj_smooth.html - smoothed Lennard-Jones potential
|
||||
"pair_style meam"_pair_meam.html - modified embedded atom method (MEAM)
|
||||
"pair_style morse"_pair_morse.html - Morse potential
|
||||
"pair_style soft"_pair_soft.html - Soft (cosine) potential
|
||||
"pair_style sw"_pair_sw.html - Stillinger-Weber 3-body potential
|
||||
"pair_style table"_pair_table.html - tabulated pair potential
|
||||
"pair_style tersoff"_pair_tersoff.html - Tersoff 3-body potential
|
||||
"pair_style yukawa"_pair_yukawa.html - Yukawa potential :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -17,25 +17,14 @@
|
|||
</PRE>
|
||||
<UL><LI>style = one of the following
|
||||
|
||||
<UL><LI><I>none</I>
|
||||
<LI><I>hybrid</I>
|
||||
<LI><I>buck</I> or <I>buck/coul/cut</I> or <I>buck/coul/long</I>
|
||||
<LI><I>dipole/cut</I> or <I>dipole/long</I>
|
||||
<LI><I>dpd</I>
|
||||
<LI><I>eam</I> or <I>eam/alloy</I> or <I>eam/fs</I>
|
||||
<LI><I>gran/hertzian</I> or <I>gran/history</I> or <I>gran/no_history</I>
|
||||
<LI><I>lj/charmm/coul/charmm</I> or <I>lj/charmm/coul/charmm/implicit</I> or <I>lj/charmm/coul/long</I>
|
||||
<LI><I>lj/class2</I> or <I>lj/class2/coul/cut</I> or <I>lj/class2/coul/long</I>
|
||||
<LI><I>lj/cut</I> or <I>lj/cut/coul/cut</I> or <I>lj/cut/coul/debye</I> or <I>lj/cut/coul/long</I> or <I>lj/cut/coul/long/tip4p</I>
|
||||
<LI><I>lj/expand</I>
|
||||
<LI><I>lj/smooth</I>
|
||||
<LI><I>meam</I>
|
||||
<LI><I>morse</I>
|
||||
<LI><I>soft</I>
|
||||
<LI><I>sw</I>
|
||||
<LI><I>table</I>
|
||||
<LI><I>tersoff</I>
|
||||
<LI><I>yukawa</I>
|
||||
<UL><LI><I>none</I>, <I>hybrid</I>, <I>buck</I>, <I>buck/coul/cut</I>, <I>buck/coul/long</I>, <I>dpd</I>,
|
||||
<LI><I>eam</I>, <I>eam/alloy</I> or <I>eam/fs</I>, <I>gran/hertzian</I>, <I>gran/history</I>,
|
||||
<LI><I>gran/no_history</I>, <I>lj/charmm/coul/charmm</I>,
|
||||
<LI><I>lj/charmm/coul/charmm/implicit</I> or <I>lj/charmm/coul/long</I>,
|
||||
<LI><I>lj/class2</I>, <I>lj/class2/coul/cut</I> or <I>lj/class2/coul/long</I>, <I>lj/cut</I>,
|
||||
<LI><I>lj/cut/coul/cut</I> or <I>lj/cut/coul/debye</I>, <I>lj/cut/coul/long</I>,
|
||||
<LI><I>lj/cut/coul/long/tip4p</I>, <I>lj/expand</I>, <I>lj/smooth</I>, <I>meam</I>, <I>morse</I>,
|
||||
<LI><I>soft</I>, <I>sw</I>, <I>table</I>, <I>tersoff</I>, <I>yukawa</I>
|
||||
</UL>
|
||||
<LI>args = arguments used by a particular style
|
||||
</UL>
|
||||
|
@ -100,40 +89,39 @@ the style to display the formula it computes, arguments specified in
|
|||
the pair_style command, and coefficients specified by the associated
|
||||
<A HREF = "pair_coeff.html">pair_coeff</A> command:
|
||||
</P>
|
||||
<UL><LI><A HREF = "pair_style_none.html">pair_style none</A> - turn off pairwise interactions
|
||||
<LI><A HREF = "pair_style_hybrid.html">pair_style hybrid</A> - define multiple styles of pairwise interactions
|
||||
<UL><LI><A HREF = "pair_none.html">pair_style none</A> - turn off pairwise interactions
|
||||
<LI><A HREF = "pair_hybrid.html">pair_style hybrid</A> - define multiple styles of pairwise interactions
|
||||
</UL>
|
||||
<UL><LI><A HREF = "pair_style_buck.html">pair_style buck</A> - Buckingham potential
|
||||
<LI><A HREF = "pair_style_buck.html">pair_style buck/coul/cut</A> - Buckinhham with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_buck.html">pair_style buck/coul/long</A> - Buckingham with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_dipole.html">pair_style dipole/cut</A> - cutoff dipole and charge interactions
|
||||
<LI><A HREF = "pair_style_dpd.html">pair_style dpd</A> - dissipative particle dynamics (DPD)
|
||||
<LI><A HREF = "pair_style_eam.html">pair_style eam</A> - embedded atom method (EAM)
|
||||
<LI><A HREF = "pair_style_eam.html">pair_style eam/alloy</A> - alloy EAM
|
||||
<LI><A HREF = "pair_style_eam.html">pair_style eam/fs</A> - Finnis-Sinclair EAM
|
||||
<LI><A HREF = "pair_style_granular.html">pair_style gran/hertzian</A> - granular potential with Hertizain interactions
|
||||
<LI><A HREF = "pair_style_granular.html">pair_style gran/history</A> - granular potential with history effects
|
||||
<LI><A HREF = "pair_style_granular.html">pair_style gran/no_history</A> - granular potential without history effects
|
||||
<LI><A HREF = "pair_style_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
|
||||
<LI><A HREF = "pair_style_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
|
||||
<LI><A HREF = "pair_style_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_class2.html">pair_style lj/class2/coul/long</A> - COMPASS with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut</A> - cutoff Lennard-Jones potential with no Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye damping added to Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
|
||||
<LI><A HREF = "pair_style_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
|
||||
<LI><A HREF = "pair_style_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
|
||||
<LI><A HREF = "pair_style_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
|
||||
<LI><A HREF = "pair_style_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
|
||||
<LI><A HREF = "pair_style_morse.html">pair_style morse</A> - Morse potential
|
||||
<LI><A HREF = "pair_style_soft.html">pair_style soft</A> - Soft (cosine) potential
|
||||
<LI><A HREF = "pair_style_sw.html">pair_style sw</A> - Stillinger-Weber 3-body potential
|
||||
<LI><A HREF = "pair_style_table.html">pair_style table</A> - tabulated pair potential
|
||||
<LI><A HREF = "pair_style_tersoff.html">pair_style tersoff</A> - Tersoff 3-body potential
|
||||
<LI><A HREF = "pair_style_yukawa.html">pair_style yukawa</A> - Yukawa potential
|
||||
<UL><LI><A HREF = "pair_buck.html">pair_style buck</A> - Buckingham potential
|
||||
<LI><A HREF = "pair_buck.html">pair_style buck/coul/cut</A> - Buckinhham with cutoff Coulomb
|
||||
<LI><A HREF = "pair_buck.html">pair_style buck/coul/long</A> - Buckingham with long-range Coulomb
|
||||
<LI><A HREF = "pair_dpd.html">pair_style dpd</A> - dissipative particle dynamics (DPD)
|
||||
<LI><A HREF = "pair_eam.html">pair_style eam</A> - embedded atom method (EAM)
|
||||
<LI><A HREF = "pair_eam.html">pair_style eam/alloy</A> - alloy EAM
|
||||
<LI><A HREF = "pair_eam.html">pair_style eam/fs</A> - Finnis-Sinclair EAM
|
||||
<LI><A HREF = "pair_granular.html">pair_style gran/hertzian</A> - granular potential with Hertizain interactions
|
||||
<LI><A HREF = "pair_granular.html">pair_style gran/history</A> - granular potential with history effects
|
||||
<LI><A HREF = "pair_granular.html">pair_style gran/no_history</A> - granular potential without history effects
|
||||
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
|
||||
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
|
||||
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
|
||||
<LI><A HREF = "pair_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
|
||||
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
|
||||
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/long</A> - COMPASS with long-range Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut</A> - cutoff Lennard-Jones potential with no Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye damping added to Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
|
||||
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
|
||||
<LI><A HREF = "pair_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
|
||||
<LI><A HREF = "pair_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
|
||||
<LI><A HREF = "pair_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
|
||||
<LI><A HREF = "pair_morse.html">pair_style morse</A> - Morse potential
|
||||
<LI><A HREF = "pair_soft.html">pair_style soft</A> - Soft (cosine) potential
|
||||
<LI><A HREF = "pair_sw.html">pair_style sw</A> - Stillinger-Weber 3-body potential
|
||||
<LI><A HREF = "pair_table.html">pair_style table</A> - tabulated pair potential
|
||||
<LI><A HREF = "pair_tersoff.html">pair_style tersoff</A> - Tersoff 3-body potential
|
||||
<LI><A HREF = "pair_yukawa.html">pair_style yukawa</A> - Yukawa potential
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
|
|
|
@ -14,25 +14,14 @@ pair_style style args :pre
|
|||
|
||||
style = one of the following :ulb,l
|
||||
|
||||
{none}
|
||||
{hybrid}
|
||||
{buck} or {buck/coul/cut} or {buck/coul/long}
|
||||
{dipole/cut} or {dipole/long}
|
||||
{dpd}
|
||||
{eam} or {eam/alloy} or {eam/fs}
|
||||
{gran/hertzian} or {gran/history} or {gran/no_history}
|
||||
{lj/charmm/coul/charmm} or {lj/charmm/coul/charmm/implicit} or {lj/charmm/coul/long}
|
||||
{lj/class2} or {lj/class2/coul/cut} or {lj/class2/coul/long}
|
||||
{lj/cut} or {lj/cut/coul/cut} or {lj/cut/coul/debye} or {lj/cut/coul/long} or {lj/cut/coul/long/tip4p}
|
||||
{lj/expand}
|
||||
{lj/smooth}
|
||||
{meam}
|
||||
{morse}
|
||||
{soft}
|
||||
{sw}
|
||||
{table}
|
||||
{tersoff}
|
||||
{yukawa} :ul
|
||||
{none}, {hybrid}, {buck}, {buck/coul/cut}, {buck/coul/long}, {dpd},
|
||||
{eam}, {eam/alloy} or {eam/fs}, {gran/hertzian}, {gran/history},
|
||||
{gran/no_history}, {lj/charmm/coul/charmm},
|
||||
{lj/charmm/coul/charmm/implicit} or {lj/charmm/coul/long},
|
||||
{lj/class2}, {lj/class2/coul/cut} or {lj/class2/coul/long}, {lj/cut},
|
||||
{lj/cut/coul/cut} or {lj/cut/coul/debye}, {lj/cut/coul/long},
|
||||
{lj/cut/coul/long/tip4p}, {lj/expand}, {lj/smooth}, {meam}, {morse},
|
||||
{soft}, {sw}, {table}, {tersoff}, {yukawa} :ul
|
||||
|
||||
args = arguments used by a particular style :l,ule
|
||||
|
||||
|
@ -97,40 +86,39 @@ the style to display the formula it computes, arguments specified in
|
|||
the pair_style command, and coefficients specified by the associated
|
||||
"pair_coeff"_pair_coeff.html command:
|
||||
|
||||
"pair_style none"_pair_style_none.html - turn off pairwise interactions
|
||||
"pair_style hybrid"_pair_style_hybrid.html - define multiple styles of pairwise interactions :ul
|
||||
"pair_style none"_pair_none.html - turn off pairwise interactions
|
||||
"pair_style hybrid"_pair_hybrid.html - define multiple styles of pairwise interactions :ul
|
||||
|
||||
"pair_style buck"_pair_style_buck.html - Buckingham potential
|
||||
"pair_style buck/coul/cut"_pair_style_buck.html - Buckinhham with cutoff Coulomb
|
||||
"pair_style buck/coul/long"_pair_style_buck.html - Buckingham with long-range Coulomb
|
||||
"pair_style dipole/cut"_pair_style_dipole.html - cutoff dipole and charge interactions
|
||||
"pair_style dpd"_pair_style_dpd.html - dissipative particle dynamics (DPD)
|
||||
"pair_style eam"_pair_style_eam.html - embedded atom method (EAM)
|
||||
"pair_style eam/alloy"_pair_style_eam.html - alloy EAM
|
||||
"pair_style eam/fs"_pair_style_eam.html - Finnis-Sinclair EAM
|
||||
"pair_style gran/hertzian"_pair_style_granular.html - granular potential with Hertizain interactions
|
||||
"pair_style gran/history"_pair_style_granular.html - granular potential with history effects
|
||||
"pair_style gran/no_history"_pair_style_granular.html - granular potential without history effects
|
||||
"pair_style lj/charmm/coul/charmm"_pair_style_charmm.html - CHARMM potential with cutoff Coulomb
|
||||
"pair_style lj/charmm/coul/charmm/implicit"_pair_style_charmm.html - CHARMM for implicit solvent
|
||||
"pair_style lj/charmm/coul/long"_pair_style_charmm.html - CHARMM with long-range Coulomb
|
||||
"pair_style lj/class2"_pair_style_class2.html - COMPASS (class 2) force field with no Coulomb
|
||||
"pair_style lj/class2/coul/cut"_pair_style_class2.html - COMPASS with cutoff Coulomb
|
||||
"pair_style lj/class2/coul/long"_pair_style_class2.html - COMPASS with long-range Coulomb
|
||||
"pair_style lj/cut"_pair_style_lj.html - cutoff Lennard-Jones potential with no Coulomb
|
||||
"pair_style lj/cut/coul/cut"_pair_style_lj.html - LJ with cutoff Coulomb
|
||||
"pair_style lj/cut/coul/debye"_pair_style_lj.html - LJ with Debye damping added to Coulomb
|
||||
"pair_style lj/cut/coul/long"_pair_style_lj.html - LJ with long-range Coulomb
|
||||
"pair_style lj/cut/coul/long/tip4p"_pair_style_lj.html - LJ with long-range Coulomb for TIP4P water
|
||||
"pair_style lj/expand"_pair_style_lj_expand.html - Lennard-Jones for variable size particles
|
||||
"pair_style lj/smooth"_pair_style_lj_smooth.html - smoothed Lennard-Jones potential
|
||||
"pair_style meam"_pair_style_meam.html - modified embedded atom method (MEAM)
|
||||
"pair_style morse"_pair_style_morse.html - Morse potential
|
||||
"pair_style soft"_pair_style_soft.html - Soft (cosine) potential
|
||||
"pair_style sw"_pair_style_sw.html - Stillinger-Weber 3-body potential
|
||||
"pair_style table"_pair_style_table.html - tabulated pair potential
|
||||
"pair_style tersoff"_pair_style_tersoff.html - Tersoff 3-body potential
|
||||
"pair_style yukawa"_pair_style_yukawa.html - Yukawa potential :ul
|
||||
"pair_style buck"_pair_buck.html - Buckingham potential
|
||||
"pair_style buck/coul/cut"_pair_buck.html - Buckinhham with cutoff Coulomb
|
||||
"pair_style buck/coul/long"_pair_buck.html - Buckingham with long-range Coulomb
|
||||
"pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD)
|
||||
"pair_style eam"_pair_eam.html - embedded atom method (EAM)
|
||||
"pair_style eam/alloy"_pair_eam.html - alloy EAM
|
||||
"pair_style eam/fs"_pair_eam.html - Finnis-Sinclair EAM
|
||||
"pair_style gran/hertzian"_pair_granular.html - granular potential with Hertizain interactions
|
||||
"pair_style gran/history"_pair_granular.html - granular potential with history effects
|
||||
"pair_style gran/no_history"_pair_granular.html - granular potential without history effects
|
||||
"pair_style lj/charmm/coul/charmm"_pair_charmm.html - CHARMM potential with cutoff Coulomb
|
||||
"pair_style lj/charmm/coul/charmm/implicit"_pair_charmm.html - CHARMM for implicit solvent
|
||||
"pair_style lj/charmm/coul/long"_pair_charmm.html - CHARMM with long-range Coulomb
|
||||
"pair_style lj/class2"_pair_class2.html - COMPASS (class 2) force field with no Coulomb
|
||||
"pair_style lj/class2/coul/cut"_pair_class2.html - COMPASS with cutoff Coulomb
|
||||
"pair_style lj/class2/coul/long"_pair_class2.html - COMPASS with long-range Coulomb
|
||||
"pair_style lj/cut"_pair_lj.html - cutoff Lennard-Jones potential with no Coulomb
|
||||
"pair_style lj/cut/coul/cut"_pair_lj.html - LJ with cutoff Coulomb
|
||||
"pair_style lj/cut/coul/debye"_pair_lj.html - LJ with Debye damping added to Coulomb
|
||||
"pair_style lj/cut/coul/long"_pair_lj.html - LJ with long-range Coulomb
|
||||
"pair_style lj/cut/coul/long/tip4p"_pair_lj.html - LJ with long-range Coulomb for TIP4P water
|
||||
"pair_style lj/expand"_pair_lj_expand.html - Lennard-Jones for variable size particles
|
||||
"pair_style lj/smooth"_pair_lj_smooth.html - smoothed Lennard-Jones potential
|
||||
"pair_style meam"_pair_meam.html - modified embedded atom method (MEAM)
|
||||
"pair_style morse"_pair_morse.html - Morse potential
|
||||
"pair_style soft"_pair_soft.html - Soft (cosine) potential
|
||||
"pair_style sw"_pair_sw.html - Stillinger-Weber 3-body potential
|
||||
"pair_style table"_pair_table.html - tabulated pair potential
|
||||
"pair_style tersoff"_pair_tersoff.html - Tersoff 3-body potential
|
||||
"pair_style yukawa"_pair_yukawa.html - Yukawa potential :ul
|
||||
|
||||
:line
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</P>
|
||||
<PRE>print args
|
||||
</PRE>
|
||||
<UL><LI>args = one or more text strings and variables names to print out
|
||||
<UL><LI>args = a line of text and variables names to print out
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
|
@ -25,14 +25,23 @@
|
|||
</P>
|
||||
<P>Print the list of arguments as a line of text to the screen and/or
|
||||
logfile. If variables are included in the arguments, they will be
|
||||
evaluated and their values printed. Note that if variables are
|
||||
included, the print string should not be enclosed in double quotes,
|
||||
else it will prevent the variables from being evaluated.
|
||||
evaluated and their current values printed. Note that if variables
|
||||
are included, the print string should not be enclosed in double
|
||||
quotes, else it will prevent the variables from being evaluated.
|
||||
</P>
|
||||
<P>By using the print command in a section of the input script that is
|
||||
looped over (see the <A HREF = "jump.html">jump</A> command), and by including
|
||||
variables of the <I>equal</I> style (see the <A HREF = "variable.html">variable</A>
|
||||
command), a string with changing values can be printed.
|
||||
<P>If you want the print command to be executed multiple times (with
|
||||
changing variable values), there are 3 options. First, consider using
|
||||
the <A HREF = "fix_print.html">fix print</A> command, which will invoke a print
|
||||
periodically during a simulation. Second, the print command can be
|
||||
used as an argument to the <I>every</I> option of the <A HREF = "run.html">run</A>
|
||||
command. Third, the print command could appear in a section of the
|
||||
input script that is looped over (see the <A HREF = "jump.html">jump</A> command).
|
||||
</P>
|
||||
<P>See the <A HREF = "variable.html">variable</A> command for a description of <I>equal</I>
|
||||
style variables which are typically the most useful ones to use with
|
||||
the print command. Equal-style variables can calculate complex
|
||||
formulas involving atom and group properties, mathematical operations,
|
||||
other variables, etc.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
</P>
|
||||
|
|
|
@ -12,7 +12,7 @@ print command :h3
|
|||
|
||||
print args :pre
|
||||
|
||||
args = one or more text strings and variables names to print out :ul
|
||||
args = a line of text and variables names to print out :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
|
@ -22,14 +22,23 @@ print The system volume is now $v :pre
|
|||
|
||||
Print the list of arguments as a line of text to the screen and/or
|
||||
logfile. If variables are included in the arguments, they will be
|
||||
evaluated and their values printed. Note that if variables are
|
||||
included, the print string should not be enclosed in double quotes,
|
||||
else it will prevent the variables from being evaluated.
|
||||
evaluated and their current values printed. Note that if variables
|
||||
are included, the print string should not be enclosed in double
|
||||
quotes, else it will prevent the variables from being evaluated.
|
||||
|
||||
By using the print command in a section of the input script that is
|
||||
looped over (see the "jump"_jump.html command), and by including
|
||||
variables of the {equal} style (see the "variable"_variable.html
|
||||
command), a string with changing values can be printed.
|
||||
If you want the print command to be executed multiple times (with
|
||||
changing variable values), there are 3 options. First, consider using
|
||||
the "fix print"_fix_print.html command, which will invoke a print
|
||||
periodically during a simulation. Second, the print command can be
|
||||
used as an argument to the {every} option of the "run"_run.html
|
||||
command. Third, the print command could appear in a section of the
|
||||
input script that is looped over (see the "jump"_jump.html command).
|
||||
|
||||
See the "variable"_variable.html command for a description of {equal}
|
||||
style variables which are typically the most useful ones to use with
|
||||
the print command. Equal-style variables can calculate complex
|
||||
formulas involving atom and group properties, mathematical operations,
|
||||
other variables, etc.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ dramatically over the course of the simulation.
|
|||
</P>
|
||||
<P>The product of Px, Py, Pz must equal P, the total # of processors
|
||||
LAMMPS is running on. If multiple partitions are being used then P is
|
||||
the number of processors in this partition; see <A HREF = "Section_start.html#2_4">this
|
||||
the number of processors in this partition; see <A HREF = "Section_start.html#2_6">this
|
||||
section</A> for an explanation of the -partition
|
||||
command-line switch.
|
||||
</P>
|
||||
|
|
|
@ -36,7 +36,7 @@ dramatically over the course of the simulation.
|
|||
The product of Px, Py, Pz must equal P, the total # of processors
|
||||
LAMMPS is running on. If multiple partitions are being used then P is
|
||||
the number of processors in this partition; see "this
|
||||
section"_Section_start.html#2_4 for an explanation of the -partition
|
||||
section"_Section_start.html#2_6 for an explanation of the -partition
|
||||
command-line switch.
|
||||
|
||||
If P is large and prime, a grid such as 1 x P x 1 will be required,
|
||||
|
|
|
@ -212,47 +212,39 @@ integers (1, not 1.0).
|
|||
|
||||
<P><I>Atoms</I> section:
|
||||
</P>
|
||||
<UL><LI>one line per atom
|
||||
<UL><LI>one line per atom
|
||||
<LI>line syntax: depends on atom style
|
||||
</UL>
|
||||
<P>This is the list of all possible quantities that can appear on each
|
||||
line of this section:
|
||||
<P>An <I>Atoms</I> section must appear in the data file if natoms > 0 in the
|
||||
header section. The atoms can be listed in any order. These are the
|
||||
line formats for each <A HREF = "atom_style.html">atom style</A> in LAMMPS:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >angle</TD><TD > atom-ID molecule-ID atom-type x y z</TD></TR>
|
||||
<TR><TD >atomic</TD><TD > atom-ID atom-type x y z</TD></TR>
|
||||
<TR><TD >bond</TD><TD > atom-ID molecule-ID atom-type x y z</TD></TR>
|
||||
<TR><TD >charge</TD><TD > atom-ID atom-type q x y z</TD></TR>
|
||||
<TR><TD >dpd</TD><TD > atom-ID atom-type x y z</TD></TR>
|
||||
<TR><TD >full</TD><TD > atom-ID molecule-ID atom-type q x y z</TD></TR>
|
||||
<TR><TD >granular</TD><TD > atom-ID atom-type diameter density x y z</TD></TR>
|
||||
<TR><TD >molecular</TD><TD > atom-ID molecule-ID atom-type x y z
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>where the keywords have these meanings:
|
||||
</P>
|
||||
<UL><LI>atom-ID = integer ID of atom
|
||||
<LI>molecule-ID = integer ID of molecule the atom belongs to
|
||||
<LI>type-ID = integer type ID of atom (1-Ntype)
|
||||
<LI>type-ID = type of atom (1-Ntype)
|
||||
<LI>q = charge on atom
|
||||
<LI>diameter = diameter of atom
|
||||
<LI>density = density of atom
|
||||
<LI>x,y,z = coordinates of atom
|
||||
<LI>mux,muy,muz = components of dipole orientation of atom
|
||||
<LI>nx,ny,nz = image indices for atom
|
||||
<LI>x,y,z = coordinates of atom
|
||||
</UL>
|
||||
<P>Which of these quantities are actually listed depends on the <A HREF = "atom_style.html">atom
|
||||
style</A>. This is the list of which styles require each
|
||||
quantity:
|
||||
</P>
|
||||
<UL><LI>atom-ID = all styles
|
||||
<LI>molecule-ID = angle, bond, molecular, full styles
|
||||
<LI>type-ID = all styles
|
||||
<LI>q = charge, dipole, full styles
|
||||
<LI>diameter = granular style
|
||||
<LI>density = granular style
|
||||
<LI>x,y,z = all styles
|
||||
<LI>mux,muy,muz = dipole style
|
||||
<LI>nx,ny,nz = optional for all styles (see below)
|
||||
</UL>
|
||||
<P>Any quantity that is used by the atom style appears in the order
|
||||
listed above. Thus if the atom style is <I>atomic</I>, an atom line should
|
||||
have 5 quantities: atom-ID, type-ID, x, y, z. If the atom style is
|
||||
<I>hybrid dipole molecular</I>, then an atom line should have 10 quantites:
|
||||
atom-ID, molecule-ID, type-ID, q, x, y, z, mux, muy, muz.
|
||||
</P>
|
||||
<P>The units for these quantities depend on the unit style; see the
|
||||
<A HREF = "units.html">units</A> command for details.
|
||||
</P>
|
||||
<P>For 2d simulations specify z as 0.0, or whatever value is within the
|
||||
<I>zlo zhi</I> setting in the data file header.
|
||||
<P>For 2d simulations specify z as 0.0, or a value is within the <I>zlo
|
||||
zhi</I> setting in the data file header.
|
||||
</P>
|
||||
<P>The atom-ID is used to identify the atom throughout the simulation and
|
||||
in dump files. Normally, it is a unique value from 1 to Natoms for
|
||||
|
@ -266,25 +258,21 @@ be set to 0.
|
|||
</P>
|
||||
<P>The molecule ID is a 2nd identifier attached to an atom. Normally, it
|
||||
is a number from 1 to N, identifying which molecule the atom belongs
|
||||
to. It can be 0 if it is an unbonded atom or if you don't care about
|
||||
molecule assignments.
|
||||
to. It can be 0 if it is an unbonded atom or if you don't care to
|
||||
keep track of molecule assignments.
|
||||
</P>
|
||||
<P>An <I>Atoms</I> section must appear in the data file if natoms > 0 in the
|
||||
header section. The atoms can be listed in any order.
|
||||
</P>
|
||||
<P>Atom lines (all or none of them) can optionally list 3 final integer
|
||||
values: nx,ny,nz. For periodic dimensions, they specify which image
|
||||
of the box the atom is considered to be in. An image of 0 means the
|
||||
box as defined. A value of 2 means add 2 box lengths to get the true
|
||||
value. A value of -1 means subtract 1 box length to get the true
|
||||
<P>Atom lines (all lines or none of them) can optionally list 3 final
|
||||
integer values: nx,ny,nz. For periodic dimensions, they specify which
|
||||
image of the box the atom is considered to be in. An image of 0 means
|
||||
the box as defined. A value of 2 means add 2 box lengths to get the
|
||||
true value. A value of -1 means subtract 1 box length to get the true
|
||||
value. LAMMPS updates these flags as atoms cross periodic boundaries
|
||||
during the simulation. The flags can be output via the
|
||||
<A HREF = "dump.html">dump</A> and <A HREF = "dump_modify.html">dump_modify</A> commands. If
|
||||
nx,ny,nz values are not set in the data file, LAMMPS initializes them
|
||||
to 0.
|
||||
during the simulation. The flags can be output with atom snapshots
|
||||
via the <A HREF = "dump.html">dump</A> command. If nx,ny,nz values are not set in
|
||||
the data file, LAMMPS initializes them to 0.
|
||||
</P>
|
||||
<P>Atom velocities are set to 0.0 when the <I>Atoms</I> section is read. They
|
||||
may later be set by a <I>Velocities</I> section or by a
|
||||
may later be set by a <I>Velocities</I> section in the data file or by a
|
||||
<A HREF = "velocity.html">velocity</A> command in the input script.
|
||||
</P>
|
||||
<HR>
|
||||
|
|
|
@ -191,47 +191,37 @@ line syntax: ID coeffs :l
|
|||
|
||||
{Atoms} section:
|
||||
|
||||
one line per atom
|
||||
one line per atom
|
||||
line syntax: depends on atom style :ul
|
||||
|
||||
This is the list of all possible quantities that can appear on each
|
||||
line of this section:
|
||||
An {Atoms} section must appear in the data file if natoms > 0 in the
|
||||
header section. The atoms can be listed in any order. These are the
|
||||
line formats for each "atom style"_atom_style.html in LAMMPS:
|
||||
|
||||
angle: atom-ID molecule-ID atom-type x y z
|
||||
atomic: atom-ID atom-type x y z
|
||||
bond: atom-ID molecule-ID atom-type x y z
|
||||
charge: atom-ID atom-type q x y z
|
||||
dpd: atom-ID atom-type x y z
|
||||
full: atom-ID molecule-ID atom-type q x y z
|
||||
granular: atom-ID atom-type diameter density x y z
|
||||
molecular: atom-ID molecule-ID atom-type x y z :tb(s=:)
|
||||
|
||||
where the keywords have these meanings:
|
||||
|
||||
atom-ID = integer ID of atom
|
||||
molecule-ID = integer ID of molecule the atom belongs to
|
||||
type-ID = integer type ID of atom (1-Ntype)
|
||||
type-ID = type of atom (1-Ntype)
|
||||
q = charge on atom
|
||||
diameter = diameter of atom
|
||||
density = density of atom
|
||||
x,y,z = coordinates of atom
|
||||
mux,muy,muz = components of dipole orientation of atom
|
||||
nx,ny,nz = image indices for atom :ul
|
||||
|
||||
Which of these quantities are actually listed depends on the "atom
|
||||
style"_atom_style.html. This is the list of which styles require each
|
||||
quantity:
|
||||
|
||||
atom-ID = all styles
|
||||
molecule-ID = angle, bond, molecular, full styles
|
||||
type-ID = all styles
|
||||
q = charge, dipole, full styles
|
||||
diameter = granular style
|
||||
density = granular style
|
||||
x,y,z = all styles
|
||||
mux,muy,muz = dipole style
|
||||
nx,ny,nz = optional for all styles (see below) :ul
|
||||
|
||||
Any quantity that is used by the atom style appears in the order
|
||||
listed above. Thus if the atom style is {atomic}, an atom line should
|
||||
have 5 quantities: atom-ID, type-ID, x, y, z. If the atom style is
|
||||
{hybrid dipole molecular}, then an atom line should have 10 quantites:
|
||||
atom-ID, molecule-ID, type-ID, q, x, y, z, mux, muy, muz.
|
||||
x,y,z = coordinates of atom :ul
|
||||
|
||||
The units for these quantities depend on the unit style; see the
|
||||
"units"_units.html command for details.
|
||||
|
||||
For 2d simulations specify z as 0.0, or whatever value is within the
|
||||
{zlo zhi} setting in the data file header.
|
||||
For 2d simulations specify z as 0.0, or a value is within the {zlo
|
||||
zhi} setting in the data file header.
|
||||
|
||||
The atom-ID is used to identify the atom throughout the simulation and
|
||||
in dump files. Normally, it is a unique value from 1 to Natoms for
|
||||
|
@ -245,25 +235,21 @@ be set to 0.
|
|||
|
||||
The molecule ID is a 2nd identifier attached to an atom. Normally, it
|
||||
is a number from 1 to N, identifying which molecule the atom belongs
|
||||
to. It can be 0 if it is an unbonded atom or if you don't care about
|
||||
molecule assignments.
|
||||
to. It can be 0 if it is an unbonded atom or if you don't care to
|
||||
keep track of molecule assignments.
|
||||
|
||||
An {Atoms} section must appear in the data file if natoms > 0 in the
|
||||
header section. The atoms can be listed in any order.
|
||||
|
||||
Atom lines (all or none of them) can optionally list 3 final integer
|
||||
values: nx,ny,nz. For periodic dimensions, they specify which image
|
||||
of the box the atom is considered to be in. An image of 0 means the
|
||||
box as defined. A value of 2 means add 2 box lengths to get the true
|
||||
value. A value of -1 means subtract 1 box length to get the true
|
||||
Atom lines (all lines or none of them) can optionally list 3 final
|
||||
integer values: nx,ny,nz. For periodic dimensions, they specify which
|
||||
image of the box the atom is considered to be in. An image of 0 means
|
||||
the box as defined. A value of 2 means add 2 box lengths to get the
|
||||
true value. A value of -1 means subtract 1 box length to get the true
|
||||
value. LAMMPS updates these flags as atoms cross periodic boundaries
|
||||
during the simulation. The flags can be output via the
|
||||
"dump"_dump.html and "dump_modify"_dump_modify.html commands. If
|
||||
nx,ny,nz values are not set in the data file, LAMMPS initializes them
|
||||
to 0.
|
||||
during the simulation. The flags can be output with atom snapshots
|
||||
via the "dump"_dump.html command. If nx,ny,nz values are not set in
|
||||
the data file, LAMMPS initializes them to 0.
|
||||
|
||||
Atom velocities are set to 0.0 when the {Atoms} section is read. They
|
||||
may later be set by a {Velocities} section or by a
|
||||
may later be set by a {Velocities} section in the data file or by a
|
||||
"velocity"_velocity.html command in the input script.
|
||||
|
||||
:line
|
||||
|
|
|
@ -33,7 +33,7 @@ temper 40000 100 $t tempfix 0 32285 $w
|
|||
<P>Run a parallel tempering (replica exchange) simulation of multiple
|
||||
ensembles of a system on multiple partitions of processors. The
|
||||
processor partitions are defined using the -partition command-line
|
||||
switch (see <A HREF = "Section_start.html#2_4">this section</A>). Each ensemble's
|
||||
switch (see <A HREF = "Section_start.html#2_6">this section</A>). Each ensemble's
|
||||
temperature is typically controlled at a different value by a fix with
|
||||
ID <I>fix-ID</I> that controls temperature. Possible fix styles are
|
||||
<A HREF = "fix_nvt.html">nvt</A>, <A HREF = "fix_npt.html">npt</A>, and
|
||||
|
|
|
@ -30,7 +30,7 @@ temper 40000 100 $t tempfix 0 32285 $w :pre
|
|||
Run a parallel tempering (replica exchange) simulation of multiple
|
||||
ensembles of a system on multiple partitions of processors. The
|
||||
processor partitions are defined using the -partition command-line
|
||||
switch (see "this section"_Section_start.html#2_4). Each ensemble's
|
||||
switch (see "this section"_Section_start.html#2_6). Each ensemble's
|
||||
temperature is typically controlled at a different value by a fix with
|
||||
ID {fix-ID} that controls temperature. Possible fix styles are
|
||||
"nvt"_fix_nvt.html, "npt"_fix_npt.html, and
|
||||
|
|
|
@ -23,10 +23,14 @@
|
|||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Compute and print thermodynamics (temperature, energy, pressure) on
|
||||
timesteps that are a multiple of N and at the beginning and end of a
|
||||
simulation. A value of 0 will only print thermodynamics at the
|
||||
beginning and end.
|
||||
<P>Compute and print thermodynamic info (e.g. temperature, energy,
|
||||
pressure) on timesteps that are a multiple of N and at the beginning
|
||||
and end of a simulation. A value of 0 will only print thermodynamics
|
||||
at the beginning and end.
|
||||
</P>
|
||||
<P>The content and format of what is printed is controlled by the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> and
|
||||
<A HREF = "thermo_modify.html">thermo_modify</A> commands.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
</P>
|
||||
|
|
|
@ -20,10 +20,14 @@ thermo 100 :pre
|
|||
|
||||
[Description:]
|
||||
|
||||
Compute and print thermodynamics (temperature, energy, pressure) on
|
||||
timesteps that are a multiple of N and at the beginning and end of a
|
||||
simulation. A value of 0 will only print thermodynamics at the
|
||||
beginning and end.
|
||||
Compute and print thermodynamic info (e.g. temperature, energy,
|
||||
pressure) on timesteps that are a multiple of N and at the beginning
|
||||
and end of a simulation. A value of 0 will only print thermodynamics
|
||||
at the beginning and end.
|
||||
|
||||
The content and format of what is printed is controlled by the
|
||||
"thermo_style"_thermo_style.html and
|
||||
"thermo_modify"_thermo_modify.html commands.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
|
|
|
@ -19,8 +19,7 @@
|
|||
|
||||
<LI>keyword = <I>temp</I> or <I>lost</I> or <I>norm</I> or <I>flush</I> or <I>line</I> or <I>format</I>
|
||||
|
||||
<PRE> <I>temp</I> value = ID of temperature
|
||||
<I>lost</I> value = <I>error</I> or <I>warn</I> or <I>ignore</I>
|
||||
<PRE> <I>lost</I> value = <I>error</I> or <I>warn</I> or <I>ignore</I>
|
||||
<I>norm</I> value = <I>yes</I> or <I>no</I>
|
||||
<I>flush</I> value = <I>yes</I> or <I>no</I>
|
||||
<I>line</I> value = <I>one</I> or <I>multi</I>
|
||||
|
@ -30,57 +29,95 @@
|
|||
<I>window</I> value = N
|
||||
N = number of previous print-outs to average over
|
||||
</PRE>
|
||||
<I>temp</I> value = compute ID that calculates a temperature
|
||||
<I>press</I> value = compute ID that calculates a pressure
|
||||
<I>drot</I> value = compute ID that calculates rotational energy for dipolar atoms
|
||||
<I>grot</I> value = compute ID that calculates rotational energy for granular atoms
|
||||
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>thermo_modify temp mydef
|
||||
thermo_modify lost no flush yes
|
||||
<PRE>thermo_modify lost no flush yes
|
||||
thermo_modify temp myTemp
|
||||
thermo_modify line multi format float %g format 3 %15.8g
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Set options for how thermodynamics are computed and printed by LAMMPS.
|
||||
<P>Set options for how thermodynamic information is computed and printed
|
||||
by LAMMPS.
|
||||
</P>
|
||||
<P>The <I>temp</I> option allows you to specify how temperature is computed
|
||||
when used to output thermodynamic info (temperature, kinetic energy,
|
||||
pressure). Different methods of computing temperature can be defined
|
||||
via the <A HREF = "temperature.html">temperature</A> command.
|
||||
</P>
|
||||
<P>The <I>lost</I> option determines whether LAMMPS checks for lost atoms each
|
||||
time it computes thermodynamics and what it does if atoms are lost.
|
||||
If the value is <I>ignore</I>, LAMMPS does not check for lost atoms. If
|
||||
the value is <I>error</I> or <I>warn</I>, LAMMPS checks and either issues an
|
||||
<P>The <I>lost</I> keyword determines whether LAMMPS checks for lost atoms
|
||||
each time it computes thermodynamics and what it does if atoms are
|
||||
lost. If the value is <I>ignore</I>, LAMMPS does not check for lost atoms.
|
||||
If the value is <I>error</I> or <I>warn</I>, LAMMPS checks and either issues an
|
||||
error or warning. The code will exit with an error and continue with
|
||||
a warning. This can be a useful debugging option.
|
||||
</P>
|
||||
<P>The <I>norm</I> option determines whether the thermodynamic print-out is
|
||||
<P>The <I>norm</I> keyword determines whether the thermodynamic print-out is
|
||||
normalized by the number of atoms or is the total summed across all
|
||||
atoms. Different unit styles have different defaults for this
|
||||
setting.
|
||||
</P>
|
||||
<P>The <I>flush</I> option invokes a flush operation after thermodynamic info
|
||||
<P>The <I>flush</I> keyword invokes a flush operation after thermodynamic info
|
||||
is written to the log file. This insures the output in that file is
|
||||
current (no buffering by the OS), even if LAMMPS halts before the
|
||||
simulation completes.
|
||||
</P>
|
||||
<P>The <I>line</I> option determines whether thermodynamics will be printed as
|
||||
a series of numeric values on one line or in a multi-line format with
|
||||
3 quantities with text strings per line and a dashed-line header
|
||||
<P>The <I>line</I> keyword determines whether thermodynamics will be printed
|
||||
as a series of numeric values on one line or in a multi-line format
|
||||
with 3 quantities with text strings per line and a dashed-line header
|
||||
containing the timestep and CPU time. This modify option overrides
|
||||
the <I>one</I> and <I>multi</I> thermo_style settings.
|
||||
</P>
|
||||
<P>The <I>format</I> option sets the numeric format of individual printed
|
||||
<P>The <I>format</I> keyword sets the numeric format of individual printed
|
||||
quantities. The <I>int</I> and <I>float</I> settings set the format for all
|
||||
integer or floating-point quantities printed. The setting with a
|
||||
numeric value (e.g. format 5 %10.4g) sets the format of the Nth value
|
||||
printed. If the format for a specific value has been set, it will
|
||||
take precedent over the <I>int</I> or <I>float</I> setting.
|
||||
</P>
|
||||
<P>The <I>window</I> option sets the number of previous thermodynamic screen
|
||||
<P>The <I>window</I> keyword sets the number of previous thermodynamic screen
|
||||
outputs over which <A HREF = "thermo_style.html">thermo_style custom</A> <I>ave</I>
|
||||
quantities are averaged when printed.
|
||||
</P>
|
||||
<P>The <I>temp</I> keyword is used to determine how thermodynamic temperature
|
||||
is calculated, which is used by all thermo quantities that require a
|
||||
temperature ("temp", "press", "ke", "etotal", "enthalpy", "pxx etc",
|
||||
"tave", "pave"). The specified compute ID must have been previously
|
||||
defined by the user via the <A HREF = "compute.html">compute</A> command and it must
|
||||
be a style of compute that calculates a temperature. As described in
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command, thermo output has a
|
||||
default compute for temperature with ID = <I>thermo_temp</I>. This option
|
||||
allows the user to override the default.
|
||||
</P>
|
||||
<P>The <I>press</I> keyword is used to determine how thermodynamic pressure is
|
||||
calculated, which is used by all thermo quantities that require a
|
||||
pressure ("press", "enthalpy", "pxx etc", "pave"). The specified
|
||||
compute ID must have been previously defined by the user via the
|
||||
<A HREF = "compute.html">compute</A> command and it must be a style of compute that
|
||||
calculates a pressure. As described in the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> command, thermo output has a default
|
||||
compute for pressure with ID = <I>thermo_press</I>. This option allows the
|
||||
user to override the default.
|
||||
</P>
|
||||
<P>The <I>drot</I> keyword is used to determine how rotational energy is
|
||||
calculated for dipolar atoms, which is used by the thermo_style
|
||||
keyword <I>drot</I>. The specified compute ID must have been previously
|
||||
defined by the user via the <A HREF = "compute.html">compute</A> command. As
|
||||
described in the <A HREF = "thermo_style.html">thermo_style</A> command, thermo
|
||||
output has a default compute for this calculation with ID =
|
||||
<I>thermo_rotate_dipole</I>. This option allows the user to override the
|
||||
default.
|
||||
</P>
|
||||
<P>The <I>grot</I> keyword is used to determine how rotational energy is
|
||||
calculated for granular atoms, which is used by the thermo_style
|
||||
keyword <I>grot</I>. The specified compute ID must have been previously
|
||||
defined by the user via the <A HREF = "compute.html">compute</A> command. As
|
||||
described in the <A HREF = "thermo_style.html">thermo_style</A> command, thermo
|
||||
output has a default compute for this calculation with ID =
|
||||
<I>thermo_rotate_gran</I>. This option allows the user to override the
|
||||
default.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
|
@ -90,12 +127,14 @@ quantities are averaged when printed.
|
|||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>The option defaults are temp = default, lost = error, norm = yes for
|
||||
unit style of <I>lj</I>, norm = no for unit style of <I>real</I> and <I>metal</I>,
|
||||
flush = no, window = 10. The defaults for the line and format options
|
||||
depend on the thermo style. For styles "one", "granular", and
|
||||
"custom" the line and format defaults are "one", "%8d", and "%12.8g".
|
||||
For style "multi", the line and format defaults are "multi", "%8d",
|
||||
and "%14.4f".
|
||||
<P>The option defaults are lost = error, norm = yes for unit style of
|
||||
<I>lj</I>, norm = no for unit style of <I>real</I> and <I>metal</I>, flush = no,
|
||||
window = 10, temp/press/drot/grot = compute IDs defined by
|
||||
thermo_style.
|
||||
</P>
|
||||
<P>The defaults for the line and format options depend on the thermo
|
||||
style. For styles "one", "granular", and "custom" the line and format
|
||||
defaults are "one", "%8d", and "%12.8g". For style "multi", the line
|
||||
and format defaults are "multi", "%8d", and "%14.4f".
|
||||
</P>
|
||||
</HTML>
|
||||
|
|
|
@ -14,7 +14,6 @@ thermo_modify keyword value ... :pre
|
|||
|
||||
one or more keyword/value pairs may be listed :ulb,l
|
||||
keyword = {temp} or {lost} or {norm} or {flush} or {line} or {format} :l
|
||||
{temp} value = ID of temperature
|
||||
{lost} value = {error} or {warn} or {ignore}
|
||||
{norm} value = {yes} or {no}
|
||||
{flush} value = {yes} or {no}
|
||||
|
@ -24,57 +23,95 @@ keyword = {temp} or {lost} or {norm} or {flush} or {line} or {format} :l
|
|||
string = C-style format string
|
||||
{window} value = N
|
||||
N = number of previous print-outs to average over :pre
|
||||
{temp} value = compute ID that calculates a temperature
|
||||
{press} value = compute ID that calculates a pressure
|
||||
{drot} value = compute ID that calculates rotational energy for dipolar atoms
|
||||
{grot} value = compute ID that calculates rotational energy for granular atoms
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
thermo_modify temp mydef
|
||||
thermo_modify lost no flush yes
|
||||
thermo_modify temp myTemp
|
||||
thermo_modify line multi format float %g format 3 %15.8g :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Set options for how thermodynamics are computed and printed by LAMMPS.
|
||||
Set options for how thermodynamic information is computed and printed
|
||||
by LAMMPS.
|
||||
|
||||
The {temp} option allows you to specify how temperature is computed
|
||||
when used to output thermodynamic info (temperature, kinetic energy,
|
||||
pressure). Different methods of computing temperature can be defined
|
||||
via the "temperature"_temperature.html command.
|
||||
|
||||
The {lost} option determines whether LAMMPS checks for lost atoms each
|
||||
time it computes thermodynamics and what it does if atoms are lost.
|
||||
If the value is {ignore}, LAMMPS does not check for lost atoms. If
|
||||
the value is {error} or {warn}, LAMMPS checks and either issues an
|
||||
The {lost} keyword determines whether LAMMPS checks for lost atoms
|
||||
each time it computes thermodynamics and what it does if atoms are
|
||||
lost. If the value is {ignore}, LAMMPS does not check for lost atoms.
|
||||
If the value is {error} or {warn}, LAMMPS checks and either issues an
|
||||
error or warning. The code will exit with an error and continue with
|
||||
a warning. This can be a useful debugging option.
|
||||
|
||||
The {norm} option determines whether the thermodynamic print-out is
|
||||
The {norm} keyword determines whether the thermodynamic print-out is
|
||||
normalized by the number of atoms or is the total summed across all
|
||||
atoms. Different unit styles have different defaults for this
|
||||
setting.
|
||||
|
||||
The {flush} option invokes a flush operation after thermodynamic info
|
||||
The {flush} keyword invokes a flush operation after thermodynamic info
|
||||
is written to the log file. This insures the output in that file is
|
||||
current (no buffering by the OS), even if LAMMPS halts before the
|
||||
simulation completes.
|
||||
|
||||
The {line} option determines whether thermodynamics will be printed as
|
||||
a series of numeric values on one line or in a multi-line format with
|
||||
3 quantities with text strings per line and a dashed-line header
|
||||
The {line} keyword determines whether thermodynamics will be printed
|
||||
as a series of numeric values on one line or in a multi-line format
|
||||
with 3 quantities with text strings per line and a dashed-line header
|
||||
containing the timestep and CPU time. This modify option overrides
|
||||
the {one} and {multi} thermo_style settings.
|
||||
|
||||
The {format} option sets the numeric format of individual printed
|
||||
The {format} keyword sets the numeric format of individual printed
|
||||
quantities. The {int} and {float} settings set the format for all
|
||||
integer or floating-point quantities printed. The setting with a
|
||||
numeric value (e.g. format 5 %10.4g) sets the format of the Nth value
|
||||
printed. If the format for a specific value has been set, it will
|
||||
take precedent over the {int} or {float} setting.
|
||||
|
||||
The {window} option sets the number of previous thermodynamic screen
|
||||
The {window} keyword sets the number of previous thermodynamic screen
|
||||
outputs over which "thermo_style custom"_thermo_style.html {ave}
|
||||
quantities are averaged when printed.
|
||||
|
||||
The {temp} keyword is used to determine how thermodynamic temperature
|
||||
is calculated, which is used by all thermo quantities that require a
|
||||
temperature ("temp", "press", "ke", "etotal", "enthalpy", "pxx etc",
|
||||
"tave", "pave"). The specified compute ID must have been previously
|
||||
defined by the user via the "compute"_compute.html command and it must
|
||||
be a style of compute that calculates a temperature. As described in
|
||||
the "thermo_style"_thermo_style.html command, thermo output has a
|
||||
default compute for temperature with ID = {thermo_temp}. This option
|
||||
allows the user to override the default.
|
||||
|
||||
The {press} keyword is used to determine how thermodynamic pressure is
|
||||
calculated, which is used by all thermo quantities that require a
|
||||
pressure ("press", "enthalpy", "pxx etc", "pave"). The specified
|
||||
compute ID must have been previously defined by the user via the
|
||||
"compute"_compute.html command and it must be a style of compute that
|
||||
calculates a pressure. As described in the
|
||||
"thermo_style"_thermo_style.html command, thermo output has a default
|
||||
compute for pressure with ID = {thermo_press}. This option allows the
|
||||
user to override the default.
|
||||
|
||||
The {drot} keyword is used to determine how rotational energy is
|
||||
calculated for dipolar atoms, which is used by the thermo_style
|
||||
keyword {drot}. The specified compute ID must have been previously
|
||||
defined by the user via the "compute"_compute.html command. As
|
||||
described in the "thermo_style"_thermo_style.html command, thermo
|
||||
output has a default compute for this calculation with ID =
|
||||
{thermo_rotate_dipole}. This option allows the user to override the
|
||||
default.
|
||||
|
||||
The {grot} keyword is used to determine how rotational energy is
|
||||
calculated for granular atoms, which is used by the thermo_style
|
||||
keyword {grot}. The specified compute ID must have been previously
|
||||
defined by the user via the "compute"_compute.html command. As
|
||||
described in the "thermo_style"_thermo_style.html command, thermo
|
||||
output has a default compute for this calculation with ID =
|
||||
{thermo_rotate_gran}. This option allows the user to override the
|
||||
default.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
[Related commands:]
|
||||
|
@ -84,10 +121,12 @@ quantities are averaged when printed.
|
|||
|
||||
[Default:]
|
||||
|
||||
The option defaults are temp = default, lost = error, norm = yes for
|
||||
unit style of {lj}, norm = no for unit style of {real} and {metal},
|
||||
flush = no, window = 10. The defaults for the line and format options
|
||||
depend on the thermo style. For styles "one", "granular", and
|
||||
"custom" the line and format defaults are "one", "%8d", and "%12.8g".
|
||||
For style "multi", the line and format defaults are "multi", "%8d",
|
||||
and "%14.4f".
|
||||
The option defaults are lost = error, norm = yes for unit style of
|
||||
{lj}, norm = no for unit style of {real} and {metal}, flush = no,
|
||||
window = 10, temp/press/drot/grot = compute IDs defined by
|
||||
thermo_style.
|
||||
|
||||
The defaults for the line and format options depend on the thermo
|
||||
style. For styles "one", "granular", and "custom" the line and format
|
||||
defaults are "one", "%8d", and "%12.8g". For style "multi", the line
|
||||
and format defaults are "multi", "%8d", and "%14.4f".
|
||||
|
|
|
@ -27,8 +27,11 @@
|
|||
pe, ke, etotal, enthalpy,
|
||||
evdwl, ecoul, epair, ebond, eangle, edihed, eimp,
|
||||
emol, elong, etail,
|
||||
vol, lx, ly, lz, pxx, pyy, pzz, pxy, pxz, pyz
|
||||
gke, grot, tave, pave, eave, peave, t_ID
|
||||
vol, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi,
|
||||
pxx, pyy, pzz, pxy, pxz, pyz
|
||||
drot, grot,
|
||||
tave, pave, eave, peave,
|
||||
c_ID, c_ID[n], f_ID, f_ID[n], v_name
|
||||
step = timestep
|
||||
atoms = # of atoms
|
||||
cpu = elapsed CPU time
|
||||
|
@ -50,11 +53,16 @@
|
|||
etail = VanderWaal energy long-range tail correction
|
||||
vol = volume
|
||||
lx,ly,lz = box lengths in x,y,z
|
||||
xlo,xhi,ylo,yhi,zlo,zhi = box boundaries
|
||||
pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor
|
||||
gke = granular translational kinetic energy (without frozen atoms)
|
||||
grot = granular rotational kinetic energy (without frozen atoms)
|
||||
drot = rotational energy of dipolar atoms
|
||||
grot = rotational energy of granular atoms
|
||||
tave, pave, eave, peave = time-averaged temp, press, etotal, pe
|
||||
t_ID = termperature as computed by temperature ID
|
||||
c_ID = scalar quantity calculated by a compute identified by its ID
|
||||
c_ID[N] = Nth vector quantity calculated by a compute identified by its ID
|
||||
f_ID = scalar quantity calculated by a fix identified by its ID
|
||||
f_ID[N] = Nth vector quantity calculated by a fix identified by its ID
|
||||
v_name = current value of a variable identified by the variable name
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
|
@ -62,12 +70,12 @@
|
|||
</P>
|
||||
<PRE>thermo_style multi
|
||||
thermo_style custom step temp pe etotal press vol
|
||||
thermo_style custom step temp t_left t_right etotal
|
||||
thermo_style custom step temp etotal c_myTemp v_abc
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Set the style in which thermodynamic data is printed to the screen and
|
||||
log file.
|
||||
<P>Set the style and content for printing thermodynamic data to the
|
||||
screen and log file.
|
||||
</P>
|
||||
<P>Style <I>one</I> prints a one-line summary of thermodynamic info that is
|
||||
the equivalent of "thermo_style custom step temp epair emol etotal
|
||||
|
@ -80,23 +88,97 @@ numeric values and a string ID for each quantity.
|
|||
</P>
|
||||
<P>Style <I>granular</I> is used with <A HREF = "atom_style.html">atom style</A> granular
|
||||
and prints a one-line numeric summary that is the equivalent of
|
||||
"thermo_style custom step atoms gke grot".
|
||||
"thermo_style custom step atoms ke grot".
|
||||
</P>
|
||||
<P>Style <I>custom</I> is the most general setting and allows you to specify
|
||||
which of the quantities listed above you want printed on each
|
||||
thermodynamic timestep.
|
||||
which of the keywords listed above you want printed on each
|
||||
thermodynamic timestep. Note that the keywords c_ID, f_ID, v_name are
|
||||
references to <A HREF = "compute.html">computes</A>, <A HREF = "fix.html">fixes</A>, and
|
||||
<A HREF = "variable.html"">variables</A> that have been defined elsewhere in the
|
||||
input script or can even be new styles which users have added to
|
||||
LAMMPS (see the <A HREF = "Section_modify.html">Section_modify</A> section of the
|
||||
documentation). Thus the <I>custom</I> style provides a flexible means of
|
||||
outputting essentially any desired quantity as a simulation proceeds.
|
||||
</P>
|
||||
<P>Also, all styles except <I>custom</I> have <I>vol</I> added to their list of
|
||||
outputs as a final printed quantity when the simulation box volume
|
||||
changes during the simulation.
|
||||
<P>All styles except <I>custom</I> have <I>vol</I> appended to their list of
|
||||
outputs if the simulation box volume changes during the simulation.
|
||||
</P>
|
||||
<P>All thermodynamic quantities which require a temperature (<I>temp, press,
|
||||
ke, etotal, tave, eave</I>) use the temperature with ID = <I>default</I> that is
|
||||
defined by LAMMPS (see the <A HREF = "temperature.html">temperature</A> command)
|
||||
that performs an average over all atoms. This can be changed via the
|
||||
<A HREF = "thermo_modify.html">thermo_modify</A> command. The exception is the
|
||||
<I>t_ID</I> quantity which directly specifies which temperature to compute
|
||||
and print out.
|
||||
<P>Options invoked by the <A HREF = "thermo_modify.html">thermo_modify</A> command can
|
||||
be used to set the one- or multi-line format of the print-out, the
|
||||
normalization of energy quantities (total or per-atom), and the
|
||||
numeric precision of each printed value.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>Several of the thermodynamic quantities require a temperature to be
|
||||
computed: "temp", "press", "ke", "etotal", "enthalpy", "pxx etc",
|
||||
"tave", "pave". To do this, a compute of style "temp" is created, as
|
||||
if this command had been issued:
|
||||
</P>
|
||||
<PRE>compute thermo_temp all temp
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_temp.html">compute temp</A> command for details. Note
|
||||
that the ID of the new compute is <I>thermo_temp</I> and the group is
|
||||
<I>all</I>. You can change the attributes of this temperature (e.g. its
|
||||
degrees-of-freedom) via the <A HREF = "compute_modify.html">compute_modify</A>
|
||||
command. Alternatively, you can directly assign a new compute (that
|
||||
calculates temperature) which you have defined, to be used for any
|
||||
thermodynamic quantity that requires a temperature. This is done via
|
||||
the <A HREF = "thermo_modify.html">thermo_modify</A> command.
|
||||
</P>
|
||||
<P>Several of the thermodynamic quantities require a pressure to be
|
||||
computed: "press", "enthalpy", "pxx etc", "pave". To do this, a
|
||||
compute of style "pressure" is created, as if this command had been
|
||||
issued:
|
||||
</P>
|
||||
<PRE>compute thermo_press all pressure thermo_temp
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_pressure.html">compute pressure</A> command for details.
|
||||
Note that the ID of the new compute is <I>thermo_press</I> and the group is
|
||||
<I>all</I>. You can change the attributes of this pressure via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command. Alternatively, you can
|
||||
directly assign a new compute (that calculates pressure) which you
|
||||
have defined, to be used for any thermodynamic quantity that requires
|
||||
a pressure. This is done via the <A HREF = "thermo_modify.html">thermo_modify</A>
|
||||
command.
|
||||
</P>
|
||||
<P>The <I>drot</I> keyword requires a rotational energy to be compute for
|
||||
dipolar particles. To do this, a compute of style "rotate/dipole" is
|
||||
created, as if this command had been issued:
|
||||
</P>
|
||||
<PRE>compute thermo_rotate_dipole all rotate/dipole
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_rotate_dipole.html">compute rotate/dipole</A> command for
|
||||
details. Note that the ID of the new compute is
|
||||
<I>thermo_rotate_dipole</I> and the group is <I>all</I>. You can change the
|
||||
attributes of this computation via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command. Alternatively, you can
|
||||
directly assign a new compute which you have defined, to be used for
|
||||
<I>drot</I>. This is done via the <A HREF = "thermo_modify.html">thermo_modify</A>
|
||||
command. For example, this could be useful if you wish to exclude
|
||||
certain particles from the compuation.
|
||||
</P>
|
||||
<P>The <I>grot</I> keyword requires a rotational energy to be compute for
|
||||
granular particles. To do this, a compute of style "rotate/gran" is
|
||||
created, as if this command had been issued:
|
||||
</P>
|
||||
<PRE>compute thermo_rotate_gran all rotate/gran
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_rotate_gran.html">compute rotate/gran</A> command for
|
||||
details. Note that the ID of the new compute is <I>thermo_rotate_gran</I>
|
||||
and the group is <I>all</I>. You can change the attributes of this
|
||||
computation via the <A HREF = "compute_modify.html">compute_modify</A> command.
|
||||
Alternatively, you can directly assign a new compute which you have
|
||||
defined, to be used for <I>grot</I>. This is done via the
|
||||
<A HREF = "thermo_modify.html">thermo_modify</A> command. For example, this could
|
||||
be useful if you wish to exclude frozen particles from the compuation.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>The potential energy of the system <I>pe</I> will include contributions
|
||||
from fixes if the <A HREF = "fix_modify.html">fix_modify thermo</A> option was set
|
||||
for each fix. For example, the <A HREF = "fix_wall_lj93">fix wall/lj93</A> fix will
|
||||
contribute the energy of atoms interacting with the wall.
|
||||
</P>
|
||||
<P>A long-range tail correction <I>etail</I> for the VanderWaal pairwise
|
||||
energy will be non-zero only if the <A HREF = "pair_modify.html">pair_modify
|
||||
|
@ -105,39 +187,53 @@ is included in <I>evdwl</I>, <I>pe</I>, and <I>etotal</I>, and the corresponding
|
|||
correction to the pressure is included in <I>press</I> and <I>pxx</I>, <I>pyy</I>,
|
||||
etc.
|
||||
</P>
|
||||
<P>The time-averaged quantities <I>tave, pave, eave, peave</I> are averaged
|
||||
over the last N thermodynamic outputs to the screen (not the last N
|
||||
<P>The time-averaged keywords <I>tave, pave, eave, peave</I> are averaged over
|
||||
the last N thermodynamic outputs to the screen (not the last N
|
||||
timesteps), where N is the value set by the <I>window</I> option of the
|
||||
<A HREF = "thermo_modify.html">thermo_modify</A> command (N = 10 by default).
|
||||
</P>
|
||||
<P>The <I>t_ID</I> quantity allows for user-defined temperatures to be printed
|
||||
with thermodynamic output. For example, if either of the commands
|
||||
<HR>
|
||||
|
||||
<P>The <I>c_ID</I> and <I>c_ID[N]</I> keywords allow scalar or vector quantities
|
||||
calculated by a compute to be output. The ID in the keyword should be
|
||||
replaced by the actual ID of the compute that has been defined
|
||||
elsewhere in the input script. See the <A HREF = "compute.html">compute</A> command
|
||||
for details. Note that per-atom quantities calcalated by a compute
|
||||
cannot be output as part of thermodynamics. Rather, these quantities
|
||||
are output by the <A HREF = "dump.html">dump custom</A> command.
|
||||
</P>
|
||||
<PRE>temperature mine all region sphere
|
||||
fix mine all temp/rescale 100 1.0 1.0 0.1 1.0 region sphere
|
||||
</PRE>
|
||||
<P>were used to compute or thermostat the temperature of atoms inside a
|
||||
spherical geometric region, then the keyword <I>t_mine</I> will print that
|
||||
temperature as part of thermodynamic output.
|
||||
<P>If <I>c_ID</I> is used as a keyword, then the scalar quantity calculated by
|
||||
the compute is printed. If <I>c_ID[N]</I> is used, then N in the range
|
||||
from 1-M will print a specific component of the vector calculated by
|
||||
the compute. A value of N=0 will output the scalar quantity.
|
||||
</P>
|
||||
<P>Some fixes also generate quantities that can be appended to these
|
||||
lists each time thermodyanmic info prints out, if enabled by the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command. See invidividual fix commands
|
||||
for more details, e.g. the <A HREF = "fix_nvt.html">fix nvt</A> and <A HREF = "fix_npt.html">fix
|
||||
npt</A> commands.
|
||||
<P>The <I>f_ID</I> and <I>f_ID[N]</I> keywords allow scalar or vector quantities
|
||||
calculated by a fix to be output. The ID in the keyword should be
|
||||
replaced by the actual ID of the fix that has been defined elsewhere
|
||||
in the input script. See the <A HREF = "fix.html">fix</A> command for details.
|
||||
</P>
|
||||
<P>Options invoked by the <A HREF = "thermo_modify.html">thermo_modify</A> command can
|
||||
be used to set the one- or multi-line format of the print-out, the
|
||||
normalization of energy quantities (total or per-atom), and the
|
||||
numeric precision of each printed value.
|
||||
<P>If <I>f_ID</I> is used as a keyword, then the scalar quantity calculated by
|
||||
the fix is printed. If <I>f_ID[N]</I> is used, then N in the range from
|
||||
1-M will print a specific component of the vector calculated by the
|
||||
fix. A value of N=0 will output the scalar quantity.
|
||||
</P>
|
||||
<P>The <I>v_name</I> keyword allow the current value of a variable to be
|
||||
output. The name in the keyword should be replaced by the actual namd
|
||||
of the variable that has been defined elsewhere in the input script.
|
||||
See the <A HREF = "variable.html">variable</A> command for details. Equal-style
|
||||
variables can calculate complex formulas involving atom and group
|
||||
properties, mathematical operations, other variables, etc. This
|
||||
keyword enables them to be evaluated and their value printed
|
||||
periodically during a simulation.
|
||||
</P>
|
||||
<P>See <A HREF = "Section_modify.html">this section</A> for information on how to add
|
||||
new compute and fix styles as well as variable options to LAMMPS that
|
||||
calculate quantities that could then be output with these keywords.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P><A HREF = "atom_style.html">Atom style</A> granular cannot compute the usual
|
||||
temperature and pressure settings because it stores atom masses
|
||||
differently. The gke and grot settings should be used instead (or use
|
||||
thermo style granular).
|
||||
</P>
|
||||
<P>This command must come after the simulation box is defined by a
|
||||
<A HREF = "read_data.html">read_data</A>, <A HREF = "read_restart.html">read_restart</A>, or
|
||||
<A HREF = "create_box.html">create_box</A> command.
|
||||
|
|
|
@ -22,8 +22,11 @@ args = list of arguments for a particular style :l
|
|||
pe, ke, etotal, enthalpy,
|
||||
evdwl, ecoul, epair, ebond, eangle, edihed, eimp,
|
||||
emol, elong, etail,
|
||||
vol, lx, ly, lz, pxx, pyy, pzz, pxy, pxz, pyz
|
||||
gke, grot, tave, pave, eave, peave, t_ID
|
||||
vol, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi,
|
||||
pxx, pyy, pzz, pxy, pxz, pyz
|
||||
drot, grot,
|
||||
tave, pave, eave, peave,
|
||||
c_ID, c_ID\[n\], f_ID, f_ID\[n\], v_name
|
||||
step = timestep
|
||||
atoms = # of atoms
|
||||
cpu = elapsed CPU time
|
||||
|
@ -45,23 +48,28 @@ args = list of arguments for a particular style :l
|
|||
etail = VanderWaal energy long-range tail correction
|
||||
vol = volume
|
||||
lx,ly,lz = box lengths in x,y,z
|
||||
xlo,xhi,ylo,yhi,zlo,zhi = box boundaries
|
||||
pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor
|
||||
gke = granular translational kinetic energy (without frozen atoms)
|
||||
grot = granular rotational kinetic energy (without frozen atoms)
|
||||
drot = rotational energy of dipolar atoms
|
||||
grot = rotational energy of granular atoms
|
||||
tave, pave, eave, peave = time-averaged temp, press, etotal, pe
|
||||
t_ID = termperature as computed by temperature ID :pre
|
||||
c_ID = scalar quantity calculated by a compute identified by its ID
|
||||
c_ID\[N\] = Nth vector quantity calculated by a compute identified by its ID
|
||||
f_ID = scalar quantity calculated by a fix identified by its ID
|
||||
f_ID\[N\] = Nth vector quantity calculated by a fix identified by its ID
|
||||
v_name = current value of a variable identified by the variable name :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
thermo_style multi
|
||||
thermo_style custom step temp pe etotal press vol
|
||||
thermo_style custom step temp t_left t_right etotal :pre
|
||||
thermo_style custom step temp etotal c_myTemp v_abc :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Set the style in which thermodynamic data is printed to the screen and
|
||||
log file.
|
||||
Set the style and content for printing thermodynamic data to the
|
||||
screen and log file.
|
||||
|
||||
Style {one} prints a one-line summary of thermodynamic info that is
|
||||
the equivalent of "thermo_style custom step temp epair emol etotal
|
||||
|
@ -74,23 +82,97 @@ numeric values and a string ID for each quantity.
|
|||
|
||||
Style {granular} is used with "atom style"_atom_style.html granular
|
||||
and prints a one-line numeric summary that is the equivalent of
|
||||
"thermo_style custom step atoms gke grot".
|
||||
"thermo_style custom step atoms ke grot".
|
||||
|
||||
Style {custom} is the most general setting and allows you to specify
|
||||
which of the quantities listed above you want printed on each
|
||||
thermodynamic timestep.
|
||||
which of the keywords listed above you want printed on each
|
||||
thermodynamic timestep. Note that the keywords c_ID, f_ID, v_name are
|
||||
references to "computes"_compute.html, "fixes"_fix.html, and
|
||||
"variables"_variable.html" that have been defined elsewhere in the
|
||||
input script or can even be new styles which users have added to
|
||||
LAMMPS (see the "Section_modify"_Section_modify.html section of the
|
||||
documentation). Thus the {custom} style provides a flexible means of
|
||||
outputting essentially any desired quantity as a simulation proceeds.
|
||||
|
||||
Also, all styles except {custom} have {vol} added to their list of
|
||||
outputs as a final printed quantity when the simulation box volume
|
||||
changes during the simulation.
|
||||
All styles except {custom} have {vol} appended to their list of
|
||||
outputs if the simulation box volume changes during the simulation.
|
||||
|
||||
All thermodynamic quantities which require a temperature ({temp, press,
|
||||
ke, etotal, tave, eave}) use the temperature with ID = {default} that is
|
||||
defined by LAMMPS (see the "temperature"_temperature.html command)
|
||||
that performs an average over all atoms. This can be changed via the
|
||||
"thermo_modify"_thermo_modify.html command. The exception is the
|
||||
{t_ID} quantity which directly specifies which temperature to compute
|
||||
and print out.
|
||||
Options invoked by the "thermo_modify"_thermo_modify.html command can
|
||||
be used to set the one- or multi-line format of the print-out, the
|
||||
normalization of energy quantities (total or per-atom), and the
|
||||
numeric precision of each printed value.
|
||||
|
||||
:line
|
||||
|
||||
Several of the thermodynamic quantities require a temperature to be
|
||||
computed: "temp", "press", "ke", "etotal", "enthalpy", "pxx etc",
|
||||
"tave", "pave". To do this, a compute of style "temp" is created, as
|
||||
if this command had been issued:
|
||||
|
||||
compute thermo_temp all temp :pre
|
||||
|
||||
See the "compute temp"_compute_temp.html command for details. Note
|
||||
that the ID of the new compute is {thermo_temp} and the group is
|
||||
{all}. You can change the attributes of this temperature (e.g. its
|
||||
degrees-of-freedom) via the "compute_modify"_compute_modify.html
|
||||
command. Alternatively, you can directly assign a new compute (that
|
||||
calculates temperature) which you have defined, to be used for any
|
||||
thermodynamic quantity that requires a temperature. This is done via
|
||||
the "thermo_modify"_thermo_modify.html command.
|
||||
|
||||
Several of the thermodynamic quantities require a pressure to be
|
||||
computed: "press", "enthalpy", "pxx etc", "pave". To do this, a
|
||||
compute of style "pressure" is created, as if this command had been
|
||||
issued:
|
||||
|
||||
compute thermo_press all pressure thermo_temp :pre
|
||||
|
||||
See the "compute pressure"_compute_pressure.html command for details.
|
||||
Note that the ID of the new compute is {thermo_press} and the group is
|
||||
{all}. You can change the attributes of this pressure via the
|
||||
"compute_modify"_compute_modify.html command. Alternatively, you can
|
||||
directly assign a new compute (that calculates pressure) which you
|
||||
have defined, to be used for any thermodynamic quantity that requires
|
||||
a pressure. This is done via the "thermo_modify"_thermo_modify.html
|
||||
command.
|
||||
|
||||
The {drot} keyword requires a rotational energy to be compute for
|
||||
dipolar particles. To do this, a compute of style "rotate/dipole" is
|
||||
created, as if this command had been issued:
|
||||
|
||||
compute thermo_rotate_dipole all rotate/dipole :pre
|
||||
|
||||
See the "compute rotate/dipole"_compute_rotate_dipole.html command for
|
||||
details. Note that the ID of the new compute is
|
||||
{thermo_rotate_dipole} and the group is {all}. You can change the
|
||||
attributes of this computation via the
|
||||
"compute_modify"_compute_modify.html command. Alternatively, you can
|
||||
directly assign a new compute which you have defined, to be used for
|
||||
{drot}. This is done via the "thermo_modify"_thermo_modify.html
|
||||
command. For example, this could be useful if you wish to exclude
|
||||
certain particles from the compuation.
|
||||
|
||||
The {grot} keyword requires a rotational energy to be compute for
|
||||
granular particles. To do this, a compute of style "rotate/gran" is
|
||||
created, as if this command had been issued:
|
||||
|
||||
compute thermo_rotate_gran all rotate/gran :pre
|
||||
|
||||
See the "compute rotate/gran"_compute_rotate_gran.html command for
|
||||
details. Note that the ID of the new compute is {thermo_rotate_gran}
|
||||
and the group is {all}. You can change the attributes of this
|
||||
computation via the "compute_modify"_compute_modify.html command.
|
||||
Alternatively, you can directly assign a new compute which you have
|
||||
defined, to be used for {grot}. This is done via the
|
||||
"thermo_modify"_thermo_modify.html command. For example, this could
|
||||
be useful if you wish to exclude frozen particles from the compuation.
|
||||
|
||||
:line
|
||||
|
||||
The potential energy of the system {pe} will include contributions
|
||||
from fixes if the "fix_modify thermo"_fix_modify.html option was set
|
||||
for each fix. For example, the "fix wall/lj93"_fix_wall_lj93 fix will
|
||||
contribute the energy of atoms interacting with the wall.
|
||||
|
||||
A long-range tail correction {etail} for the VanderWaal pairwise
|
||||
energy will be non-zero only if the "pair_modify
|
||||
|
@ -99,39 +181,53 @@ is included in {evdwl}, {pe}, and {etotal}, and the corresponding tail
|
|||
correction to the pressure is included in {press} and {pxx}, {pyy},
|
||||
etc.
|
||||
|
||||
The time-averaged quantities {tave, pave, eave, peave} are averaged
|
||||
over the last N thermodynamic outputs to the screen (not the last N
|
||||
The time-averaged keywords {tave, pave, eave, peave} are averaged over
|
||||
the last N thermodynamic outputs to the screen (not the last N
|
||||
timesteps), where N is the value set by the {window} option of the
|
||||
"thermo_modify"_thermo_modify.html command (N = 10 by default).
|
||||
|
||||
The {t_ID} quantity allows for user-defined temperatures to be printed
|
||||
with thermodynamic output. For example, if either of the commands
|
||||
:line
|
||||
|
||||
temperature mine all region sphere
|
||||
fix mine all temp/rescale 100 1.0 1.0 0.1 1.0 region sphere :pre
|
||||
The {c_ID} and {c_ID\[N\]} keywords allow scalar or vector quantities
|
||||
calculated by a compute to be output. The ID in the keyword should be
|
||||
replaced by the actual ID of the compute that has been defined
|
||||
elsewhere in the input script. See the "compute"_compute.html command
|
||||
for details. Note that per-atom quantities calcalated by a compute
|
||||
cannot be output as part of thermodynamics. Rather, these quantities
|
||||
are output by the "dump custom"_dump.html command.
|
||||
|
||||
were used to compute or thermostat the temperature of atoms inside a
|
||||
spherical geometric region, then the keyword {t_mine} will print that
|
||||
temperature as part of thermodynamic output.
|
||||
If {c_ID} is used as a keyword, then the scalar quantity calculated by
|
||||
the compute is printed. If {c_ID\[N\]} is used, then N in the range
|
||||
from 1-M will print a specific component of the vector calculated by
|
||||
the compute. A value of N=0 will output the scalar quantity.
|
||||
|
||||
Some fixes also generate quantities that can be appended to these
|
||||
lists each time thermodyanmic info prints out, if enabled by the
|
||||
"fix_modify"_fix_modify.html command. See invidividual fix commands
|
||||
for more details, e.g. the "fix nvt"_fix_nvt.html and "fix
|
||||
npt"_fix_npt.html commands.
|
||||
The {f_ID} and {f_ID\[N\]} keywords allow scalar or vector quantities
|
||||
calculated by a fix to be output. The ID in the keyword should be
|
||||
replaced by the actual ID of the fix that has been defined elsewhere
|
||||
in the input script. See the "fix"_fix.html command for details.
|
||||
|
||||
Options invoked by the "thermo_modify"_thermo_modify.html command can
|
||||
be used to set the one- or multi-line format of the print-out, the
|
||||
normalization of energy quantities (total or per-atom), and the
|
||||
numeric precision of each printed value.
|
||||
If {f_ID} is used as a keyword, then the scalar quantity calculated by
|
||||
the fix is printed. If {f_ID\[N\]} is used, then N in the range from
|
||||
1-M will print a specific component of the vector calculated by the
|
||||
fix. A value of N=0 will output the scalar quantity.
|
||||
|
||||
The {v_name} keyword allow the current value of a variable to be
|
||||
output. The name in the keyword should be replaced by the actual namd
|
||||
of the variable that has been defined elsewhere in the input script.
|
||||
See the "variable"_variable.html command for details. Equal-style
|
||||
variables can calculate complex formulas involving atom and group
|
||||
properties, mathematical operations, other variables, etc. This
|
||||
keyword enables them to be evaluated and their value printed
|
||||
periodically during a simulation.
|
||||
|
||||
See "this section"_Section_modify.html for information on how to add
|
||||
new compute and fix styles as well as variable options to LAMMPS that
|
||||
calculate quantities that could then be output with these keywords.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
"Atom style"_atom_style.html granular cannot compute the usual
|
||||
temperature and pressure settings because it stores atom masses
|
||||
differently. The gke and grot settings should be used instead (or use
|
||||
thermo style granular).
|
||||
|
||||
This command must come after the simulation box is defined by a
|
||||
"read_data"_read_data.html, "read_restart"_read_restart.html, or
|
||||
"create_box"_create_box.html command.
|
||||
|
|
|
@ -17,21 +17,24 @@
|
|||
</PRE>
|
||||
<UL><LI>name = name of variable to define
|
||||
|
||||
<LI>style = <I>index</I> or <I>loop</I> or <I>equal</I> or <I>world</I> or <I>universe</I>
|
||||
<LI>style = <I>index</I> or <I>loop</I> or <I>world</I> or <I>universe</I> or <I>uloop</I> or <I>equal</I>
|
||||
|
||||
<PRE> <I>index</I> args = one or more strings
|
||||
<I>loop</I> args = N = integer size of loop
|
||||
<I>equal</I> args = one string containing functions, vectors, keywords, numbers
|
||||
<I>world</I> args = one string for each partition of processors
|
||||
<I>universe</I> args = one or more strings
|
||||
<I>uloop</I> args = N = integer size of loop
|
||||
<I>equal</I> args = one equation containing numbers, thermo keywords, math functions, group functions, atom vectors, compute references, other variables
|
||||
numbers = 0.0, -5.4, 2.8e-4, etc
|
||||
thermo keywords = vol, ke, press, etc from <A HREF = "thermo_style.html">thermo_style</A>
|
||||
math functions = add(x,y), sub(x,y), mult(x,y), div(x,y),
|
||||
neg(x), pow(x,y), exp(x), ln(x), sqrt(x)
|
||||
group functions = mass(group), charge(group), xcm(group,dim),
|
||||
vcm(group,dim), bound(group,xmin), gyration(group)
|
||||
vectors = x[5], y[12], z[17], vx[88], vy[19], vz[2],
|
||||
fx[1], fy[2005], fz[1]
|
||||
keywords = same keywords (mostly) as in <A HREF = "thermo_style.html">thermo_style custom</A> command
|
||||
<I>world</I> args = one string for each partition of processors
|
||||
<I>universe</I> args = one or more strings
|
||||
<I>uloop</I> args = N = integer size of loop
|
||||
atom vectors = x[N], y[N], z[N], vx[N], vy[N], vz[N],
|
||||
fx[N], fy[N], fz[N]
|
||||
compute references = c_ID[0], c_ID[N]
|
||||
other variables = v_abc, v_x, etc
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
|
@ -40,8 +43,9 @@
|
|||
<PRE>variable x index run1 run2 run3 run4 run5 run6 run7 run8
|
||||
variable LoopVar loop 20
|
||||
variable beta equal div(temp,3.0)
|
||||
variable b1 equal add(x[234],mult(0.5,lx))
|
||||
variable b equal xcm(mol1,x)
|
||||
variable b1 equal add(x[234],mult(0.5,col))
|
||||
variable b equal div(xcm(mol1,x),2.0)
|
||||
variable b equal c_myTemp[0]
|
||||
variable temp world 300.0 310.0 320.0 330.0
|
||||
variable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
variable x uloop 15
|
||||
|
@ -49,15 +53,24 @@ variable x uloop 15
|
|||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>This command assigns one or more values to a variable name so that the
|
||||
variable can be used in subsequent input script commands. The "name"
|
||||
of the variable is an arbitrary string. Each "value" is a string
|
||||
which could be text or numbers, as in the examples above. As
|
||||
explained in <A HREF = "Section_commands.html#3_2">this section</A>, occurrences of
|
||||
the variable name in an input script line are replaced by the
|
||||
variable can be used in subsequent input script commands or its value
|
||||
output during a simulation. The "name" of the variable is an
|
||||
arbitrary string. Each "value" is a string which could be text or
|
||||
numbers, as in the examples above.
|
||||
</P>
|
||||
<P>As explained in <A HREF = "Section_commands.html#3_2">this section</A>, occurrences
|
||||
of the variable name in an input script line are replaced by the
|
||||
variable's value. The variable name can be referenced in the input
|
||||
script as $x if the name "x" is a single character, or as ${LoopVar}
|
||||
if the name "LoopVar" is one or more characters.
|
||||
</P>
|
||||
<P>Variable values can also be accessed for output once or periodically
|
||||
during a simulation by the <A HREF = "print.html">print</A> command, <A HREF = "fix_print.html">fix
|
||||
print</A> command, <A HREF = "run.html">run every</A> command, and the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> command.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>As described below, for variable styles <I>index</I>, <I>loop</I>, <I>universe</I>,
|
||||
and <I>uloop</I>, the value assigned to a variable can be incremented via
|
||||
the <A HREF = "next.html">next</A> command. When there are no more values to
|
||||
|
@ -79,12 +92,14 @@ equal-style variable is encountered. Also, if a variable is iterated
|
|||
on to the end of its list via the <A HREF = "next.html">next</A> command, it is
|
||||
available to be re-defined in a subsequent variable command.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>For the <I>index</I> style, one or more strings are specified. Initially,
|
||||
the 1st string is assigned to the variable. Each time a
|
||||
<A HREF = "next.html">next</A> command is used with the variable name, the next
|
||||
string is assigned. All processors assign the same string to the
|
||||
variable. <I>Index</I>-style variables can also be set (with a single
|
||||
value) by using the command-line switch -var; see <A HREF = "Section_start.html#2_4">this
|
||||
value) by using the command-line switch -var; see <A HREF = "Section_start.html#2_6">this
|
||||
section</A> for details.
|
||||
</P>
|
||||
<P>The <I>loop</I> style is identical to the <I>index</I> style except that the
|
||||
|
@ -95,59 +110,8 @@ Each time a <A HREF = "next.html">next</A> command is used with the variable nam
|
|||
the next string ("2", "3", etc) is assigned. All processors assign
|
||||
the same string to the variable.
|
||||
</P>
|
||||
<P>For the <I>equal</I> style, a single string is specified which represents
|
||||
an equation that will be evaluated afresh each time the variable is
|
||||
used. Thus the variable can take on different values at different
|
||||
stages of the input script. For example, if the variable is used in a
|
||||
<A HREF = "fix_print.html">fix print</A> command, it could print different values
|
||||
each timestep it was invoked. The next command cannot be used with
|
||||
<I>equal</I>-style variables, since there is only one value. Note that, as
|
||||
with any other input script command, it is feasible to use another
|
||||
variable in the <I>equal</I> variable's string, e.g. variable y equal
|
||||
mult($x,2). However, $x will be replaced immediately by it's current
|
||||
value when the command is first parsed, not each time that $y is
|
||||
substituted for.
|
||||
</P>
|
||||
<P>The syntax of the equation assigned to <I>equal</I> variables is simple.
|
||||
It can contain "functions", "vectors", "keywords", or "numbers" in any
|
||||
combination.
|
||||
</P>
|
||||
<UL><LI>Function = a keyword followed by parenthesis with one or two arguments
|
||||
<LI>Supported arithmetic functions = add(x,y), sub(x,y), mult(x,y), div(x,y), neg(x), pow(x,y), exp(x), ln(x), sqrt(x)
|
||||
<LI>Supported group functions = mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), bound(ID,dir), gyration(ID)
|
||||
<LI>Example function usage = div(1.0e20,3.0), neg(x[34]), pow(lx,3.0), xcm(mol,x), bound(lower,zmin)
|
||||
<LI>Vector = a keyword followed by square brackets containing an atom ID
|
||||
<LI>Supported vectors = x, y, z, vx, vy, vz, fx, fy, fz
|
||||
<LI>Example vector usage = x[123], fz[1000]
|
||||
<LI>Keyword = any keyword supported by the <A HREF = "thermo_style.html">thermo_style custom</A> command except cpu, pressure tensor components (pxx, pyy, etc), time-averaged quantities (tave, pave, etc)
|
||||
<LI>Example keyword usage = atoms, pow(vol,0.333), mult(elong,0.5)
|
||||
<LI>Number = 0.2, 1.0e20, -15.4, etc
|
||||
</UL>
|
||||
<P>For the group functions, ID is a group-ID, dim is 'x' or 'y' or 'z',
|
||||
and dir is one of 6 strings: "xmin", "xmax", "ymin", "ymax", "zmin",
|
||||
or "zmax". The group functions mass() and charge() are the total mass
|
||||
and charge of the group of atoms. Xcm() and vcm() return components
|
||||
of the position and velocity of the center of mass of the group.
|
||||
Bound() returns the min/max of a particular coordinate for all atoms
|
||||
in the group. Gyration() computes the radius-of-gyration of the group
|
||||
of atoms. See the <A HREF = "fix_gyration.html">fix gyration</A> command for the
|
||||
formula.
|
||||
</P>
|
||||
<P>Keywords have restrictions on when they can be assigned to variables.
|
||||
For example, keywords that compute thermodynamic quantites can only be
|
||||
invoked after the first simulation has begun. A warning is issued if
|
||||
thermodyanmic keywords are invoked on timesteps when thermodynamic
|
||||
information is not being printed to the screen, since the values
|
||||
assigned to the variable may be out-of-date.
|
||||
</P>
|
||||
<P>The variable <I>equal</I> equation can also be nested in that function
|
||||
arguments can be functions, vectors, keywords, or numbers. For
|
||||
example, this is a valid equation:
|
||||
</P>
|
||||
<PRE>variable x equal div(add(pe,ke),pow(vol,div(1,3)))
|
||||
</PRE>
|
||||
<P>For the <I>world</I> style, one or more strings are specified. There must
|
||||
be one string for each processor partition or "world". See <A HREF = "Section_start.html#2_4">this
|
||||
be one string for each processor partition or "world". See <A HREF = "Section_start.html#2_6">this
|
||||
section</A> of the manual for information on
|
||||
running LAMMPS with multiple partitions via the "-partition"
|
||||
command-line switch. This variable command assigns one string to each
|
||||
|
@ -161,7 +125,7 @@ different partitions.
|
|||
</P>
|
||||
<P>For the <I>universe</I> style, one or more strings are specified. There
|
||||
must be at least as many strings as there are processor partitions or
|
||||
"worlds". See <A HREF = "Section_start.html#2_4">this page</A> for information on
|
||||
"worlds". See <A HREF = "Section_start.html#2_6">this page</A> for information on
|
||||
running LAMMPS with multiple partitions via the "-partition"
|
||||
command-line switch. This variable command initially assigns one
|
||||
string to each world. When a <A HREF = "next.html">next</A> command is encountered
|
||||
|
@ -179,11 +143,117 @@ strings are the integers from 1 to N. This allows you to generate a
|
|||
long list of runs (e.g. 1000) without having to list N values in your
|
||||
input script.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>For the <I>equal</I> style, a single string is specified which represents
|
||||
an equation that will be evaluated afresh each time the variable is
|
||||
used. Thus the variable can take on different values at different
|
||||
stages of the input script. For example, if the variable is used in a
|
||||
<A HREF = "fix_print.html">fix print</A> command, different values could be printed
|
||||
each timestep it was invoked. The next command cannot be used with
|
||||
<I>equal</I>-style variables, since there is only one value.
|
||||
</P>
|
||||
<P>The equation for an <I>equal</I>-style variable can contain a variety of
|
||||
quantities. The syntax for each kind of quantity is simple, but
|
||||
multiple quantities can be nested and combined in various ways to
|
||||
build up formulas of arbitrary complexity. For example, this is a
|
||||
valid (though strange) variable equation:
|
||||
</P>
|
||||
<PRE>variable x equal div(add(pe,c_MyTemp[0]),pow(vol,div(1,3)))
|
||||
</PRE>
|
||||
<P>Specifically, an equation can contain numbers, thermo keywords, math
|
||||
functions, group functions, atom vectors, compute references, and
|
||||
other variables:
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<TR><TD >Number</TD><TD > 0.2, 1.0e20, -15.4, etc</TD></TR>
|
||||
<TR><TD >Thermo keywords</TD><TD > vol, pe, ebond, etc</TD></TR>
|
||||
<TR><TD >Math functions</TD><TD > add(x,y), sub(x,y), mult(x,y), div(x,y), neg(x), pow(x,y), exp(x), ln(x), sqrt(x)</TD></TR>
|
||||
<TR><TD >Group functions</TD><TD > mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), bound(ID,dir), gyration(ID)</TD></TR>
|
||||
<TR><TD >Atom vectors</TD><TD > x[N], y[N], z[N], vx[N], vy[N], vz[N], fx[N], fy[N], fz[N]</TD></TR>
|
||||
<TR><TD >Compute references</TD><TD > c_ID[0], c_ID[N]</TD></TR>
|
||||
<TR><TD >Other variables</TD><TD > v_abc, v_x, etc
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>The thermo keywords allowed in the equation are those defined by the
|
||||
"thermo_style custom" command. Note that many thermodyanmic
|
||||
quantities are only computable after the first simulation has begun.
|
||||
Likewise, many thermodynamic quantities (such as energies) are only
|
||||
computed on timesteps when thermodyanmic output is being performed.
|
||||
If the variable equation these quantities at other times, out-of-date
|
||||
or invalid values may be used.
|
||||
</P>
|
||||
<P>Math functions take one or two arguments, each of which may be an
|
||||
equation containing any of the quantities defined above. This allows
|
||||
equations to be nested, as in the examples above.
|
||||
</P>
|
||||
<P>Group functions take one or two arguments. The first argument is the
|
||||
group-ID. The <I>dim</I> argument is <I>x</I> or <I>y</I> or <I>z</I>. The <I>dir</I>
|
||||
argument is <I>xmin</I>, <I>xmax</I>, <I>ymin</I>, <I>ymax</I>, <I>zmin</I>, or <I>zmax</I>. The
|
||||
group functions mass() and charge() are the total mass and charge of
|
||||
the group of atoms. Xcm() and vcm() return components of the position
|
||||
and velocity of the center of mass of the group. Bound() returns the
|
||||
min/max of a particular coordinate for all atoms in the group.
|
||||
Gyration() computes the radius-of-gyration of the group of atoms. See
|
||||
the <A HREF = "fix_gyration.html">fix gyration</A> command for the formula.
|
||||
</P>
|
||||
<P>The atom vectors take a single integer argument from 1-N, which
|
||||
is the desired atom-ID, e.g. x[243].
|
||||
</P>
|
||||
<P>Compute references access allow access to scalar or vector quantities
|
||||
calculated by a compute. The ID in the reference should be replaced
|
||||
by the actual ID of the compute that has been defined elsewhere in the
|
||||
input script. See the <A HREF = "compute.html">compute</A> command for details.
|
||||
Note that per-atom quantities calcalated by a compute cannot be
|
||||
accessed this way, but only global scalar or vector quantities.
|
||||
</P>
|
||||
<P>If <I>c_ID[0]</I> is used as a keyword, then the scalar quantity
|
||||
calculated by the compute is printed. If <I>c_ID[N]</I> is used, then N
|
||||
in the range from 1-M will print a specific component of the vector
|
||||
calculated by the compute.
|
||||
</P>
|
||||
<P>The current values of other variables can be accessed by prepending a
|
||||
"v_" to the variable name. This will cause the other variable to be
|
||||
evaulated. Note that if you do something circular like this:
|
||||
</P>
|
||||
<PRE>variable a equal v_b
|
||||
variable b equal v_a
|
||||
print $a
|
||||
</PRE>
|
||||
<P>then LAMMPS will run for a while when the print statement is invoked.
|
||||
</P>
|
||||
<P>Note that there is a subtle difference between using a variable
|
||||
in a <I>equal</I>-style equation in the form $x versus v_x.
|
||||
</P>
|
||||
<P>In the former case, as with any other input script command, the
|
||||
variable's value is substituted for immediately when the line is read
|
||||
from the input script. Thus if the current simulation box volume was
|
||||
1000.0, then these lines:
|
||||
</P>
|
||||
<PRE>variable x equal vol
|
||||
variable y equal mult($x,2)
|
||||
</PRE>
|
||||
<P>would associate the equation string "mult(1000.0,2)" with variable y.
|
||||
</P>
|
||||
<P>By contrast, these lines:
|
||||
</P>
|
||||
<PRE>variable x equal vol
|
||||
variable y equal mult(v_x,2)
|
||||
</PRE>
|
||||
<P>would associate the equation string "mult(v_x,2)" with variable y.
|
||||
</P>
|
||||
<P>Thus if the variable y were evaluated periodically during a run where
|
||||
the box volume changed, the resulting value would always be 500.0 for
|
||||
the first case, but would change dynamically for the second case.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>The use of atom vectors in <I>equal</I> style variables requires the atom
|
||||
style to use a global mapping in order to look up the vector indices.
|
||||
Only atom styles with molecular information create global maps.
|
||||
Only atom styles with molecular information create global maps unless
|
||||
the <A HREF = "atom_modify.html">atom_modify map</A> command is used.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
|
|
217
doc/variable.txt
217
doc/variable.txt
|
@ -13,20 +13,23 @@ variable command :h3
|
|||
variable name style args ... :pre
|
||||
|
||||
name = name of variable to define :ulb,l
|
||||
style = {index} or {loop} or {equal} or {world} or {universe} :l
|
||||
style = {index} or {loop} or {world} or {universe} or {uloop} or {equal} :l
|
||||
{index} args = one or more strings
|
||||
{loop} args = N = integer size of loop
|
||||
{equal} args = one string containing functions, vectors, keywords, numbers
|
||||
{world} args = one string for each partition of processors
|
||||
{universe} args = one or more strings
|
||||
{uloop} args = N = integer size of loop
|
||||
{equal} args = one equation containing numbers, thermo keywords, math functions, group functions, atom vectors, compute references, other variables
|
||||
numbers = 0.0, -5.4, 2.8e-4, etc
|
||||
thermo keywords = vol, ke, press, etc from "thermo_style"_thermo_style.html
|
||||
math functions = add(x,y), sub(x,y), mult(x,y), div(x,y),
|
||||
neg(x), pow(x,y), exp(x), ln(x), sqrt(x)
|
||||
group functions = mass(group), charge(group), xcm(group,dim),
|
||||
vcm(group,dim), bound(group,xmin), gyration(group)
|
||||
vectors = x\[5\], y\[12\], z\[17\], vx\[88\], vy\[19\], vz\[2\],
|
||||
fx\[1\], fy\[2005\], fz\[1\]
|
||||
keywords = same keywords (mostly) as in "thermo_style custom"_thermo_style.html command
|
||||
{world} args = one string for each partition of processors
|
||||
{universe} args = one or more strings
|
||||
{uloop} args = N = integer size of loop :pre
|
||||
atom vectors = x\[N\], y\[N\], z\[N\], vx\[N\], vy\[N\], vz\[N\],
|
||||
fx\[N\], fy\[N\], fz\[N\]
|
||||
compute references = c_ID\[0\], c_ID\[N\]
|
||||
other variables = v_abc, v_x, etc :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
@ -34,8 +37,9 @@ style = {index} or {loop} or {equal} or {world} or {universe} :l
|
|||
variable x index run1 run2 run3 run4 run5 run6 run7 run8
|
||||
variable LoopVar loop 20
|
||||
variable beta equal div(temp,3.0)
|
||||
variable b1 equal add(x\[234\],mult(0.5,lx))
|
||||
variable b equal xcm(mol1,x)
|
||||
variable b1 equal add(x\[234\],mult(0.5,col))
|
||||
variable b equal div(xcm(mol1,x),2.0)
|
||||
variable b equal c_myTemp\[0\]
|
||||
variable temp world 300.0 310.0 320.0 330.0
|
||||
variable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
variable x uloop 15 :pre
|
||||
|
@ -43,15 +47,24 @@ variable x uloop 15 :pre
|
|||
[Description:]
|
||||
|
||||
This command assigns one or more values to a variable name so that the
|
||||
variable can be used in subsequent input script commands. The "name"
|
||||
of the variable is an arbitrary string. Each "value" is a string
|
||||
which could be text or numbers, as in the examples above. As
|
||||
explained in "this section"_Section_commands.html#3_2, occurrences of
|
||||
the variable name in an input script line are replaced by the
|
||||
variable can be used in subsequent input script commands or its value
|
||||
output during a simulation. The "name" of the variable is an
|
||||
arbitrary string. Each "value" is a string which could be text or
|
||||
numbers, as in the examples above.
|
||||
|
||||
As explained in "this section"_Section_commands.html#3_2, occurrences
|
||||
of the variable name in an input script line are replaced by the
|
||||
variable's value. The variable name can be referenced in the input
|
||||
script as $x if the name "x" is a single character, or as $\{LoopVar\}
|
||||
if the name "LoopVar" is one or more characters.
|
||||
|
||||
Variable values can also be accessed for output once or periodically
|
||||
during a simulation by the "print"_print.html command, "fix
|
||||
print"_fix_print.html command, "run every"_run.html command, and the
|
||||
"thermo_style"_thermo_style.html command.
|
||||
|
||||
:line
|
||||
|
||||
As described below, for variable styles {index}, {loop}, {universe},
|
||||
and {uloop}, the value assigned to a variable can be incremented via
|
||||
the "next"_next.html command. When there are no more values to
|
||||
|
@ -73,13 +86,15 @@ equal-style variable is encountered. Also, if a variable is iterated
|
|||
on to the end of its list via the "next"_next.html command, it is
|
||||
available to be re-defined in a subsequent variable command.
|
||||
|
||||
:line
|
||||
|
||||
For the {index} style, one or more strings are specified. Initially,
|
||||
the 1st string is assigned to the variable. Each time a
|
||||
"next"_next.html command is used with the variable name, the next
|
||||
string is assigned. All processors assign the same string to the
|
||||
variable. {Index}-style variables can also be set (with a single
|
||||
value) by using the command-line switch -var; see "this
|
||||
section"_Section_start.html#2_4 for details.
|
||||
section"_Section_start.html#2_6 for details.
|
||||
|
||||
The {loop} style is identical to the {index} style except that the
|
||||
strings are the integers from 1 to N. This allows you to generate a
|
||||
|
@ -89,66 +104,9 @@ Each time a "next"_next.html command is used with the variable name,
|
|||
the next string ("2", "3", etc) is assigned. All processors assign
|
||||
the same string to the variable.
|
||||
|
||||
For the {equal} style, a single string is specified which represents
|
||||
an equation that will be evaluated afresh each time the variable is
|
||||
used. Thus the variable can take on different values at different
|
||||
stages of the input script. For example, if the variable is used in a
|
||||
"fix print"_fix_print.html command, it could print different values
|
||||
each timestep it was invoked. The next command cannot be used with
|
||||
{equal}-style variables, since there is only one value. Note that, as
|
||||
with any other input script command, it is feasible to use another
|
||||
variable in the {equal} variable's string, e.g. variable y equal
|
||||
mult($x,2). However, $x will be replaced immediately by it's current
|
||||
value when the command is first parsed, not each time that $y is
|
||||
substituted for.
|
||||
|
||||
The syntax of the equation assigned to {equal} variables is simple.
|
||||
It can contain "functions", "vectors", "keywords", or "numbers" in any
|
||||
combination.
|
||||
|
||||
Function = a keyword followed by parenthesis with one or two arguments
|
||||
Supported arithmetic functions = add(x,y), sub(x,y), mult(x,y), div(x,y), \
|
||||
neg(x), pow(x,y), exp(x), ln(x), sqrt(x)
|
||||
Supported group functions = mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), \
|
||||
bound(ID,dir), gyration(ID)
|
||||
Example function usage = div(1.0e20,3.0), neg(x\[34\]), pow(lx,3.0), \
|
||||
xcm(mol,x), bound(lower,zmin)
|
||||
Vector = a keyword followed by square brackets containing an atom ID
|
||||
Supported vectors = x, y, z, vx, vy, vz, fx, fy, fz
|
||||
Example vector usage = x\[123\], fz\[1000\]
|
||||
Keyword = any keyword supported by the \
|
||||
"thermo_style custom"_thermo_style.html \
|
||||
command except cpu, pressure tensor components (pxx, pyy, etc), \
|
||||
time-averaged quantities (tave, pave, etc)
|
||||
Example keyword usage = atoms, pow(vol,0.333), mult(elong,0.5)
|
||||
Number = 0.2, 1.0e20, -15.4, etc :ul
|
||||
|
||||
For the group functions, ID is a group-ID, dim is 'x' or 'y' or 'z',
|
||||
and dir is one of 6 strings: "xmin", "xmax", "ymin", "ymax", "zmin",
|
||||
or "zmax". The group functions mass() and charge() are the total mass
|
||||
and charge of the group of atoms. Xcm() and vcm() return components
|
||||
of the position and velocity of the center of mass of the group.
|
||||
Bound() returns the min/max of a particular coordinate for all atoms
|
||||
in the group. Gyration() computes the radius-of-gyration of the group
|
||||
of atoms. See the "fix gyration"_fix_gyration.html command for the
|
||||
formula.
|
||||
|
||||
Keywords have restrictions on when they can be assigned to variables.
|
||||
For example, keywords that compute thermodynamic quantites can only be
|
||||
invoked after the first simulation has begun. A warning is issued if
|
||||
thermodyanmic keywords are invoked on timesteps when thermodynamic
|
||||
information is not being printed to the screen, since the values
|
||||
assigned to the variable may be out-of-date.
|
||||
|
||||
The variable {equal} equation can also be nested in that function
|
||||
arguments can be functions, vectors, keywords, or numbers. For
|
||||
example, this is a valid equation:
|
||||
|
||||
variable x equal div(add(pe,ke),pow(vol,div(1,3))) :pre
|
||||
|
||||
For the {world} style, one or more strings are specified. There must
|
||||
be one string for each processor partition or "world". See "this
|
||||
section"_Section_start.html#2_4 of the manual for information on
|
||||
section"_Section_start.html#2_6 of the manual for information on
|
||||
running LAMMPS with multiple partitions via the "-partition"
|
||||
command-line switch. This variable command assigns one string to each
|
||||
world. All processors in the world are assigned the same string. The
|
||||
|
@ -161,7 +119,7 @@ different partitions.
|
|||
|
||||
For the {universe} style, one or more strings are specified. There
|
||||
must be at least as many strings as there are processor partitions or
|
||||
"worlds". See "this page"_Section_start.html#2_4 for information on
|
||||
"worlds". See "this page"_Section_start.html#2_6 for information on
|
||||
running LAMMPS with multiple partitions via the "-partition"
|
||||
command-line switch. This variable command initially assigns one
|
||||
string to each world. When a "next"_next.html command is encountered
|
||||
|
@ -179,11 +137,118 @@ strings are the integers from 1 to N. This allows you to generate a
|
|||
long list of runs (e.g. 1000) without having to list N values in your
|
||||
input script.
|
||||
|
||||
:line
|
||||
|
||||
For the {equal} style, a single string is specified which represents
|
||||
an equation that will be evaluated afresh each time the variable is
|
||||
used. Thus the variable can take on different values at different
|
||||
stages of the input script. For example, if the variable is used in a
|
||||
"fix print"_fix_print.html command, different values could be printed
|
||||
each timestep it was invoked. The next command cannot be used with
|
||||
{equal}-style variables, since there is only one value.
|
||||
|
||||
The equation for an {equal}-style variable can contain a variety of
|
||||
quantities. The syntax for each kind of quantity is simple, but
|
||||
multiple quantities can be nested and combined in various ways to
|
||||
build up formulas of arbitrary complexity. For example, this is a
|
||||
valid (though strange) variable equation:
|
||||
|
||||
variable x equal div(add(pe,c_MyTemp\[0\]),pow(vol,div(1,3))) :pre
|
||||
|
||||
Specifically, an equation can contain numbers, thermo keywords, math
|
||||
functions, group functions, atom vectors, compute references, and
|
||||
other variables:
|
||||
|
||||
Number: 0.2, 1.0e20, -15.4, etc
|
||||
Thermo keywords: vol, pe, ebond, etc
|
||||
Math functions: add(x,y), sub(x,y), mult(x,y), div(x,y), \
|
||||
neg(x), pow(x,y), exp(x), ln(x), sqrt(x)
|
||||
Group functions: mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), \
|
||||
bound(ID,dir), gyration(ID)
|
||||
Atom vectors: x\[N\], y\[N\], z\[N\], vx\[N\], vy\[N\], vz\[N\], \
|
||||
fx\[N\], fy\[N\], fz\[N\]
|
||||
Compute references: c_ID\[0\], c_ID\[N\]
|
||||
Other variables: v_abc, v_x, etc :tb(s=:)
|
||||
|
||||
The thermo keywords allowed in the equation are those defined by the
|
||||
"thermo_style custom" command. Note that many thermodyanmic
|
||||
quantities are only computable after the first simulation has begun.
|
||||
Likewise, many thermodynamic quantities (such as energies) are only
|
||||
computed on timesteps when thermodyanmic output is being performed.
|
||||
If the variable equation these quantities at other times, out-of-date
|
||||
or invalid values may be used.
|
||||
|
||||
Math functions take one or two arguments, each of which may be an
|
||||
equation containing any of the quantities defined above. This allows
|
||||
equations to be nested, as in the examples above.
|
||||
|
||||
Group functions take one or two arguments. The first argument is the
|
||||
group-ID. The {dim} argument is {x} or {y} or {z}. The {dir}
|
||||
argument is {xmin}, {xmax}, {ymin}, {ymax}, {zmin}, or {zmax}. The
|
||||
group functions mass() and charge() are the total mass and charge of
|
||||
the group of atoms. Xcm() and vcm() return components of the position
|
||||
and velocity of the center of mass of the group. Bound() returns the
|
||||
min/max of a particular coordinate for all atoms in the group.
|
||||
Gyration() computes the radius-of-gyration of the group of atoms. See
|
||||
the "fix gyration"_fix_gyration.html command for the formula.
|
||||
|
||||
The atom vectors take a single integer argument from 1-N, which
|
||||
is the desired atom-ID, e.g. x\[243\].
|
||||
|
||||
Compute references access allow access to scalar or vector quantities
|
||||
calculated by a compute. The ID in the reference should be replaced
|
||||
by the actual ID of the compute that has been defined elsewhere in the
|
||||
input script. See the "compute"_compute.html command for details.
|
||||
Note that per-atom quantities calcalated by a compute cannot be
|
||||
accessed this way, but only global scalar or vector quantities.
|
||||
|
||||
If {c_ID\[0\]} is used as a keyword, then the scalar quantity
|
||||
calculated by the compute is printed. If {c_ID\[N\]} is used, then N
|
||||
in the range from 1-M will print a specific component of the vector
|
||||
calculated by the compute.
|
||||
|
||||
The current values of other variables can be accessed by prepending a
|
||||
"v_" to the variable name. This will cause the other variable to be
|
||||
evaulated. Note that if you do something circular like this:
|
||||
|
||||
variable a equal v_b
|
||||
variable b equal v_a
|
||||
print $a :pre
|
||||
|
||||
then LAMMPS will run for a while when the print statement is invoked.
|
||||
|
||||
Note that there is a subtle difference between using a variable
|
||||
in a {equal}-style equation in the form $x versus v_x.
|
||||
|
||||
In the former case, as with any other input script command, the
|
||||
variable's value is substituted for immediately when the line is read
|
||||
from the input script. Thus if the current simulation box volume was
|
||||
1000.0, then these lines:
|
||||
|
||||
variable x equal vol
|
||||
variable y equal mult($x,2) :pre
|
||||
|
||||
would associate the equation string "mult(1000.0,2)" with variable y.
|
||||
|
||||
By contrast, these lines:
|
||||
|
||||
variable x equal vol
|
||||
variable y equal mult(v_x,2) :pre
|
||||
|
||||
would associate the equation string "mult(v_x,2)" with variable y.
|
||||
|
||||
Thus if the variable y were evaluated periodically during a run where
|
||||
the box volume changed, the resulting value would always be 500.0 for
|
||||
the first case, but would change dynamically for the second case.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The use of atom vectors in {equal} style variables requires the atom
|
||||
style to use a global mapping in order to look up the vector indices.
|
||||
Only atom styles with molecular information create global maps.
|
||||
Only atom styles with molecular information create global maps unless
|
||||
the "atom_modify map"_atom_modify.html command is used.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
|
|
Loading…
Reference in New Issue