![]() |
Home | Libraries | People | FAQ | More |
This concept describes how to define a symplectic system written with generalized
coordinate q and generalized
momentum p:
q'(t) = f(p)
p'(t) = g(q)
Such a situation is typically found for Hamiltonian systems with a separable Hamiltonian:
H(p,q) = Hkin(p) + V(q)
which gives the equations of motion:
q'(t) = dHkin / dp = f(p)
p'(t) = dV / dq = g(q)
The algorithmic implementation of this situation is described by a pair of
callable objects for f and g with
a specific parameter signature. Such a system should be implemented as a
std::pair of functions or a functors. Symplectic systems are used in symplectic
steppers like symplectic_rkn_sb3a_mclachlan.
SystemA type that is a model of SymplecticSystem
CoorThe type of the coordinate q
MomentumThe type of the momentum p
CoorDerivThe type of the derivative of coordinate q'
MomentumDerivThe type of the derivative of momentum p'
sys
An object of the type System
qObject of type Coor
pObject of type Momentum
dqdtObject of type CoorDeriv
dpdtObject of type MomentumDeriv
|
Name |
Expression |
Type |
Semantics |
|---|---|---|---|
|
Check for pair |
|
|
Check if System is a pair |
|
Calculate dq/dt = f(p) |
|
|
Calculates f(p), the result is stored into
|
|
Calculate dp/dt = g(q) |
|
|
Calculates g(q), the result is stored into
|