\(\renewcommand{\AA}{\text{Å}}\)

# 3.8. 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.

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 `src/compute.h` for additional details.

post_constructor | perform tasks that cannot be run in the constructor (optional)
init | perform one time setup (required)
init_list | neighbor list setup, if needed (optional)
compute_scalar | compute a scalar quantity (optional)
compute_vector | compute a vector of quantities (optional)
compute_peratom | compute one or more quantities per atom (optional)
compute_local | compute one or more quantities per processor (optional)
pack_comm | pack a buffer with items to communicate (optional)
unpack_comm | unpack the buffer (optional)
pack_reverse | pack a buffer with items to reverse communicate (optional)
unpack_reverse | unpack the buffer (optional)
remove_bias | remove velocity bias from one atom (optional)
remove_bias_all | remove velocity bias from all atoms in group (optional)
restore_bias | restore velocity bias for one atom after remove_bias (optional)
restore_bias_all | same as before, but for all atoms in group (optional)
pair_tally_callback | callback function for tally-style computes (optional).
modify_param | called when a compute_modify request is executed (optional)
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 compute styles in the TALLY package provide examples for utilizing this mechanism.