pub enum KineticEnergyKind {
Euclidean,
ExactNormal,
Microcanonical,
}Expand description
Selects the kinetic-energy form (and thus the integrator) used by
[TransformedHamiltonian].
Variants§
Euclidean
Standard Euclidean kinetic energy K = ½ ‖v‖².
Uses the ordinary leapfrog integrator (velocity Verlet).
ExactNormal
Geodesic leapfrog that is exact for a standard-normal potential.
Position and velocity are rotated together in each 2-D plane (q_i, v_i).
Microcanonical
Microcanonical / isokinetic HMC using ESH dynamics (Steeg & Gallagher 2021, ported from the BlackJAX implementation).
The momentum is constrained to the unit sphere (‖v‖ = 1).
The momentum update uses the ESH formula which preserves ‖v‖ = 1 exactly
while tracking the cumulative kinetic-energy change needed for the
Metropolis accept/reject decision.
No partial momentum refreshment is performed — this variant only implements the deterministic ESH trajectory.
Trait Implementations§
Source§impl Clone for KineticEnergyKind
impl Clone for KineticEnergyKind
Source§fn clone(&self) -> KineticEnergyKind
fn clone(&self) -> KineticEnergyKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for KineticEnergyKind
impl Debug for KineticEnergyKind
Source§impl Default for KineticEnergyKind
impl Default for KineticEnergyKind
Source§fn default() -> KineticEnergyKind
fn default() -> KineticEnergyKind
Source§impl<'de> Deserialize<'de> for KineticEnergyKind
impl<'de> Deserialize<'de> for KineticEnergyKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for KineticEnergyKind
impl PartialEq for KineticEnergyKind
Source§impl Serialize for KineticEnergyKind
impl Serialize for KineticEnergyKind
impl Copy for KineticEnergyKind
impl Eq for KineticEnergyKind
impl StructuralPartialEq for KineticEnergyKind
Auto Trait Implementations§
impl Freeze for KineticEnergyKind
impl RefUnwindSafe for KineticEnergyKind
impl Send for KineticEnergyKind
impl Sync for KineticEnergyKind
impl Unpin for KineticEnergyKind
impl UnsafeUnpin for KineticEnergyKind
impl UnwindSafe for KineticEnergyKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more