| Home | Libraries | People | FAQ | More

### Simple Symplectic System

##### Description

In most Hamiltonian systems the kinetic term is a quadratic term in the momentum Hkin = p^2 / 2m and in many cases it is possible to rescale coordinates and set m=1 which leads to a trivial equation of motion:

q'(t) = f(p) = p.

while for p' we still have the general form

p'(t) = g(q)

As this case is very frequent we introduced a concept where only the nontrivial equation for p' has to be provided to the symplectic stepper. We call this concept SimpleSymplecticSystem

##### Notation

System

  A type that is a model of SimpleSymplecticSystem

Coor

  The type of the coordinate q

MomentumDeriv

  The type of the derivative of momentum p'

sys

  An object that models System

q

  Object of type Coor

dpdt

  Object of type MomentumDeriv

##### Valid Expressions

Name | Expression | Type | Semantics
--- | --- | --- | ---
Check for pair | `boost::is_pair< System >::type` | `boost::mpl::false_` | Check if System is a pair, should be evaluated to false in this case.
Calculate dp/dt = g(q) | `sys( q , dpdt )` | `void` | Calculates g(q), the result is stored into `dpdt`