From 999e6d95d4599e157a7756916f2e43a03baf0067 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 3 Apr 2025 13:39:48 -0400 Subject: [PATCH] list post_constructor methods and modernize description --- doc/src/Modify_compute.rst | 35 ++++++++++++----------- doc/src/Modify_fix.rst | 57 ++++++++++++++++++++------------------ 2 files changed, 49 insertions(+), 43 deletions(-) diff --git a/doc/src/Modify_compute.rst b/doc/src/Modify_compute.rst index ea603985dd..1d7b528d90 100644 --- a/doc/src/Modify_compute.rst +++ b/doc/src/Modify_compute.rst @@ -1,19 +1,21 @@ Compute styles ============== -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. +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. -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. +The ``src/compute_temp.cpp`` file is a simple example of computing a +scalar temperature. The ``src/compute_ke_atom.cpp`` file is a simple +example of computing per-atom kinetic energy. Here is a brief description of methods you define in your new derived -class. See compute.h for details. +class. See ``src/compute.h`` for additional details. ++-----------------------+------------------------------------------------------------------+ +| post_constructor | perform tasks that cannot be run in the constructor (optional) | +-----------------------+------------------------------------------------------------------+ | init | perform one time setup (required) | +-----------------------+------------------------------------------------------------------+ @@ -50,10 +52,11 @@ class. See compute.h for details. | memory_usage | tally memory usage (optional) | +-----------------------+------------------------------------------------------------------+ -Tally-style computes are a special case, as their computation is done -in two stages: the callback function is registered with the pair style -and then called from the Pair::ev_tally() function, which is called for -each pair after force and energy has been computed for this pair. Then -the tallied values are retrieved with the standard compute_scalar or -compute_vector or compute_peratom methods. The :doc:`compute styles in the TALLY package ` -provide *examples* for utilizing this mechanism. +Tally-style computes are a special case, as their computation is done in +two stages: the callback function is registered with the pair style and +then called from the Pair::ev_tally() function, which is called for each +pair after force and energy has been computed for this pair. Then the +tallied values are retrieved with the standard compute_scalar or +compute_vector or compute_peratom methods. The :doc:`compute styles in +the TALLY package ` provide *examples* for utilizing this +mechanism. diff --git a/doc/src/Modify_fix.rst b/doc/src/Modify_fix.rst index 0e697c28dd..18b51d6e13 100644 --- a/doc/src/Modify_fix.rst +++ b/doc/src/Modify_fix.rst @@ -1,23 +1,25 @@ Fix styles ========== -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 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. +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 +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. -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. +The file ``src/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. There also is a detailed discussion of :doc:`how to write +new fix styles ` in LAMMPS. Here is a brief description of methods you can define in your new -derived class. See fix.h for details. +derived class. See ``src/fix.h`` for additional details. ++---------------------------+--------------------------------------------------------------------------------------------+ +| post_constructor | perform tasks that cannot be run in the constructor (optional) | +---------------------------+--------------------------------------------------------------------------------------------+ | setmask | determines when the fix is called during the timestep (required) | +---------------------------+--------------------------------------------------------------------------------------------+ @@ -130,10 +132,11 @@ derived class. See fix.h for details. Typically, only a small fraction of these methods are defined for a particular fix. Setmask is mandatory, as it determines when the fix -will be invoked during the timestep. Fixes that perform time -integration (\ *nve*, *nvt*, *npt*\ ) implement initial_integrate() and -final_integrate() to perform velocity Verlet updates. Fixes that -constrain forces implement post_force(). +will be invoked during :doc:`the evolution of a timestep +`. Fixes that perform time integration (\ *nve*, *nvt*, +*npt*\ ) implement initial_integrate() and final_integrate() to perform +velocity Verlet updates. Fixes that constrain forces implement +post_force(). Fixes that perform diagnostics typically implement end_of_step(). For an end_of_step fix, one of your fix arguments must be the variable @@ -143,13 +146,13 @@ 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 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 :doc:`run_style ` -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. +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 +:doc:`run_style ` 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.