#![allow(dead_code)]
use super::ThreebodyAngleEnergy;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(
feature = "serde",
derive(Deserialize, Serialize),
serde(deny_unknown_fields)
)]
pub struct CosineTorsion {
#[cfg_attr(feature = "serde", serde(rename = "aeq"))]
eq_angle: f64,
#[cfg_attr(feature = "serde", serde(rename = "k"))]
spring_constant: f64,
}
impl CosineTorsion {
pub const fn new(eq_angle: f64, spring_constant: f64) -> Self {
Self {
eq_angle,
spring_constant,
}
}
}
impl ThreebodyAngleEnergy for CosineTorsion {
#[inline(always)]
fn threebody_angle_energy(&self, _angle: f64) -> f64 {
todo!("Cosine torsion is not yet implemented.")
}
}