# [−]Module lumol::energy

Interaction potentials for energy and forces computations

# Potentials

In classical simulations, the total energy of a system is separated as a sum containing terms from the non-bonded pairs, the bonds, the angles, the dihedral angles in the system; and the electrostatic interactions.

Potentials are used to compute the interaction energy in a system. They are represented by a Potential trait, used to compute the force and the energy of interaction. In order to add a new potential to lumol, one has to implement the Potential trait, and then indicate how the potential can be used. This is done by implementing one or more of the potentials marker traits:

use lumol_core::energy::{Potential, PairPotential, DihedralPotential};

#[derive(Clone)]
struct OnePotential;

// OnePotential is a potential
impl Potential for OnePotential {
fn energy(&self, _: f64) -> f64 {1.0}
fn force(&self, _: f64) -> f64 {0.0}
}

// It can be used for pair and dihedral potentials, but not for angles or
// bonds.
impl PairPotential for OnePotential {
/* some code omitted */
}
impl DihedralPotential for OnePotential {}

# Global and Coulombic potentials

Global potentials are potentials that have an effect on the whole system at once. They are defined by implementing the [GlobalPotential] GlobalPotential trait. CoulombicPotential are a specific version of global potentials used to compute electrostatic interactions.

## Structs

 BornMayerHuggins Born-Mayer-Huggins potential. Buckingham Buckingham potential. CosineHarmonic Cosine harmonic potential. Ewald Ewald summation for coulombic interactions. Gaussian Gaussian potential. Harmonic Harmonic potential. LennardJones Lennard-Jones potential. Mie Mie potential. Morse Morse potential NullPotential No-op potential. PairInteraction A non-bonded interaction between two particle. RestrictionInfo Restriction information attached to a pair of Particles in a System. SharedEwald Thread-sade wrapper around Ewald implementing CoulombicPotential. TableComputation Computation of a potential using tabulated values. Torsion Torsion potential. Wolf Wolf summation for coulombic interactions.

## Enums

 BondPath Shortest bond path between two particles in a system PairRestriction Possible restrictions on the pair interactions.

## Traits

 AnglePotential Marker trait for potentials that can be used for molecular angles. BondPotential Marker trait for potentials that can be used for molecular bonds. Computation Alternative energy and forces computation. CoulombicPotential Electrostatic potential solver. DihedralPotential Marker trait for potentials that can be used for molecular dihedral angles. GlobalCache Energetic cache for global potentials. GlobalPotential A potential acting on the whole System at once. PairPotential Marker trait for potentials that can be used for non-bonded two body interactions. Potential A potential for force and energy computations.