Thermodynamic observables
-------------------------
### Objective
This module defines a set of thermodynamic observables commonly output by
molecular simulation programs.
### Module name and version
The name of this module is `thermodynamics`. The module version is 1.0.0.
### Observables
Thermodynamic observables are stored in the `observables` group for global
properties or in `observables/` for subsystems, similarly to the
`particles` group. The groups have the following contents:
observables
\--
+-- dimension: Integer[]
\-- particle_number
\-- (pressure)
\-- (temperature)
\-- (density)
\-- ...
`dimension`
: A scalar attribute of `Integer` type that gives the dimension of the space
embedding the subsystem.
`particle_number`
: The number of particles in the subsystem stored as scalar H5MD element of
`Integer` datatype.
The following H5MD elements are optional, of scalar character, and use the
`Float` datatype.
`pressure`
: The pressure of the subsystem.
`temperature`
: The (instantaneous) temperature of the subsystem as inferred from the
kinetic energy.
`density`
: The number density of the subsystem stored as `Float` or `Integer`
datatype.
`potential_energy`
: The potential energy of the subsystem.
`kinetic_energy`
: The kinetic energy of the subsystem.
`internal_energy`
: The internal energy of the subsystem, typically the sum of potential and
kinetic energy.
`enthalpy`
: The enthalpy of the subsystem.
The latter 4 quantities are stored as per-particle averages. The corresponding
extensive quantities (scaling linearly with the system size) are obtained by
multiplication with the number of particles. Per-volume averages follow by
multiplication with the number density if present.