diff --git a/doc/_images/angle_charmm.jpg b/doc/_images/angle_charmm.jpg new file mode 100644 index 0000000000..c6e6c297d2 Binary files /dev/null and b/doc/_images/angle_charmm.jpg differ diff --git a/doc/_images/angle_class2.jpg b/doc/_images/angle_class2.jpg new file mode 100644 index 0000000000..f0f2a5152e Binary files /dev/null and b/doc/_images/angle_class2.jpg differ diff --git a/doc/_images/angle_cosine.jpg b/doc/_images/angle_cosine.jpg new file mode 100644 index 0000000000..23b9b64310 Binary files /dev/null and b/doc/_images/angle_cosine.jpg differ diff --git a/doc/_images/angle_cosine_delta.jpg b/doc/_images/angle_cosine_delta.jpg new file mode 100644 index 0000000000..c6e90bb2c5 Binary files /dev/null and b/doc/_images/angle_cosine_delta.jpg differ diff --git a/doc/_images/angle_cosine_periodic.jpg b/doc/_images/angle_cosine_periodic.jpg new file mode 100644 index 0000000000..a9d7d50cb3 Binary files /dev/null and b/doc/_images/angle_cosine_periodic.jpg differ diff --git a/doc/_images/angle_cosine_shift.jpg b/doc/_images/angle_cosine_shift.jpg new file mode 100644 index 0000000000..d9929939c8 Binary files /dev/null and b/doc/_images/angle_cosine_shift.jpg differ diff --git a/doc/_images/angle_cosine_shift_exp.jpg b/doc/_images/angle_cosine_shift_exp.jpg new file mode 100644 index 0000000000..294986de4b Binary files /dev/null and b/doc/_images/angle_cosine_shift_exp.jpg differ diff --git a/doc/_images/angle_cosine_squared.jpg b/doc/_images/angle_cosine_squared.jpg new file mode 100644 index 0000000000..b992398b7d Binary files /dev/null and b/doc/_images/angle_cosine_squared.jpg differ diff --git a/doc/_images/angle_dipole_gamma.jpg b/doc/_images/angle_dipole_gamma.jpg new file mode 100644 index 0000000000..4bf618e252 Binary files /dev/null and b/doc/_images/angle_dipole_gamma.jpg differ diff --git a/doc/_images/angle_dipole_potential.jpg b/doc/_images/angle_dipole_potential.jpg new file mode 100644 index 0000000000..b1285e8957 Binary files /dev/null and b/doc/_images/angle_dipole_potential.jpg differ diff --git a/doc/_images/angle_dipole_torque.jpg b/doc/_images/angle_dipole_torque.jpg new file mode 100644 index 0000000000..996a9df3cb Binary files /dev/null and b/doc/_images/angle_dipole_torque.jpg differ diff --git a/doc/_images/angle_fourier.jpg b/doc/_images/angle_fourier.jpg new file mode 100644 index 0000000000..e748e67430 Binary files /dev/null and b/doc/_images/angle_fourier.jpg differ diff --git a/doc/_images/angle_fourier_simple.jpg b/doc/_images/angle_fourier_simple.jpg new file mode 100644 index 0000000000..6c9297b970 Binary files /dev/null and b/doc/_images/angle_fourier_simple.jpg differ diff --git a/doc/_images/angle_harmonic.jpg b/doc/_images/angle_harmonic.jpg new file mode 100644 index 0000000000..352be0b544 Binary files /dev/null and b/doc/_images/angle_harmonic.jpg differ diff --git a/doc/_images/angle_quartic.jpg b/doc/_images/angle_quartic.jpg new file mode 100644 index 0000000000..744ce7a35f Binary files /dev/null and b/doc/_images/angle_quartic.jpg differ diff --git a/doc/_images/atc_nanotube.jpg b/doc/_images/atc_nanotube.jpg new file mode 100644 index 0000000000..e52958a7ec Binary files /dev/null and b/doc/_images/atc_nanotube.jpg differ diff --git a/doc/_images/balance_nonuniform.jpg b/doc/_images/balance_nonuniform.jpg new file mode 100644 index 0000000000..3962b8f675 Binary files /dev/null and b/doc/_images/balance_nonuniform.jpg differ diff --git a/doc/_images/balance_rcb.jpg b/doc/_images/balance_rcb.jpg new file mode 100644 index 0000000000..b686835399 Binary files /dev/null and b/doc/_images/balance_rcb.jpg differ diff --git a/doc/_images/balance_uniform.jpg b/doc/_images/balance_uniform.jpg new file mode 100644 index 0000000000..404bf5e275 Binary files /dev/null and b/doc/_images/balance_uniform.jpg differ diff --git a/doc/_images/bond_class2.jpg b/doc/_images/bond_class2.jpg new file mode 100644 index 0000000000..493048100e Binary files /dev/null and b/doc/_images/bond_class2.jpg differ diff --git a/doc/_images/bond_fene.jpg b/doc/_images/bond_fene.jpg new file mode 100644 index 0000000000..e8b909c08f Binary files /dev/null and b/doc/_images/bond_fene.jpg differ diff --git a/doc/_images/bond_fene_expand.jpg b/doc/_images/bond_fene_expand.jpg new file mode 100644 index 0000000000..1d04acec32 Binary files /dev/null and b/doc/_images/bond_fene_expand.jpg differ diff --git a/doc/_images/bond_harmonic.jpg b/doc/_images/bond_harmonic.jpg new file mode 100644 index 0000000000..fe9ef5619b Binary files /dev/null and b/doc/_images/bond_harmonic.jpg differ diff --git a/doc/_images/bond_harmonic_shift.jpg b/doc/_images/bond_harmonic_shift.jpg new file mode 100644 index 0000000000..3e66d853a5 Binary files /dev/null and b/doc/_images/bond_harmonic_shift.jpg differ diff --git a/doc/_images/bond_harmonic_shift_cut.jpg b/doc/_images/bond_harmonic_shift_cut.jpg new file mode 100644 index 0000000000..06640e4fe0 Binary files /dev/null and b/doc/_images/bond_harmonic_shift_cut.jpg differ diff --git a/doc/_images/bond_morse.jpg b/doc/_images/bond_morse.jpg new file mode 100644 index 0000000000..6795c9e527 Binary files /dev/null and b/doc/_images/bond_morse.jpg differ diff --git a/doc/_images/bond_nonlinear.jpg b/doc/_images/bond_nonlinear.jpg new file mode 100644 index 0000000000..0f18d8e73f Binary files /dev/null and b/doc/_images/bond_nonlinear.jpg differ diff --git a/doc/_images/bond_quartic.jpg b/doc/_images/bond_quartic.jpg new file mode 100644 index 0000000000..9d092883b2 Binary files /dev/null and b/doc/_images/bond_quartic.jpg differ diff --git a/doc/_images/bondswap.jpg b/doc/_images/bondswap.jpg new file mode 100644 index 0000000000..24b6028caf Binary files /dev/null and b/doc/_images/bondswap.jpg differ diff --git a/doc/_images/box.jpg b/doc/_images/box.jpg new file mode 100644 index 0000000000..4cb43df953 Binary files /dev/null and b/doc/_images/box.jpg differ diff --git a/doc/_images/box_inverse.jpg b/doc/_images/box_inverse.jpg new file mode 100644 index 0000000000..5d0895b87e Binary files /dev/null and b/doc/_images/box_inverse.jpg differ diff --git a/doc/_images/centro_symmetry.jpg b/doc/_images/centro_symmetry.jpg new file mode 100644 index 0000000000..1e89d11a11 Binary files /dev/null and b/doc/_images/centro_symmetry.jpg differ diff --git a/doc/_images/cna_cutoff1.jpg b/doc/_images/cna_cutoff1.jpg new file mode 100644 index 0000000000..fae5c6b636 Binary files /dev/null and b/doc/_images/cna_cutoff1.jpg differ diff --git a/doc/_images/cna_cutoff2.jpg b/doc/_images/cna_cutoff2.jpg new file mode 100644 index 0000000000..744b61e9b4 Binary files /dev/null and b/doc/_images/cna_cutoff2.jpg differ diff --git a/doc/_images/compute_fep_bar.jpg b/doc/_images/compute_fep_bar.jpg new file mode 100644 index 0000000000..772ec9c045 Binary files /dev/null and b/doc/_images/compute_fep_bar.jpg differ diff --git a/doc/_images/compute_fep_fdti.jpg b/doc/_images/compute_fep_fdti.jpg new file mode 100644 index 0000000000..ae8de241cc Binary files /dev/null and b/doc/_images/compute_fep_fdti.jpg differ diff --git a/doc/_images/compute_fep_fep.jpg b/doc/_images/compute_fep_fep.jpg new file mode 100644 index 0000000000..d84a76b0dd Binary files /dev/null and b/doc/_images/compute_fep_fep.jpg differ diff --git a/doc/_images/compute_fep_lambda.jpg b/doc/_images/compute_fep_lambda.jpg new file mode 100644 index 0000000000..5ef9e8b9f2 Binary files /dev/null and b/doc/_images/compute_fep_lambda.jpg differ diff --git a/doc/_images/compute_fep_ti.jpg b/doc/_images/compute_fep_ti.jpg new file mode 100644 index 0000000000..6b0c8fdc19 Binary files /dev/null and b/doc/_images/compute_fep_ti.jpg differ diff --git a/doc/_images/compute_fep_u.jpg b/doc/_images/compute_fep_u.jpg new file mode 100644 index 0000000000..62df5dd0c0 Binary files /dev/null and b/doc/_images/compute_fep_u.jpg differ diff --git a/doc/_images/compute_fep_vol.jpg b/doc/_images/compute_fep_vol.jpg new file mode 100644 index 0000000000..a66facad39 Binary files /dev/null and b/doc/_images/compute_fep_vol.jpg differ diff --git a/doc/_images/compute_gyration.jpg b/doc/_images/compute_gyration.jpg new file mode 100644 index 0000000000..2285444434 Binary files /dev/null and b/doc/_images/compute_gyration.jpg differ diff --git a/doc/_images/compute_msd_nongauss.jpg b/doc/_images/compute_msd_nongauss.jpg new file mode 100644 index 0000000000..d57f6a4af8 Binary files /dev/null and b/doc/_images/compute_msd_nongauss.jpg differ diff --git a/doc/_images/compute_saed1.jpg b/doc/_images/compute_saed1.jpg new file mode 100644 index 0000000000..6bad3a6104 Binary files /dev/null and b/doc/_images/compute_saed1.jpg differ diff --git a/doc/_images/compute_saed2.jpg b/doc/_images/compute_saed2.jpg new file mode 100644 index 0000000000..2b3b0bc090 Binary files /dev/null and b/doc/_images/compute_saed2.jpg differ diff --git a/doc/_images/compute_saed3.jpg b/doc/_images/compute_saed3.jpg new file mode 100644 index 0000000000..1bbc920908 Binary files /dev/null and b/doc/_images/compute_saed3.jpg differ diff --git a/doc/_images/compute_sna_atom1.jpg b/doc/_images/compute_sna_atom1.jpg new file mode 100644 index 0000000000..fe4b641aa6 Binary files /dev/null and b/doc/_images/compute_sna_atom1.jpg differ diff --git a/doc/_images/compute_sna_atom2.jpg b/doc/_images/compute_sna_atom2.jpg new file mode 100644 index 0000000000..7a4b2c2111 Binary files /dev/null and b/doc/_images/compute_sna_atom2.jpg differ diff --git a/doc/_images/compute_sna_atom3.jpg b/doc/_images/compute_sna_atom3.jpg new file mode 100644 index 0000000000..41d6774e9c Binary files /dev/null and b/doc/_images/compute_sna_atom3.jpg differ diff --git a/doc/_images/compute_sna_atom4.jpg b/doc/_images/compute_sna_atom4.jpg new file mode 100644 index 0000000000..5d53943bf4 Binary files /dev/null and b/doc/_images/compute_sna_atom4.jpg differ diff --git a/doc/_images/compute_sna_atom5.jpg b/doc/_images/compute_sna_atom5.jpg new file mode 100644 index 0000000000..732731fe13 Binary files /dev/null and b/doc/_images/compute_sna_atom5.jpg differ diff --git a/doc/_images/compute_sna_atom6.jpg b/doc/_images/compute_sna_atom6.jpg new file mode 100644 index 0000000000..963dd81416 Binary files /dev/null and b/doc/_images/compute_sna_atom6.jpg differ diff --git a/doc/_images/compute_xrd1.jpg b/doc/_images/compute_xrd1.jpg new file mode 100644 index 0000000000..8432fad4aa Binary files /dev/null and b/doc/_images/compute_xrd1.jpg differ diff --git a/doc/_images/compute_xrd2.jpg b/doc/_images/compute_xrd2.jpg new file mode 100644 index 0000000000..1bcf0494ea Binary files /dev/null and b/doc/_images/compute_xrd2.jpg differ diff --git a/doc/_images/compute_xrd3.jpg b/doc/_images/compute_xrd3.jpg new file mode 100644 index 0000000000..19f7aa99b5 Binary files /dev/null and b/doc/_images/compute_xrd3.jpg differ diff --git a/doc/_images/compute_xrd4.jpg b/doc/_images/compute_xrd4.jpg new file mode 100644 index 0000000000..385bb1efd7 Binary files /dev/null and b/doc/_images/compute_xrd4.jpg differ diff --git a/doc/_images/compute_xrd5.jpg b/doc/_images/compute_xrd5.jpg new file mode 100644 index 0000000000..c6f0a2609a Binary files /dev/null and b/doc/_images/compute_xrd5.jpg differ diff --git a/doc/_images/coul_soft.jpg b/doc/_images/coul_soft.jpg new file mode 100644 index 0000000000..d2cc4c0c9a Binary files /dev/null and b/doc/_images/coul_soft.jpg differ diff --git a/doc/_images/dihedral_charmm.jpg b/doc/_images/dihedral_charmm.jpg new file mode 100644 index 0000000000..810afa3cd2 Binary files /dev/null and b/doc/_images/dihedral_charmm.jpg differ diff --git a/doc/_images/dihedral_class2.jpg b/doc/_images/dihedral_class2.jpg new file mode 100644 index 0000000000..6a6780e769 Binary files /dev/null and b/doc/_images/dihedral_class2.jpg differ diff --git a/doc/_images/dihedral_cosine_shift_exp.jpg b/doc/_images/dihedral_cosine_shift_exp.jpg new file mode 100644 index 0000000000..ea0a7550f8 Binary files /dev/null and b/doc/_images/dihedral_cosine_shift_exp.jpg differ diff --git a/doc/_images/dihedral_fourier.jpg b/doc/_images/dihedral_fourier.jpg new file mode 100644 index 0000000000..663ac17ee6 Binary files /dev/null and b/doc/_images/dihedral_fourier.jpg differ diff --git a/doc/_images/dihedral_harmonic.jpg b/doc/_images/dihedral_harmonic.jpg new file mode 100644 index 0000000000..cb5c16a8ca Binary files /dev/null and b/doc/_images/dihedral_harmonic.jpg differ diff --git a/doc/_images/dihedral_helix.jpg b/doc/_images/dihedral_helix.jpg new file mode 100644 index 0000000000..01a0ec982c Binary files /dev/null and b/doc/_images/dihedral_helix.jpg differ diff --git a/doc/_images/dihedral_multi_harmonic.jpg b/doc/_images/dihedral_multi_harmonic.jpg new file mode 100644 index 0000000000..d066cd212b Binary files /dev/null and b/doc/_images/dihedral_multi_harmonic.jpg differ diff --git a/doc/_images/dihedral_nharmonic.jpg b/doc/_images/dihedral_nharmonic.jpg new file mode 100644 index 0000000000..4f4928bdd5 Binary files /dev/null and b/doc/_images/dihedral_nharmonic.jpg differ diff --git a/doc/_images/dihedral_opls.jpg b/doc/_images/dihedral_opls.jpg new file mode 100644 index 0000000000..0546aebfde Binary files /dev/null and b/doc/_images/dihedral_opls.jpg differ diff --git a/doc/_images/dihedral_quadratic.jpg b/doc/_images/dihedral_quadratic.jpg new file mode 100644 index 0000000000..8fb17622f8 Binary files /dev/null and b/doc/_images/dihedral_quadratic.jpg differ diff --git a/doc/_images/dihedral_sign.jpg b/doc/_images/dihedral_sign.jpg new file mode 100644 index 0000000000..8d8352e8fc Binary files /dev/null and b/doc/_images/dihedral_sign.jpg differ diff --git a/doc/_images/dreiding_hbond.jpg b/doc/_images/dreiding_hbond.jpg new file mode 100644 index 0000000000..76cc42a45b Binary files /dev/null and b/doc/_images/dreiding_hbond.jpg differ diff --git a/doc/_images/dump1.jpg b/doc/_images/dump1.jpg new file mode 100644 index 0000000000..6068ba017c Binary files /dev/null and b/doc/_images/dump1.jpg differ diff --git a/doc/_images/dump2.jpg b/doc/_images/dump2.jpg new file mode 100644 index 0000000000..bd0d573e1a Binary files /dev/null and b/doc/_images/dump2.jpg differ diff --git a/doc/_images/eff_ECP1.jpg b/doc/_images/eff_ECP1.jpg new file mode 100644 index 0000000000..3b8a3f8ff3 Binary files /dev/null and b/doc/_images/eff_ECP1.jpg differ diff --git a/doc/_images/eff_ECP2.jpg b/doc/_images/eff_ECP2.jpg new file mode 100644 index 0000000000..195ed55e43 Binary files /dev/null and b/doc/_images/eff_ECP2.jpg differ diff --git a/doc/_images/eff_KE.jpg b/doc/_images/eff_KE.jpg new file mode 100644 index 0000000000..40eed0df65 Binary files /dev/null and b/doc/_images/eff_KE.jpg differ diff --git a/doc/_images/eff_NN.jpg b/doc/_images/eff_NN.jpg new file mode 100644 index 0000000000..c3c52e19b4 Binary files /dev/null and b/doc/_images/eff_NN.jpg differ diff --git a/doc/_images/eff_Ne.jpg b/doc/_images/eff_Ne.jpg new file mode 100644 index 0000000000..e23ceacc88 Binary files /dev/null and b/doc/_images/eff_Ne.jpg differ diff --git a/doc/_images/eff_Pauli.jpg b/doc/_images/eff_Pauli.jpg new file mode 100644 index 0000000000..61bb8652e3 Binary files /dev/null and b/doc/_images/eff_Pauli.jpg differ diff --git a/doc/_images/eff_ee.jpg b/doc/_images/eff_ee.jpg new file mode 100644 index 0000000000..aef84d0fd4 Binary files /dev/null and b/doc/_images/eff_ee.jpg differ diff --git a/doc/_images/eff_energy_expression.jpg b/doc/_images/eff_energy_expression.jpg new file mode 100644 index 0000000000..e06fe8ff2f Binary files /dev/null and b/doc/_images/eff_energy_expression.jpg differ diff --git a/doc/_images/fix_box_relax1.jpg b/doc/_images/fix_box_relax1.jpg new file mode 100644 index 0000000000..d425526046 Binary files /dev/null and b/doc/_images/fix_box_relax1.jpg differ diff --git a/doc/_images/fix_box_relax2.jpg b/doc/_images/fix_box_relax2.jpg new file mode 100644 index 0000000000..8fac42e0fa Binary files /dev/null and b/doc/_images/fix_box_relax2.jpg differ diff --git a/doc/_images/fix_gld1.jpg b/doc/_images/fix_gld1.jpg new file mode 100644 index 0000000000..d54ce57a6c Binary files /dev/null and b/doc/_images/fix_gld1.jpg differ diff --git a/doc/_images/fix_lb_fluid_boltzmann.jpg b/doc/_images/fix_lb_fluid_boltzmann.jpg new file mode 100644 index 0000000000..9d82b40ecb Binary files /dev/null and b/doc/_images/fix_lb_fluid_boltzmann.jpg differ diff --git a/doc/_images/fix_lb_fluid_fluidforce.jpg b/doc/_images/fix_lb_fluid_fluidforce.jpg new file mode 100644 index 0000000000..d3149616ca Binary files /dev/null and b/doc/_images/fix_lb_fluid_fluidforce.jpg differ diff --git a/doc/_images/fix_lb_fluid_gammadefault.jpg b/doc/_images/fix_lb_fluid_gammadefault.jpg new file mode 100644 index 0000000000..cd10239c9b Binary files /dev/null and b/doc/_images/fix_lb_fluid_gammadefault.jpg differ diff --git a/doc/_images/fix_lb_fluid_navierstokes.jpg b/doc/_images/fix_lb_fluid_navierstokes.jpg new file mode 100644 index 0000000000..0a1c104141 Binary files /dev/null and b/doc/_images/fix_lb_fluid_navierstokes.jpg differ diff --git a/doc/_images/fix_lb_fluid_properties.jpg b/doc/_images/fix_lb_fluid_properties.jpg new file mode 100644 index 0000000000..3d70cd7667 Binary files /dev/null and b/doc/_images/fix_lb_fluid_properties.jpg differ diff --git a/doc/_images/fix_lb_fluid_stress.jpg b/doc/_images/fix_lb_fluid_stress.jpg new file mode 100644 index 0000000000..8f730e9d70 Binary files /dev/null and b/doc/_images/fix_lb_fluid_stress.jpg differ diff --git a/doc/_images/fix_lb_fluid_viscosity.jpg b/doc/_images/fix_lb_fluid_viscosity.jpg new file mode 100644 index 0000000000..1816317ee6 Binary files /dev/null and b/doc/_images/fix_lb_fluid_viscosity.jpg differ diff --git a/doc/_images/fix_nh1.jpg b/doc/_images/fix_nh1.jpg new file mode 100644 index 0000000000..db59dbc43e Binary files /dev/null and b/doc/_images/fix_nh1.jpg differ diff --git a/doc/_images/fix_nphug.jpg b/doc/_images/fix_nphug.jpg new file mode 100644 index 0000000000..a3a67e7b7b Binary files /dev/null and b/doc/_images/fix_nphug.jpg differ diff --git a/doc/_images/fix_orient_fcc.jpg b/doc/_images/fix_orient_fcc.jpg new file mode 100644 index 0000000000..b22e6c9c20 Binary files /dev/null and b/doc/_images/fix_orient_fcc.jpg differ diff --git a/doc/_images/fix_pimd.jpg b/doc/_images/fix_pimd.jpg new file mode 100644 index 0000000000..b6e8f5831b Binary files /dev/null and b/doc/_images/fix_pimd.jpg differ diff --git a/doc/_images/fix_rattle_constraints.jpg b/doc/_images/fix_rattle_constraints.jpg new file mode 100644 index 0000000000..2ba86095cd Binary files /dev/null and b/doc/_images/fix_rattle_constraints.jpg differ diff --git a/doc/_images/fix_rattle_rij.jpg b/doc/_images/fix_rattle_rij.jpg new file mode 100644 index 0000000000..b08e2fe02e Binary files /dev/null and b/doc/_images/fix_rattle_rij.jpg differ diff --git a/doc/_images/fix_spring_rg.jpg b/doc/_images/fix_spring_rg.jpg new file mode 100644 index 0000000000..313844f555 Binary files /dev/null and b/doc/_images/fix_spring_rg.jpg differ diff --git a/doc/_images/fix_ti_rs_force.jpg b/doc/_images/fix_ti_rs_force.jpg new file mode 100644 index 0000000000..a09bcb66c5 Binary files /dev/null and b/doc/_images/fix_ti_rs_force.jpg differ diff --git a/doc/_images/fix_ti_rs_function_1.jpg b/doc/_images/fix_ti_rs_function_1.jpg new file mode 100644 index 0000000000..478dc5781d Binary files /dev/null and b/doc/_images/fix_ti_rs_function_1.jpg differ diff --git a/doc/_images/fix_ti_rs_function_2.jpg b/doc/_images/fix_ti_rs_function_2.jpg new file mode 100644 index 0000000000..4fbfe45c63 Binary files /dev/null and b/doc/_images/fix_ti_rs_function_2.jpg differ diff --git a/doc/_images/fix_ti_rs_function_3.jpg b/doc/_images/fix_ti_rs_function_3.jpg new file mode 100644 index 0000000000..94ab0f468c Binary files /dev/null and b/doc/_images/fix_ti_rs_function_3.jpg differ diff --git a/doc/_images/fix_ti_spring_force.jpg b/doc/_images/fix_ti_spring_force.jpg new file mode 100644 index 0000000000..347102b3e7 Binary files /dev/null and b/doc/_images/fix_ti_spring_force.jpg differ diff --git a/doc/_images/fix_ti_spring_function_1.jpg b/doc/_images/fix_ti_spring_function_1.jpg new file mode 100644 index 0000000000..8d3c9a78e3 Binary files /dev/null and b/doc/_images/fix_ti_spring_function_1.jpg differ diff --git a/doc/_images/fix_ti_spring_function_2.jpg b/doc/_images/fix_ti_spring_function_2.jpg new file mode 100644 index 0000000000..96a17e63e6 Binary files /dev/null and b/doc/_images/fix_ti_spring_function_2.jpg differ diff --git a/doc/_images/fix_ttm.jpg b/doc/_images/fix_ttm.jpg new file mode 100644 index 0000000000..8d9fac3fed Binary files /dev/null and b/doc/_images/fix_ttm.jpg differ diff --git a/doc/_images/fix_ttm_blast.jpg b/doc/_images/fix_ttm_blast.jpg new file mode 100644 index 0000000000..d4ffe05f12 Binary files /dev/null and b/doc/_images/fix_ttm_blast.jpg differ diff --git a/doc/_images/fix_ttm_blast1.jpg b/doc/_images/fix_ttm_blast1.jpg new file mode 100644 index 0000000000..1106c627cb Binary files /dev/null and b/doc/_images/fix_ttm_blast1.jpg differ diff --git a/doc/_images/fix_ttm_ce.jpg b/doc/_images/fix_ttm_ce.jpg new file mode 100644 index 0000000000..4f439e31e6 Binary files /dev/null and b/doc/_images/fix_ttm_ce.jpg differ diff --git a/doc/_images/fix_ttm_mod.jpg b/doc/_images/fix_ttm_mod.jpg new file mode 100644 index 0000000000..7cc67200f9 Binary files /dev/null and b/doc/_images/fix_ttm_mod.jpg differ diff --git a/doc/_images/fix_wall_colloid.jpg b/doc/_images/fix_wall_colloid.jpg new file mode 100644 index 0000000000..8168d3a792 Binary files /dev/null and b/doc/_images/fix_wall_colloid.jpg differ diff --git a/doc/_images/fix_wall_harmonic.jpg b/doc/_images/fix_wall_harmonic.jpg new file mode 100644 index 0000000000..3c605690c3 Binary files /dev/null and b/doc/_images/fix_wall_harmonic.jpg differ diff --git a/doc/_images/fix_wall_lj1043.jpg b/doc/_images/fix_wall_lj1043.jpg new file mode 100644 index 0000000000..303743bf3e Binary files /dev/null and b/doc/_images/fix_wall_lj1043.jpg differ diff --git a/doc/_images/fix_wall_lj93.jpg b/doc/_images/fix_wall_lj93.jpg new file mode 100644 index 0000000000..18e502cfbf Binary files /dev/null and b/doc/_images/fix_wall_lj93.jpg differ diff --git a/doc/_images/fld.jpg b/doc/_images/fld.jpg new file mode 100644 index 0000000000..3d80d436ff Binary files /dev/null and b/doc/_images/fld.jpg differ diff --git a/doc/_images/fld2.jpg b/doc/_images/fld2.jpg new file mode 100644 index 0000000000..42de943c90 Binary files /dev/null and b/doc/_images/fld2.jpg differ diff --git a/doc/_images/heat_flux_J.jpg b/doc/_images/heat_flux_J.jpg new file mode 100644 index 0000000000..cf3e220caa Binary files /dev/null and b/doc/_images/heat_flux_J.jpg differ diff --git a/doc/_images/heat_flux_k.jpg b/doc/_images/heat_flux_k.jpg new file mode 100644 index 0000000000..2fd4a19e5a Binary files /dev/null and b/doc/_images/heat_flux_k.jpg differ diff --git a/doc/_images/hop1.jpg b/doc/_images/hop1.jpg new file mode 100644 index 0000000000..cc0f2dbf5a Binary files /dev/null and b/doc/_images/hop1.jpg differ diff --git a/doc/_images/hop2.jpg b/doc/_images/hop2.jpg new file mode 100644 index 0000000000..579e7d87e8 Binary files /dev/null and b/doc/_images/hop2.jpg differ diff --git a/doc/_images/improper_class2.jpg b/doc/_images/improper_class2.jpg new file mode 100644 index 0000000000..ca0604f8d7 Binary files /dev/null and b/doc/_images/improper_class2.jpg differ diff --git a/doc/_images/improper_cossq.jpg b/doc/_images/improper_cossq.jpg new file mode 100644 index 0000000000..bddcb3d867 Binary files /dev/null and b/doc/_images/improper_cossq.jpg differ diff --git a/doc/_images/improper_cvff.jpg b/doc/_images/improper_cvff.jpg new file mode 100644 index 0000000000..14be3ffa03 Binary files /dev/null and b/doc/_images/improper_cvff.jpg differ diff --git a/doc/_images/improper_fourier.jpg b/doc/_images/improper_fourier.jpg new file mode 100644 index 0000000000..0a1b13baf8 Binary files /dev/null and b/doc/_images/improper_fourier.jpg differ diff --git a/doc/_images/improper_harmonic.jpg b/doc/_images/improper_harmonic.jpg new file mode 100644 index 0000000000..c2c1eb4663 Binary files /dev/null and b/doc/_images/improper_harmonic.jpg differ diff --git a/doc/_images/improper_ring.jpg b/doc/_images/improper_ring.jpg new file mode 100644 index 0000000000..81a79f7ce5 Binary files /dev/null and b/doc/_images/improper_ring.jpg differ diff --git a/doc/_images/improper_umbrella.jpg b/doc/_images/improper_umbrella.jpg new file mode 100644 index 0000000000..8d6cbf81e7 Binary files /dev/null and b/doc/_images/improper_umbrella.jpg differ diff --git a/doc/_images/lj_soft.jpg b/doc/_images/lj_soft.jpg new file mode 100644 index 0000000000..47c6a04b91 Binary files /dev/null and b/doc/_images/lj_soft.jpg differ diff --git a/doc/_images/min_energy.jpg b/doc/_images/min_energy.jpg new file mode 100644 index 0000000000..7925d268ac Binary files /dev/null and b/doc/_images/min_energy.jpg differ diff --git a/doc/_images/pair_adp.jpg b/doc/_images/pair_adp.jpg new file mode 100644 index 0000000000..accae4716e Binary files /dev/null and b/doc/_images/pair_adp.jpg differ diff --git a/doc/_images/pair_airebo.jpg b/doc/_images/pair_airebo.jpg new file mode 100644 index 0000000000..a3259879f1 Binary files /dev/null and b/doc/_images/pair_airebo.jpg differ diff --git a/doc/_images/pair_beck.jpg b/doc/_images/pair_beck.jpg new file mode 100644 index 0000000000..a6da8a87d1 Binary files /dev/null and b/doc/_images/pair_beck.jpg differ diff --git a/doc/_images/pair_bop.jpg b/doc/_images/pair_bop.jpg new file mode 100644 index 0000000000..d1fbb14b09 Binary files /dev/null and b/doc/_images/pair_bop.jpg differ diff --git a/doc/_images/pair_born.jpg b/doc/_images/pair_born.jpg new file mode 100644 index 0000000000..5e6b6a729b Binary files /dev/null and b/doc/_images/pair_born.jpg differ diff --git a/doc/_images/pair_buck.jpg b/doc/_images/pair_buck.jpg new file mode 100644 index 0000000000..aaa5f7659a Binary files /dev/null and b/doc/_images/pair_buck.jpg differ diff --git a/doc/_images/pair_charmm.jpg b/doc/_images/pair_charmm.jpg new file mode 100644 index 0000000000..7d6c709ce5 Binary files /dev/null and b/doc/_images/pair_charmm.jpg differ diff --git a/doc/_images/pair_class2.jpg b/doc/_images/pair_class2.jpg new file mode 100644 index 0000000000..abec072e79 Binary files /dev/null and b/doc/_images/pair_class2.jpg differ diff --git a/doc/_images/pair_cmm.jpg b/doc/_images/pair_cmm.jpg new file mode 100644 index 0000000000..1ec60f7305 Binary files /dev/null and b/doc/_images/pair_cmm.jpg differ diff --git a/doc/_images/pair_colloid_cc.jpg b/doc/_images/pair_colloid_cc.jpg new file mode 100644 index 0000000000..a64094ddad Binary files /dev/null and b/doc/_images/pair_colloid_cc.jpg differ diff --git a/doc/_images/pair_colloid_cs.jpg b/doc/_images/pair_colloid_cs.jpg new file mode 100644 index 0000000000..8f5948fa54 Binary files /dev/null and b/doc/_images/pair_colloid_cs.jpg differ diff --git a/doc/_images/pair_colloid_ss.jpg b/doc/_images/pair_colloid_ss.jpg new file mode 100644 index 0000000000..4ce19ba1e8 Binary files /dev/null and b/doc/_images/pair_colloid_ss.jpg differ diff --git a/doc/_images/pair_comb1.jpg b/doc/_images/pair_comb1.jpg new file mode 100644 index 0000000000..e0711ca972 Binary files /dev/null and b/doc/_images/pair_comb1.jpg differ diff --git a/doc/_images/pair_comb2.jpg b/doc/_images/pair_comb2.jpg new file mode 100644 index 0000000000..8b0e5ba51a Binary files /dev/null and b/doc/_images/pair_comb2.jpg differ diff --git a/doc/_images/pair_coul_diel.jpg b/doc/_images/pair_coul_diel.jpg new file mode 100644 index 0000000000..70cb84f7a5 Binary files /dev/null and b/doc/_images/pair_coul_diel.jpg differ diff --git a/doc/_images/pair_coul_dsf.jpg b/doc/_images/pair_coul_dsf.jpg new file mode 100644 index 0000000000..a891b3ad15 Binary files /dev/null and b/doc/_images/pair_coul_dsf.jpg differ diff --git a/doc/_images/pair_coul_soft.jpg b/doc/_images/pair_coul_soft.jpg new file mode 100644 index 0000000000..dad9c745ba Binary files /dev/null and b/doc/_images/pair_coul_soft.jpg differ diff --git a/doc/_images/pair_coul_wolf.jpg b/doc/_images/pair_coul_wolf.jpg new file mode 100644 index 0000000000..fd64cb6c03 Binary files /dev/null and b/doc/_images/pair_coul_wolf.jpg differ diff --git a/doc/_images/pair_coulomb.jpg b/doc/_images/pair_coulomb.jpg new file mode 100644 index 0000000000..39aaebac31 Binary files /dev/null and b/doc/_images/pair_coulomb.jpg differ diff --git a/doc/_images/pair_cs.jpg b/doc/_images/pair_cs.jpg new file mode 100644 index 0000000000..b870a3bdf4 Binary files /dev/null and b/doc/_images/pair_cs.jpg differ diff --git a/doc/_images/pair_debye.jpg b/doc/_images/pair_debye.jpg new file mode 100644 index 0000000000..42bcb5cc63 Binary files /dev/null and b/doc/_images/pair_debye.jpg differ diff --git a/doc/_images/pair_dipole.jpg b/doc/_images/pair_dipole.jpg new file mode 100644 index 0000000000..e106c17c91 Binary files /dev/null and b/doc/_images/pair_dipole.jpg differ diff --git a/doc/_images/pair_dipole_sf.jpg b/doc/_images/pair_dipole_sf.jpg new file mode 100644 index 0000000000..c591534550 Binary files /dev/null and b/doc/_images/pair_dipole_sf.jpg differ diff --git a/doc/_images/pair_dipole_sf2.jpg b/doc/_images/pair_dipole_sf2.jpg new file mode 100644 index 0000000000..b9e57becf6 Binary files /dev/null and b/doc/_images/pair_dipole_sf2.jpg differ diff --git a/doc/_images/pair_dpd.jpg b/doc/_images/pair_dpd.jpg new file mode 100644 index 0000000000..e9bb8a69af Binary files /dev/null and b/doc/_images/pair_dpd.jpg differ diff --git a/doc/_images/pair_eam.jpg b/doc/_images/pair_eam.jpg new file mode 100644 index 0000000000..95c86b4ced Binary files /dev/null and b/doc/_images/pair_eam.jpg differ diff --git a/doc/_images/pair_eam_fs.jpg b/doc/_images/pair_eam_fs.jpg new file mode 100644 index 0000000000..fa72f8fc73 Binary files /dev/null and b/doc/_images/pair_eam_fs.jpg differ diff --git a/doc/_images/pair_edip.jpg b/doc/_images/pair_edip.jpg new file mode 100644 index 0000000000..3933280480 Binary files /dev/null and b/doc/_images/pair_edip.jpg differ diff --git a/doc/_images/pair_eim1.jpg b/doc/_images/pair_eim1.jpg new file mode 100644 index 0000000000..c243120b2a Binary files /dev/null and b/doc/_images/pair_eim1.jpg differ diff --git a/doc/_images/pair_eim2.jpg b/doc/_images/pair_eim2.jpg new file mode 100644 index 0000000000..4896f658f1 Binary files /dev/null and b/doc/_images/pair_eim2.jpg differ diff --git a/doc/_images/pair_eim3.jpg b/doc/_images/pair_eim3.jpg new file mode 100644 index 0000000000..57366bc15d Binary files /dev/null and b/doc/_images/pair_eim3.jpg differ diff --git a/doc/_images/pair_gauss.jpg b/doc/_images/pair_gauss.jpg new file mode 100644 index 0000000000..97c2f0ecb2 Binary files /dev/null and b/doc/_images/pair_gauss.jpg differ diff --git a/doc/_images/pair_gauss_cut.jpg b/doc/_images/pair_gauss_cut.jpg new file mode 100644 index 0000000000..e47bb8cc06 Binary files /dev/null and b/doc/_images/pair_gauss_cut.jpg differ diff --git a/doc/_images/pair_gayberne.jpg b/doc/_images/pair_gayberne.jpg new file mode 100644 index 0000000000..e9b1f3ca93 Binary files /dev/null and b/doc/_images/pair_gayberne.jpg differ diff --git a/doc/_images/pair_gayberne2.jpg b/doc/_images/pair_gayberne2.jpg new file mode 100644 index 0000000000..a4e6c6f70f Binary files /dev/null and b/doc/_images/pair_gayberne2.jpg differ diff --git a/doc/_images/pair_gran_hertz.jpg b/doc/_images/pair_gran_hertz.jpg new file mode 100644 index 0000000000..733875fee6 Binary files /dev/null and b/doc/_images/pair_gran_hertz.jpg differ diff --git a/doc/_images/pair_gran_hooke.jpg b/doc/_images/pair_gran_hooke.jpg new file mode 100644 index 0000000000..36f34db6c6 Binary files /dev/null and b/doc/_images/pair_gran_hooke.jpg differ diff --git a/doc/_images/pair_gromacs.jpg b/doc/_images/pair_gromacs.jpg new file mode 100644 index 0000000000..885c059e65 Binary files /dev/null and b/doc/_images/pair_gromacs.jpg differ diff --git a/doc/_images/pair_hbond_dreiding.jpg b/doc/_images/pair_hbond_dreiding.jpg new file mode 100644 index 0000000000..b93044ed31 Binary files /dev/null and b/doc/_images/pair_hbond_dreiding.jpg differ diff --git a/doc/_images/pair_lj.jpg b/doc/_images/pair_lj.jpg new file mode 100644 index 0000000000..49cf7f5eb9 Binary files /dev/null and b/doc/_images/pair_lj.jpg differ diff --git a/doc/_images/pair_lj96.jpg b/doc/_images/pair_lj96.jpg new file mode 100644 index 0000000000..6462de180e Binary files /dev/null and b/doc/_images/pair_lj96.jpg differ diff --git a/doc/_images/pair_lj_cubic.jpg b/doc/_images/pair_lj_cubic.jpg new file mode 100644 index 0000000000..69ec4f6e84 Binary files /dev/null and b/doc/_images/pair_lj_cubic.jpg differ diff --git a/doc/_images/pair_lj_expand.jpg b/doc/_images/pair_lj_expand.jpg new file mode 100644 index 0000000000..e274818892 Binary files /dev/null and b/doc/_images/pair_lj_expand.jpg differ diff --git a/doc/_images/pair_lj_sf.jpg b/doc/_images/pair_lj_sf.jpg new file mode 100644 index 0000000000..a702240003 Binary files /dev/null and b/doc/_images/pair_lj_sf.jpg differ diff --git a/doc/_images/pair_lj_smooth.jpg b/doc/_images/pair_lj_smooth.jpg new file mode 100644 index 0000000000..d380fd345c Binary files /dev/null and b/doc/_images/pair_lj_smooth.jpg differ diff --git a/doc/_images/pair_lj_smooth_linear.jpg b/doc/_images/pair_lj_smooth_linear.jpg new file mode 100644 index 0000000000..b0626abae1 Binary files /dev/null and b/doc/_images/pair_lj_smooth_linear.jpg differ diff --git a/doc/_images/pair_lj_soft.jpg b/doc/_images/pair_lj_soft.jpg new file mode 100644 index 0000000000..856d6d5bbc Binary files /dev/null and b/doc/_images/pair_lj_soft.jpg differ diff --git a/doc/_images/pair_lubricate.jpg b/doc/_images/pair_lubricate.jpg new file mode 100644 index 0000000000..560591765a Binary files /dev/null and b/doc/_images/pair_lubricate.jpg differ diff --git a/doc/_images/pair_meam.jpg b/doc/_images/pair_meam.jpg new file mode 100644 index 0000000000..f6de50a998 Binary files /dev/null and b/doc/_images/pair_meam.jpg differ diff --git a/doc/_images/pair_meam_spline.jpg b/doc/_images/pair_meam_spline.jpg new file mode 100644 index 0000000000..29f1c72543 Binary files /dev/null and b/doc/_images/pair_meam_spline.jpg differ diff --git a/doc/_images/pair_meam_sw_spline.jpg b/doc/_images/pair_meam_sw_spline.jpg new file mode 100644 index 0000000000..80078999d7 Binary files /dev/null and b/doc/_images/pair_meam_sw_spline.jpg differ diff --git a/doc/_images/pair_mie.jpg b/doc/_images/pair_mie.jpg new file mode 100644 index 0000000000..05a8221a93 Binary files /dev/null and b/doc/_images/pair_mie.jpg differ diff --git a/doc/_images/pair_mie2.jpg b/doc/_images/pair_mie2.jpg new file mode 100644 index 0000000000..216ca1554a Binary files /dev/null and b/doc/_images/pair_mie2.jpg differ diff --git a/doc/_images/pair_morse.jpg b/doc/_images/pair_morse.jpg new file mode 100644 index 0000000000..5ebcdb2e1d Binary files /dev/null and b/doc/_images/pair_morse.jpg differ diff --git a/doc/_images/pair_nb3b_harmonic.jpg b/doc/_images/pair_nb3b_harmonic.jpg new file mode 100644 index 0000000000..c8d23da042 Binary files /dev/null and b/doc/_images/pair_nb3b_harmonic.jpg differ diff --git a/doc/_images/pair_nm.jpg b/doc/_images/pair_nm.jpg new file mode 100644 index 0000000000..1e7fe0981c Binary files /dev/null and b/doc/_images/pair_nm.jpg differ diff --git a/doc/_images/pair_resquared.jpg b/doc/_images/pair_resquared.jpg new file mode 100644 index 0000000000..c290c68dfd Binary files /dev/null and b/doc/_images/pair_resquared.jpg differ diff --git a/doc/_images/pair_resquared2.jpg b/doc/_images/pair_resquared2.jpg new file mode 100644 index 0000000000..d2ed21a62a Binary files /dev/null and b/doc/_images/pair_resquared2.jpg differ diff --git a/doc/_images/pair_resquared3.jpg b/doc/_images/pair_resquared3.jpg new file mode 100644 index 0000000000..3916062a1c Binary files /dev/null and b/doc/_images/pair_resquared3.jpg differ diff --git a/doc/_images/pair_resquared4.jpg b/doc/_images/pair_resquared4.jpg new file mode 100644 index 0000000000..79ad067fa7 Binary files /dev/null and b/doc/_images/pair_resquared4.jpg differ diff --git a/doc/_images/pair_snap.jpg b/doc/_images/pair_snap.jpg new file mode 100644 index 0000000000..af48357b5e Binary files /dev/null and b/doc/_images/pair_snap.jpg differ diff --git a/doc/_images/pair_soft.jpg b/doc/_images/pair_soft.jpg new file mode 100644 index 0000000000..e8a654e1ed Binary files /dev/null and b/doc/_images/pair_soft.jpg differ diff --git a/doc/_images/pair_sph_ideal.jpg b/doc/_images/pair_sph_ideal.jpg new file mode 100644 index 0000000000..370b75fe94 Binary files /dev/null and b/doc/_images/pair_sph_ideal.jpg differ diff --git a/doc/_images/pair_sph_tait.jpg b/doc/_images/pair_sph_tait.jpg new file mode 100644 index 0000000000..8bbfe80512 Binary files /dev/null and b/doc/_images/pair_sph_tait.jpg differ diff --git a/doc/_images/pair_srp1.jpg b/doc/_images/pair_srp1.jpg new file mode 100644 index 0000000000..bbbdc43e05 Binary files /dev/null and b/doc/_images/pair_srp1.jpg differ diff --git a/doc/_images/pair_srp2.jpg b/doc/_images/pair_srp2.jpg new file mode 100644 index 0000000000..c5d20dc212 Binary files /dev/null and b/doc/_images/pair_srp2.jpg differ diff --git a/doc/_images/pair_sw.jpg b/doc/_images/pair_sw.jpg new file mode 100644 index 0000000000..f60f07fd27 Binary files /dev/null and b/doc/_images/pair_sw.jpg differ diff --git a/doc/_images/pair_tersoff_1.jpg b/doc/_images/pair_tersoff_1.jpg new file mode 100644 index 0000000000..79600b499c Binary files /dev/null and b/doc/_images/pair_tersoff_1.jpg differ diff --git a/doc/_images/pair_tersoff_2.jpg b/doc/_images/pair_tersoff_2.jpg new file mode 100644 index 0000000000..6cb8778a09 Binary files /dev/null and b/doc/_images/pair_tersoff_2.jpg differ diff --git a/doc/_images/pair_tersoff_mod.jpg b/doc/_images/pair_tersoff_mod.jpg new file mode 100644 index 0000000000..2618943d85 Binary files /dev/null and b/doc/_images/pair_tersoff_mod.jpg differ diff --git a/doc/_images/pair_tersoff_zbl.jpg b/doc/_images/pair_tersoff_zbl.jpg new file mode 100644 index 0000000000..20d60d2256 Binary files /dev/null and b/doc/_images/pair_tersoff_zbl.jpg differ diff --git a/doc/_images/pair_yukawa.jpg b/doc/_images/pair_yukawa.jpg new file mode 100644 index 0000000000..103edc6043 Binary files /dev/null and b/doc/_images/pair_yukawa.jpg differ diff --git a/doc/_images/pair_yukawa_colloid.jpg b/doc/_images/pair_yukawa_colloid.jpg new file mode 100644 index 0000000000..1d83624757 Binary files /dev/null and b/doc/_images/pair_yukawa_colloid.jpg differ diff --git a/doc/_images/pair_zbl.jpg b/doc/_images/pair_zbl.jpg new file mode 100644 index 0000000000..88656af5eb Binary files /dev/null and b/doc/_images/pair_zbl.jpg differ diff --git a/doc/_images/pimd.jpg b/doc/_images/pimd.jpg new file mode 100644 index 0000000000..f26764e608 Binary files /dev/null and b/doc/_images/pimd.jpg differ diff --git a/doc/_images/polymorphic1.jpg b/doc/_images/polymorphic1.jpg new file mode 100644 index 0000000000..dd609ea6b0 Binary files /dev/null and b/doc/_images/polymorphic1.jpg differ diff --git a/doc/_images/polymorphic2.jpg b/doc/_images/polymorphic2.jpg new file mode 100644 index 0000000000..95ff19514f Binary files /dev/null and b/doc/_images/polymorphic2.jpg differ diff --git a/doc/_images/polymorphic4.jpg b/doc/_images/polymorphic4.jpg new file mode 100644 index 0000000000..c8805b7114 Binary files /dev/null and b/doc/_images/polymorphic4.jpg differ diff --git a/doc/_images/polymorphic5.jpg b/doc/_images/polymorphic5.jpg new file mode 100644 index 0000000000..0f86a79e61 Binary files /dev/null and b/doc/_images/polymorphic5.jpg differ diff --git a/doc/_images/polymorphic6.jpg b/doc/_images/polymorphic6.jpg new file mode 100644 index 0000000000..b94e3514f8 Binary files /dev/null and b/doc/_images/polymorphic6.jpg differ diff --git a/doc/_images/polymorphic7.jpg b/doc/_images/polymorphic7.jpg new file mode 100644 index 0000000000..dfd5d3172f Binary files /dev/null and b/doc/_images/polymorphic7.jpg differ diff --git a/doc/_images/polymorphic8.jpg b/doc/_images/polymorphic8.jpg new file mode 100644 index 0000000000..94a3042793 Binary files /dev/null and b/doc/_images/polymorphic8.jpg differ diff --git a/doc/_images/polymorphic9.jpg b/doc/_images/polymorphic9.jpg new file mode 100644 index 0000000000..b1e0a9a9bc Binary files /dev/null and b/doc/_images/polymorphic9.jpg differ diff --git a/doc/_images/pressure.jpg b/doc/_images/pressure.jpg new file mode 100644 index 0000000000..0ed6747756 Binary files /dev/null and b/doc/_images/pressure.jpg differ diff --git a/doc/_images/pressure_tensor.jpg b/doc/_images/pressure_tensor.jpg new file mode 100644 index 0000000000..b5abf0ce4a Binary files /dev/null and b/doc/_images/pressure_tensor.jpg differ diff --git a/doc/_images/qbmsst_init.jpg b/doc/_images/qbmsst_init.jpg new file mode 100644 index 0000000000..ab1baea98d Binary files /dev/null and b/doc/_images/qbmsst_init.jpg differ diff --git a/doc/_images/qbmsst_shock.jpg b/doc/_images/qbmsst_shock.jpg new file mode 100644 index 0000000000..b4e663fd85 Binary files /dev/null and b/doc/_images/qbmsst_shock.jpg differ diff --git a/doc/_images/rhodo_staggered.jpg b/doc/_images/rhodo_staggered.jpg new file mode 100644 index 0000000000..423c0f2c45 Binary files /dev/null and b/doc/_images/rhodo_staggered.jpg differ diff --git a/doc/_images/rotate.jpg b/doc/_images/rotate.jpg new file mode 100644 index 0000000000..42b46bfa9e Binary files /dev/null and b/doc/_images/rotate.jpg differ diff --git a/doc/_images/saed_ewald_intersect.jpg b/doc/_images/saed_ewald_intersect.jpg new file mode 100644 index 0000000000..a1ab118bdc Binary files /dev/null and b/doc/_images/saed_ewald_intersect.jpg differ diff --git a/doc/_images/saed_mesh.jpg b/doc/_images/saed_mesh.jpg new file mode 100644 index 0000000000..7b0bf4117f Binary files /dev/null and b/doc/_images/saed_mesh.jpg differ diff --git a/doc/_images/screenshot_atomeye.jpg b/doc/_images/screenshot_atomeye.jpg new file mode 100644 index 0000000000..a9d53ff80a Binary files /dev/null and b/doc/_images/screenshot_atomeye.jpg differ diff --git a/doc/_images/screenshot_gl.jpg b/doc/_images/screenshot_gl.jpg new file mode 100644 index 0000000000..218bb84044 Binary files /dev/null and b/doc/_images/screenshot_gl.jpg differ diff --git a/doc/_images/screenshot_pymol.jpg b/doc/_images/screenshot_pymol.jpg new file mode 100644 index 0000000000..0e30ae1520 Binary files /dev/null and b/doc/_images/screenshot_pymol.jpg differ diff --git a/doc/_images/screenshot_vmd.jpg b/doc/_images/screenshot_vmd.jpg new file mode 100644 index 0000000000..9a881e10c4 Binary files /dev/null and b/doc/_images/screenshot_vmd.jpg differ diff --git a/doc/_images/sinusoid.jpg b/doc/_images/sinusoid.jpg new file mode 100644 index 0000000000..00969281a1 Binary files /dev/null and b/doc/_images/sinusoid.jpg differ diff --git a/doc/_images/stress_tensor.jpg b/doc/_images/stress_tensor.jpg new file mode 100644 index 0000000000..a62d6aa973 Binary files /dev/null and b/doc/_images/stress_tensor.jpg differ diff --git a/doc/_images/transform.jpg b/doc/_images/transform.jpg new file mode 100644 index 0000000000..4c591c4f9b Binary files /dev/null and b/doc/_images/transform.jpg differ diff --git a/doc/_images/umbrella.jpg b/doc/_images/umbrella.jpg new file mode 100644 index 0000000000..5783b54ea3 Binary files /dev/null and b/doc/_images/umbrella.jpg differ diff --git a/doc/_images/xrd_mesh.jpg b/doc/_images/xrd_mesh.jpg new file mode 100644 index 0000000000..677234caab Binary files /dev/null and b/doc/_images/xrd_mesh.jpg differ diff --git a/doc/_sources/Manual.txt b/doc/_sources/Manual.txt new file mode 100644 index 0000000000..2020b2c494 --- /dev/null +++ b/doc/_sources/Manual.txt @@ -0,0 +1,104 @@ +.. raw:: html + +

+ +LAMMPS Documentation +==================== + +27 Jul 2015 version +------------------- + +Version info: +------------- + +The LAMMPS "version" is the date when it was released, such as 1 May +2010. LAMMPS is updated continuously. Whenever we fix a bug or add a +feature, we release it immediately, and post a notice on `this page of the WWW site `_. Each dated copy of LAMMPS contains all the +features and bug-fixes up to and including that version date. The +version date is printed to the screen and logfile every time you run +LAMMPS. It is also in the file src/version.h and in the LAMMPS +directory name created when you unpack a tarball, and at the top of +the first page of the manual (this page). + +* If you browse the HTML doc pages on the LAMMPS WWW site, they always + describe the most current version of LAMMPS. +* If you browse the HTML doc pages included in your tarball, they + describe the version you have. +* The `PDF file `_ on the WWW site or in the tarball is updated + about once per month. This is because it is large, and we don't want + it to be part of every patch. +* There is also a `Developer.pdf `_ file in the doc + directory, which describes the internal structure and algorithms of + LAMMPS. +LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel +Simulator. + +LAMMPS is a classical molecular dynamics simulation code designed to +run efficiently on parallel computers. It was developed at Sandia +National Laboratories, a US Department of Energy facility, with +funding from the DOE. It is an open-source code, distributed freely +under the terms of the GNU Public License (GPL). + +The primary developers of LAMMPS are `Steve Plimpton `_, Aidan +Thompson, and Paul Crozier who can be contacted at +sjplimp,athomps,pscrozi at sandia.gov. The `LAMMPS WWW Site `_ at +http://lammps.sandia.gov has more information about the code and its +uses. + +.. _bug: http://lammps.sandia.gov/bug.html + + + +.. _sjp: http://www.sandia.gov/~sjplimp + + + + +---------- + + +The LAMMPS documentation is organized into the following sections. If +you find errors or omissions in this manual or have suggestions for +useful information to add, please send an email to the developers so +we can improve the LAMMPS documentation. + +Once you are familiar with LAMMPS, you may want to bookmark :ref:`this page ` at Section_commands.html#comm since +it gives quick access to documentation for all LAMMPS commands. + +`PDF file `_ of the entire manual, generated by +`htmldoc `_ + + +.. toctree:: + :maxdepth: 2 + :numbered: + + Section_intro + Section_start + Section_commands + Section_packages + Section_accelerate + Section_howto + Section_example + Section_perf + Section_tools + Section_modify + Section_python + Section_errors + Section_history + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` + +.. raw:: html + + + + +.. _lws: http://lammps.sandia.gov +.. _ld: Manual.html +.. _lc: Section_commands.html#comm diff --git a/doc/_sources/Section_accelerate.txt b/doc/_sources/Section_accelerate.txt new file mode 100644 index 0000000000..e1d5939d59 --- /dev/null +++ b/doc/_sources/Section_accelerate.txt @@ -0,0 +1,408 @@ +Accelerating LAMMPS performance +=============================== + +This section describes various methods for improving LAMMPS +performance for different classes of problems running on different +kinds of machines. + +There are two thrusts to the discussion that follows. The +first is using code options that implement alternate algorithms +that can speed-up a simulation. The second is to use one +of the several accelerator packages provided with LAMMPS that +contain code optimized for certain kinds of hardware, including +multi-core CPUs, GPUs, and Intel Xeon Phi coprocessors. + +* 5.1 :ref:`Measuring performance ` +* 5.2 :ref:`Algorithms and code options to boost performace ` +* 5.3 :ref:`Accelerator packages with optimized styles ` +* 5.3.1 :doc:`USER-CUDA package ` +* 5.3.2 :doc:`GPU package ` +* 5.3.3 :doc:`USER-INTEL package ` +* 5.3.4 :doc:`KOKKOS package ` +* 5.3.5 :doc:`USER-OMP package ` +* 5.3.6 :doc:`OPT package ` +* 5.4 :ref:`Comparison of various accelerator packages ` +The `Benchmark page `_ of the LAMMPS +web site gives performance results for the various accelerator +packages discussed in Section 5.2, for several of the standard LAMMPS +benchmark problems, as a function of problem size and number of +compute nodes, on different hardware platforms. + + + + + +.. _acc_1: + +Measuring performance +--------------------------------- + +Before trying to make your simulation run faster, you should +understand how it currently performs and where the bottlenecks are. + +The best way to do this is run the your system (actual number of +atoms) for a modest number of timesteps (say 100 steps) on several +different processor counts, including a single processor if possible. +Do this for an equilibrium version of your system, so that the +100-step timings are representative of a much longer run. There is +typically no need to run for 1000s of timesteps to get accurate +timings; you can simply extrapolate from short runs. + +For the set of runs, look at the timing data printed to the screen and +log file at the end of each LAMMPS run. :ref:`This section ` of the manual has an overview. + +Running on one (or a few processors) should give a good estimate of +the serial performance and what portions of the timestep are taking +the most time. Running the same problem on a few different processor +counts should give an estimate of parallel scalability. I.e. if the +simulation runs 16x faster on 16 processors, its 100% parallel +efficient; if it runs 8x faster on 16 processors, it's 50% efficient. + +The most important data to look at in the timing info is the timing +breakdown and relative percentages. For example, trying different +options for speeding up the long-range solvers will have little impact +if they only consume 10% of the run time. If the pairwise time is +dominating, you may want to look at GPU or OMP versions of the pair +style, as discussed below. Comparing how the percentages change as +you increase the processor count gives you a sense of how different +operations within the timestep are scaling. Note that if you are +running with a Kspace solver, there is additional output on the +breakdown of the Kspace time. For PPPM, this includes the fraction +spent on FFTs, which can be communication intensive. + +Another important detail in the timing info are the histograms of +atoms counts and neighbor counts. If these vary widely across +processors, you have a load-imbalance issue. This often results in +inaccurate relative timing data, because processors have to wait when +communication occurs for other processors to catch up. Thus the +reported times for "Communication" or "Other" may be higher than they +really are, due to load-imbalance. If this is an issue, you can +uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile +LAMMPS, to obtain synchronized timings. + + +---------- + + +.. _acc_2: + +General strategies +------------------------------ + +.. note:: + + this section 5.2 is still a work in progress + +Here is a list of general ideas for improving simulation performance. +Most of them are only applicable to certain models and certain +bottlenecks in the current performance, so let the timing data you +generate be your guide. It is hard, if not impossible, to predict how +much difference these options will make, since it is a function of +problem size, number of processors used, and your machine. There is +no substitute for identifying performance bottlenecks, and trying out +various options. + +* rRESPA +* 2-FFT PPPM +* Staggered PPPM +* single vs double PPPM +* partial charge PPPM +* verlet/split run style +* processor command for proc layout and numa layout +* load-balancing: balance and fix balance + +2-FFT PPPM, also called *analytic differentiation* or *ad* PPPM, uses +2 FFTs instead of the 4 FFTs used by the default *ik differentiation* +PPPM. However, 2-FFT PPPM also requires a slightly larger mesh size to +achieve the same accuracy as 4-FFT PPPM. For problems where the FFT +cost is the performance bottleneck (typically large problems running +on many processors), 2-FFT PPPM may be faster than 4-FFT PPPM. + +Staggered PPPM performs calculations using two different meshes, one +shifted slightly with respect to the other. This can reduce force +aliasing errors and increase the accuracy of the method, but also +doubles the amount of work required. For high relative accuracy, using +staggered PPPM allows one to half the mesh size in each dimension as +compared to regular PPPM, which can give around a 4x speedup in the +kspace time. However, for low relative accuracy, using staggered PPPM +gives little benefit and can be up to 2x slower in the kspace +time. For example, the rhodopsin benchmark was run on a single +processor, and results for kspace time vs. relative accuracy for the +different methods are shown in the figure below. For this system, +staggered PPPM (using ik differentiation) becomes useful when using a +relative accuracy of slightly greater than 1e-5 and above. + +.. image:: JPG/rhodo_staggered.jpg + :align: center + +.. warning:: + + Using staggered PPPM may not give the same increase in + accuracy of energy and pressure as it does in forces, so some caution + must be used if energy and/or pressure are quantities of interest, + such as when using a barostat. + + +---------- + + +.. _acc_3: + +Packages with optimized styles +------------------------------------------ + +Accelerated versions of various :doc:`pair_style `, +:doc:`fixes `, :doc:`computes `, and other commands have +been added to LAMMPS, which will typically run faster than the +standard non-accelerated versions. Some require appropriate hardware +to be present on your system, e.g. GPUs or Intel Xeon Phi +coprocessors. + +All of these commands are in packages provided with LAMMPS. An +overview of packages is give in :doc:`Section packages `. These are the accelerator packages +currently in LAMMPS, either as standard or user packages: + ++--------------------------------------+------------------------------------------------+ +| :doc:`USER-CUDA ` | for NVIDIA GPUs | ++--------------------------------------+------------------------------------------------+ +| :doc:`GPU ` | for NVIDIA GPUs as well as OpenCL support | ++--------------------------------------+------------------------------------------------+ +| :doc:`USER-INTEL ` | for Intel CPUs and Intel Xeon Phi | ++--------------------------------------+------------------------------------------------+ +| :doc:`KOKKOS ` | for GPUs, Intel Xeon Phi, and OpenMP threading | ++--------------------------------------+------------------------------------------------+ +| :doc:`USER-OMP ` | for OpenMP threading | ++--------------------------------------+------------------------------------------------+ +| :doc:`OPT ` | generic CPU optimizations | ++--------------------------------------+------------------------------------------------+ + +Any accelerated style has the same name as the corresponding standard +style, except that a suffix is appended. Otherwise, the syntax for +the command that uses the style is identical, their functionality is +the same, and the numerical results it produces should also be the +same, except for precision and round-off effects. + +For example, all of these styles are accelerated variants of the +Lennard-Jones :doc:`pair_style lj/cut `: + +* :doc:`pair_style lj/cut/cuda ` +* :doc:`pair_style lj/cut/gpu ` +* :doc:`pair_style lj/cut/intel ` +* :doc:`pair_style lj/cut/kk ` +* :doc:`pair_style lj/cut/omp ` +* :doc:`pair_style lj/cut/opt ` + +To see what accelerate styles are currently available, see +:ref:`Section_commands 5 ` of the manual. The +doc pages for individual commands (e.g. :doc:`pair lj/cut ` or +:doc:`fix nve `) also list any accelerated variants available +for that style. + +To use an accelerator package in LAMMPS, and one or more of the styles +it provides, follow these general steps. Details vary from package to +package and are explained in the individual accelerator doc pages, +listed above: + ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| build the accelerator library | only for USER-CUDA and GPU packages | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| install the accelerator package | make yes-opt, make yes-user-intel, etc | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| add compile/link flags to Makefile.machine | in src/MAKE,
+ only for USER-INTEL, KOKKOS, USER-OMP packages | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| re-build LAMMPS | make machine | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| run a LAMMPS simulation | lmp_machine < in.script | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| enable the accelerator package | via "-c on" and "-k on" :ref:`command-line switches `,
+ only for USER-CUDA and KOKKOS packages | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| set any needed options for the package | via "-pk" :ref:`command-line switch ` or + :doc:`package ` command,
+ only if defaults need to be changed | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ +| use accelerated styles in your input script | via "-sf" :ref:`command-line switch ` or + :doc:`suffix ` command | ++---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ + +The first 4 steps can be done as a single command, using the +src/Make.py tool. The Make.py tool is discussed in :ref:`Section 2.4 ` of the manual, and its use is +illustrated in the individual accelerator sections. Typically these +steps only need to be done once, to create an executable that uses one +or more accelerator packages. + +The last 4 steps can all be done from the command-line when LAMMPS is +launched, without changing your input script, as illustrated in the +individual accelerator sections. Or you can add +:doc:`package ` and :doc:`suffix ` commands to your input +script. + +.. warning:: + + With a few exceptions, you can build a single LAMMPS + executable with all its accelerator packages installed. Note that the + USER-INTEL and KOKKOS packages require you to choose one of their + options when building. I.e. CPU or Phi for USER-INTEL. OpenMP, Cuda, + or Phi for KOKKOS. Here are the exceptions; you cannot build a single + executable with: + +* both the USER-INTEL Phi and KOKKOS Phi options +* the USER-INTEL Phi or Kokkos Phi option, and either the USER-CUDA or GPU packages + +See the examples/accelerate/README and make.list files for sample +Make.py commands that build LAMMPS with any or all of the accelerator +packages. As an example, here is a command that builds with all the +GPU related packages installed (USER-CUDA, GPU, KOKKOS with Cuda), +including settings to build the needed auxiliary USER-CUDA and GPU +libraries for Kepler GPUs: + +.. parsed-literal:: + + Make.py -j 16 -p omp gpu cuda kokkos -cc nvcc wrap=mpi -cuda mode=double arch=35 -gpu mode=double arch=35 \ -kokkos cuda arch=35 lib-all file mpi + +The examples/accelerate directory also has input scripts that can be +used with all of the accelerator packages. See its README file for +details. + +Likewise, the bench directory has FERMI and KEPLER and PHI +sub-directories with Make.py commands and input scripts for using all +the accelerator packages on various machines. See the README files in +those dirs. + +As mentioned above, the `Benchmark page `_ of the LAMMPS web site gives +performance results for the various accelerator packages for several +of the standard LAMMPS benchmark problems, as a function of problem +size and number of compute nodes, on different hardware platforms. + +Here is a brief summary of what the various packages provide. Details +are in the individual accelerator sections. + +* Styles with a "cuda" or "gpu" suffix are part of the USER-CUDA or GPU + packages, and can be run on NVIDIA GPUs. The speed-up on a GPU + depends on a variety of factors, discussed in the accelerator + sections. +* Styles with an "intel" suffix are part of the USER-INTEL + package. These styles support vectorized single and mixed precision + calculations, in addition to full double precision. In extreme cases, + this can provide speedups over 3.5x on CPUs. The package also + supports acceleration in "offload" mode to Intel(R) Xeon Phi(TM) + coprocessors. This can result in additional speedup over 2x depending + on the hardware configuration. +* Styles with a "kk" suffix are part of the KOKKOS package, and can be + run using OpenMP on multicore CPUs, on an NVIDIA GPU, or on an Intel + Xeon Phi in "native" mode. The speed-up depends on a variety of + factors, as discussed on the KOKKOS accelerator page. +* Styles with an "omp" suffix are part of the USER-OMP package and allow + a pair-style to be run in multi-threaded mode using OpenMP. This can + be useful on nodes with high-core counts when using less MPI processes + than cores is advantageous, e.g. when running with PPPM so that FFTs + are run on fewer MPI processors or when the many MPI tasks would + overload the available bandwidth for communication. +* Styles with an "opt" suffix are part of the OPT package and typically + speed-up the pairwise calculations of your simulation by 5-25% on a + CPU. +The individual accelerator package doc pages explain: + +* what hardware and software the accelerated package requires +* how to build LAMMPS with the accelerated package +* how to run with the accelerated package either via command-line switches or modifying the input script +* speed-ups to expect +* guidelines for best performance +* restrictions + + +---------- + + +.. _acc_4: + +Comparison of various accelerator packages +------------------------------------------------------ + +.. note:: + + this section still needs to be re-worked with additional KOKKOS + and USER-INTEL information. + +The next section compares and contrasts the various accelerator +options, since there are multiple ways to perform OpenMP threading, +run on GPUs, and run on Intel Xeon Phi coprocessors. + +All 3 of these packages accelerate a LAMMPS calculation using NVIDIA +hardware, but they do it in different ways. + +As a consequence, for a particular simulation on specific hardware, +one package may be faster than the other. We give guidelines below, +but the best way to determine which package is faster for your input +script is to try both of them on your machine. See the benchmarking +section below for examples where this has been done. + +**Guidelines for using each package optimally:** + +* The GPU package allows you to assign multiple CPUs (cores) to a single + GPU (a common configuration for "hybrid" nodes that contain multicore + CPU(s) and GPU(s)) and works effectively in this mode. The USER-CUDA + package does not allow this; you can only use one CPU per GPU. +* The GPU package moves per-atom data (coordinates, forces) + back-and-forth between the CPU and GPU every timestep. The USER-CUDA + package only does this on timesteps when a CPU calculation is required + (e.g. to invoke a fix or compute that is non-GPU-ized). Hence, if you + can formulate your input script to only use GPU-ized fixes and + computes, and avoid doing I/O too often (thermo output, dump file + snapshots, restart files), then the data transfer cost of the + USER-CUDA package can be very low, causing it to run faster than the + GPU package. +* The GPU package is often faster than the USER-CUDA package, if the + number of atoms per GPU is "small". The crossover point, in terms of + atoms/GPU at which the USER-CUDA package becomes faster depends + strongly on the pair style. For example, for a simple Lennard Jones + system the crossover (in single precision) is often about 50K-100K + atoms per GPU. When performing double precision calculations the + crossover point can be significantly smaller. +* Both packages compute bonded interactions (bonds, angles, etc) on the + CPU. This means a model with bonds will force the USER-CUDA package + to transfer per-atom data back-and-forth between the CPU and GPU every + timestep. If the GPU package is running with several MPI processes + assigned to one GPU, the cost of computing the bonded interactions is + spread across more CPUs and hence the GPU package can run faster. +* When using the GPU package with multiple CPUs assigned to one GPU, its + performance depends to some extent on high bandwidth between the CPUs + and the GPU. Hence its performance is affected if full 16 PCIe lanes + are not available for each GPU. In HPC environments this can be the + case if S2050/70 servers are used, where two devices generally share + one PCIe 2.0 16x slot. Also many multi-GPU mainboards do not provide + full 16 lanes to each of the PCIe 2.0 16x slots. +**Differences between the two packages:** + +* The GPU package accelerates only pair force, neighbor list, and PPPM + calculations. The USER-CUDA package currently supports a wider range + of pair styles and can also accelerate many fix styles and some + compute styles, as well as neighbor list and PPPM calculations. +* The USER-CUDA package does not support acceleration for minimization. +* The USER-CUDA package does not support hybrid pair styles. +* The USER-CUDA package can order atoms in the neighbor list differently + from run to run resulting in a different order for force accumulation. +* The USER-CUDA package has a limit on the number of atom types that can be + used in a simulation. +* The GPU package requires neighbor lists to be built on the CPU when using + exclusion lists or a triclinic simulation box. +* The GPU package uses more GPU memory than the USER-CUDA package. This + is generally not a problem since typical runs are computation-limited + rather than memory-limited. +Examples +"""""""" + +The LAMMPS distribution has two directories with sample input scripts +for the GPU and USER-CUDA packages. + +* lammps/examples/gpu = GPU package files +* lammps/examples/USER/cuda = USER-CUDA package files + +These contain input scripts for identical systems, so they can be used +to benchmark the performance of both packages on your system. + + +.. _lws: http://lammps.sandia.gov +.. _ld: Manual.html +.. _lc: Section_commands.html#comm diff --git a/doc/_sources/Section_commands.txt b/doc/_sources/Section_commands.txt new file mode 100644 index 0000000000..b755d694e5 --- /dev/null +++ b/doc/_sources/Section_commands.txt @@ -0,0 +1,792 @@ +Commands +======== + +This section describes how a LAMMPS input script is formatted and the +input script commands used to define a LAMMPS simulation. + +| 3.1 :ref:`LAMMPS input script ` +| 3.2 :ref:`Parsing rules ` +| 3.3 :ref:`Input script structure ` +| 3.4 :ref:`Commands listed by category ` +| 3.5 :ref:`Commands listed alphabetically ` +| + + + + + +.. _cmd_1: + +LAMMPS input script +------------------- + +LAMMPS executes by reading commands from a input script (text file), +one line at a time. When the input script ends, LAMMPS exits. Each +command causes LAMMPS to take some action. It may set an internal +variable, read in a file, or run a simulation. Most commands have +default settings, which means you only need to use the command if you +wish to change the default. + +In many cases, the ordering of commands in an input script is not +important. However the following rules apply: + +(1) LAMMPS does not read your entire input script and then perform a +simulation with all the settings. Rather, the input script is read +one line at a time and each command takes effect when it is read. +Thus this sequence of commands: + +.. parsed-literal:: + + timestep 0.5 + run 100 + run 100 + +does something different than this sequence: + +.. parsed-literal:: + + run 100 + timestep 0.5 + run 100 + +In the first case, the specified timestep (0.5 fmsec) is used for two +simulations of 100 timesteps each. In the 2nd case, the default +timestep (1.0 fmsec) is used for the 1st 100 step simulation and a 0.5 +fmsec timestep is used for the 2nd one. + +(2) Some commands are only valid when they follow other commands. For +example you cannot set the temperature of a group of atoms until atoms +have been defined and a group command is used to define which atoms +belong to the group. + +(3) Sometimes command B will use values that can be set by command A. +This means command A must precede command B in the input script if it +is to have the desired effect. For example, the +:doc:`read_data ` command initializes the system by setting +up the simulation box and assigning atoms to processors. If default +values are not desired, the :doc:`processors ` and +:doc:`boundary ` commands need to be used before read_data to +tell LAMMPS how to map processors to the simulation box. + +Many input script errors are detected by LAMMPS and an ERROR or +WARNING message is printed. :doc:`This section ` gives +more information on what errors mean. The documentation for each +command lists restrictions on how the command can be used. + + +---------- + + +.. _cmd_2: + +Parsing rules +------------- + +Each non-blank line in the input script is treated as a command. +LAMMPS commands are case sensitive. Command names are lower-case, as +are specified command arguments. Upper case letters may be used in +file names or user-chosen ID strings. + +Here is how each line in the input script is parsed by LAMMPS: + +(1) If the last printable character on the line is a "&" character, +the command is assumed to continue on the next line. The next line is +concatenated to the previous line by removing the "&" character and +line break. This allows long commands to be continued across two or +more lines. See the discussion of triple quotes in (6) for how to +continue a command across multiple line without using "&" characters. + +(2) All characters from the first "#" character onward are treated as +comment and discarded. See an exception in (6). Note that a +comment after a trailing "&" character will prevent the command from +continuing on the next line. Also note that for multi-line commands a +single leading "#" will comment out the entire command. + +(3) The line is searched repeatedly for $ characters, which indicate +variables that are replaced with a text string. See an exception in +(6). + +If the $ is followed by curly brackets, then the variable name is the +text inside the curly brackets. If no curly brackets follow the $, +then the variable name is the single character immediately following +the $. Thus ${myTemp} and $x refer to variable names "myTemp" and +"x". + +How the variable is converted to a text string depends on what style +of variable it is; see the `variable `_ doc page for details. +It can be a variable that stores multiple text strings, and return one +of them. The returned text string can be multiple "words" (space +separated) which will then be interpreted as multiple arguments in the +input command. The variable can also store a numeric formula which +will be evaluated and its numeric result returned as a string. + +As a special case, if the $ is followed by parenthesis, then the text +inside the parenthesis is treated as an "immediate" variable and +evaluated as an :doc:`equal-style variable `. This is a way +to use numeric formulas in an input script without having to assign +them to variable names. For example, these 3 input script lines: + +.. parsed-literal:: + + variable X equal (xlo+xhi)/2+sqrt(v_area) + region 1 block $X 2 INF INF EDGE EDGE + variable X delete + +can be replaced by + +.. parsed-literal:: + + region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE + +so that you do not have to define (or discard) a temporary variable X. + +Note that neither the curly-bracket or immediate form of variables can +contain nested $ characters for other variables to substitute for. +Thus you cannot do this: + +.. parsed-literal:: + + variable a equal 2 + variable b2 equal 4 + print "B2 = ${b$a}" + +Nor can you specify this $($x-1.0) for an immediate variable, but +you could use $(v_x-1.0), since the latter is valid syntax for an +:doc:`equal-style variable `. + +See the :doc:`variable ` command for more details of how +strings are assigned to variables and evaluated, and how they can be +used in input script commands. + +(4) The line is broken into "words" separated by whitespace (tabs, +spaces). Note that words can thus contain letters, digits, +underscores, or punctuation characters. + +(5) The first word is the command name. All successive words in the +line are arguments. + +(6) If you want text with spaces to be treated as a single argument, +it can be enclosed in either single or double or triple quotes. A +long single argument enclosed in single or double quotes can span +multiple lines if the "&" character is used, as described above. When +the lines are concatenated together (and the "&" characters and line +breaks removed), the text will become a single line. If you want +multiple lines of an argument to retain their line breaks, the text +can be enclosed in triple quotes, in which case "&" characters are not +needed. For example: + +.. parsed-literal:: + + print "Volume = $v" + print 'Volume = $v' + if "$*steps* > 1000" then quit + variable a string "red green blue & + purple orange cyan" + print """ + System volume = $v + System temperature = $t + """ + +In each case, the single, double, or triple quotes are removed when +the single argument they enclose is stored internally. + +See the :doc:`dump modify format `, :doc:`print `, +:doc:`if `, and :doc:`python ` commands for examples. + +A "#" or "$" character that is between quotes will not be treated as a +comment indicator in (2) or substituted for as a variable in (3). + +.. warning:: + + If the argument is itself a command that requires a + quoted argument (e.g. using a :doc:`print ` command as part of an + :doc:`if ` or :doc:`run every ` command), then single, double, or + triple quotes can be nested in the usual manner. See the doc pages + for those commands for examples. Only one of level of nesting is + allowed, but that should be sufficient for most use cases. + + +---------- + + +.. _cmd_3: + +Input script structure +---------------------------------- + +This section describes the structure of a typical LAMMPS input script. +The "examples" directory in the LAMMPS distribution contains many +sample input scripts; the corresponding problems are discussed in +:doc:`Section_example `, and animated on the `LAMMPS WWW Site `_. + +A LAMMPS input script typically has 4 parts: + +1. Initialization +2. Atom definition +3. Settings +4. Run a simulation + +The last 2 parts can be repeated as many times as desired. I.e. run a +simulation, change some settings, run some more, etc. Each of the 4 +parts is now described in more detail. Remember that almost all the +commands need only be used if a non-default value is desired. + +(1) Initialization + +Set parameters that need to be defined before atoms are created or +read-in from a file. + +The relevant commands are :doc:`units `, +:doc:`dimension `, :doc:`newton `, +:doc:`processors `, :doc:`boundary `, +:doc:`atom_style `, :doc:`atom_modify `. + +If force-field parameters appear in the files that will be read, these +commands tell LAMMPS what kinds of force fields are being used: +:doc:`pair_style `, :doc:`bond_style `, +:doc:`angle_style `, :doc:`dihedral_style `, +:doc:`improper_style `. + +(2) Atom definition + +There are 3 ways to define atoms in LAMMPS. Read them in from a data +or restart file via the :doc:`read_data ` or +:doc:`read_restart ` commands. These files can contain +molecular topology information. Or create atoms on a lattice (with no +molecular topology), using these commands: :doc:`lattice `, +:doc:`region `, :doc:`create_box `, +:doc:`create_atoms `. The entire set of atoms can be +duplicated to make a larger simulation using the +:doc:`replicate ` command. + +(3) Settings + +Once atoms and molecular topology are defined, a variety of settings +can be specified: force field coefficients, simulation parameters, +output options, etc. + +Force field coefficients are set by these commands (they can also be +set in the read-in files): :doc:`pair_coeff `, +:doc:`bond_coeff `, :doc:`angle_coeff `, +:doc:`dihedral_coeff `, +:doc:`improper_coeff `, +:doc:`kspace_style `, :doc:`dielectric `, +:doc:`special_bonds `. + +Various simulation parameters are set by these commands: +:doc:`neighbor `, :doc:`neigh_modify `, +:doc:`group `, :doc:`timestep `, +:doc:`reset_timestep `, :doc:`run_style `, +:doc:`min_style `, :doc:`min_modify `. + +Fixes impose a variety of boundary conditions, time integration, and +diagnostic options. The :doc:`fix ` command comes in many flavors. + +Various computations can be specified for execution during a +simulation using the :doc:`compute `, +:doc:`compute_modify `, and :doc:`variable ` +commands. + +Output options are set by the :doc:`thermo `, :doc:`dump `, +and :doc:`restart ` commands. + +(4) Run a simulation + +A molecular dynamics simulation is run using the :doc:`run ` +command. Energy minimization (molecular statics) is performed using +the :doc:`minimize ` command. A parallel tempering +(replica-exchange) simulation can be run using the +:doc:`temper ` command. + + +---------- + + +.. _cmd_4: + +Commands listed by category +--------------------------- + +This section lists all LAMMPS commands, grouped by category. The +:ref:`next section ` lists the same commands alphabetically. Note +that some style options for some commands are part of specific LAMMPS +packages, which means they cannot be used unless the package was +included when LAMMPS was built. Not all packages are included in a +default LAMMPS build. These dependencies are listed as Restrictions +in the command's documentation. + +Initialization: + +:doc:`atom_modify `, :doc:`atom_style `, +:doc:`boundary `, :doc:`dimension `, +:doc:`newton `, :doc:`processors `, :doc:`units ` + +Atom definition: + +:doc:`create_atoms `, :doc:`create_box `, +:doc:`lattice `, :doc:`read_data `, +:doc:`read_dump `, :doc:`read_restart `, +:doc:`region `, :doc:`replicate ` + +Force fields: + +:doc:`angle_coeff `, :doc:`angle_style `, +:doc:`bond_coeff `, :doc:`bond_style `, +:doc:`dielectric `, :doc:`dihedral_coeff `, +:doc:`dihedral_style `, +:doc:`improper_coeff `, +:doc:`improper_style `, +:doc:`kspace_modify `, :doc:`kspace_style `, +:doc:`pair_coeff `, :doc:`pair_modify `, +:doc:`pair_style `, :doc:`pair_write `, +:doc:`special_bonds ` + +Settings: + +:doc:`comm_style `, :doc:`group `, :doc:`mass `, +:doc:`min_modify `, :doc:`min_style `, +:doc:`neigh_modify `, :doc:`neighbor `, +:doc:`reset_timestep `, :doc:`run_style `, +:doc:`set `, :doc:`timestep `, :doc:`velocity ` + +Fixes: + +:doc:`fix `, :doc:`fix_modify `, :doc:`unfix ` + +Computes: + +:doc:`compute `, :doc:`compute_modify `, +:doc:`uncompute ` + +Output: + +:doc:`dump `, :doc:`dump image `, +:doc:`dump_modify `, :doc:`dump movie `, +:doc:`restart `, :doc:`thermo `, +:doc:`thermo_modify `, :doc:`thermo_style `, +:doc:`undump `, :doc:`write_data `, +:doc:`write_dump `, :doc:`write_restart ` + +Actions: + +:doc:`delete_atoms `, :doc:`delete_bonds `, +:doc:`displace_atoms `, :doc:`change_box `, +:doc:`minimize `, :doc:`neb ` :doc:`prd `, +:doc:`rerun `, :doc:`run `, :doc:`temper ` + +Miscellaneous: + +:doc:`clear `, :doc:`echo `, :doc:`if `, +:doc:`include `, :doc:`jump `, :doc:`label