Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Click here to view the latest version of this page.
Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

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


PrevUpHomeNext