# Variable options
The `Variable` class computes and stores [variable](variable)
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), [fix print](fix_print), or [thermo_style
custom](thermo_style) commands. Variables of style \"equal\" can compute
complex equations that involve the following types of arguments:
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], ...
Adding keywords for the [thermo_style custom](thermo_style) command
(which can then be accessed by variables) is discussed in the [Modify
thermo](Modify_thermo) documentation.
Adding a new math function of one or two arguments can be done by
editing one section of the `Variable::evaluate()` method. Search for the
word \"customize\" to find the appropriate location.
Adding a new group function can be done by editing one section of the
`Variable::evaluate()` 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).
Accessing a new atom-based vector can be done by editing one section of
the Variable::evaluate() method. Search for the word \"customize\" to
find the appropriate location.
Adding new [compute styles](compute) (whose calculated values can then
be accessed by variables) is discussed in the [Modify
compute](Modify_compute) documentation.