Skip to main content

HamiltonianSystem

Trait HamiltonianSystem 

Source
pub trait HamiltonianSystem {
    // Required methods
    fn ndof(&self) -> usize;
    fn hamiltonian(&self, q: &[f64], p: &[f64]) -> f64;
    fn dh_dq(&self, q: &[f64], p: &[f64]) -> Vec<f64>;
    fn dh_dp(&self, q: &[f64], p: &[f64]) -> Vec<f64>;
}
Expand description

A Hamiltonian system with n degrees of freedom.

State is (q1,…,qn, p1,…,pn). Implement hamiltonian(), dh_dq(), and dh_dp().

Required Methods§

Source

fn ndof(&self) -> usize

Number of degrees of freedom.

Source

fn hamiltonian(&self, q: &[f64], p: &[f64]) -> f64

Evaluate the Hamiltonian H(q, p).

Source

fn dh_dq(&self, q: &[f64], p: &[f64]) -> Vec<f64>

Partial derivatives ∂H/∂q (forces, length ndof).

Source

fn dh_dp(&self, q: &[f64], p: &[f64]) -> Vec<f64>

Partial derivatives ∂H/∂p (velocities, length ndof).

Implementors§