use serde::{Deserialize, Serialize};
use hoomd_microstate::{Body, Microstate};
use super::{DeltaEnergyInsert, DeltaEnergyOne, DeltaEnergyRemove, TotalEnergy};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Zero;
impl<M> TotalEnergy<M> for Zero {
#[inline]
fn total_energy(&self, _microstate: &M) -> f64 {
0.0
}
}
impl<B, S, X, C> DeltaEnergyOne<B, S, X, C> for Zero {
#[inline]
fn delta_energy_one(
&self,
_initial_microstate: &Microstate<B, S, X, C>,
_body_index: usize,
_final_body: &Body<B, S>,
) -> f64 {
0.0
}
}
impl<B, S, X, C> DeltaEnergyInsert<B, S, X, C> for Zero {
#[inline]
fn delta_energy_insert(
&self,
_initial_microstate: &Microstate<B, S, X, C>,
_new_body: &Body<B, S>,
) -> f64 {
0.0
}
}
impl<B, S, X, C> DeltaEnergyRemove<B, S, X, C> for Zero {
#[inline]
fn delta_energy_remove(
&self,
_initial_microstate: &Microstate<B, S, X, C>,
_body_index: usize,
) -> f64 {
0.0
}
}