![]() |
![]() ![]() ![]() ![]() |
![]() |
Symplectic SystemBoost , Chapter 1. Boost.Numeric.Odeint , Concepts
|
||||||||||||||||||||||||||||
![]() |
Home | Libraries | People | FAQ | More |
Эта концепция описывает, как определить симплектическую систему, написанную с обобщенной координатой<q>и обобщенным импульсом.<p>:
q'(t) = f(p)
p'(t) = g(q)
Такая ситуация обычно встречается для гамильтоновых систем с отдельным гамильтоновым:
H(p,q) = Hkin(p) + V(q)
Что дает уравнения движения:
q'(t) = dHkin/ dp = f(p)
p'(t) = dV/dq = g(q)
Алгоритмическая реализация этой ситуации описывается парой вызывающих объектов дляfиgс конкретной подписью параметра. Такая система должна быть реализована как std::пара функций или функторы. Симплектические системы используются в симплектических степперах, таких как<symplectic_rkn_sb3a_mclachlan>.
SystemТип, который является моделью SymplecticSystem
CoorТип координатыq
MomentumТип импульсаp
CoorDerivТип производной координатыq'
MomentumDerivТип производной импульсаp'
sysОбъект такого типа<System>
qОбъект типа Coor
pОбъект типа Momentum
dqdtОбъект типа CoorDeriv
dpdtОбъект типа MomentumDeriv
|
Имя |
выражение |
Тип |
Семантика |
|---|---|---|---|
Проверка пары |
< |
< |
Проверьте, является ли система парой |
Расчетdq/dt = f(p) |
< |
< |
Вычисляетf(p), результат сохраняется в< |
Вычислитьdp/dt = g(q) |
< |
< |
Вычисляетг(к), результат сохраняется в< |
Статья Symplectic System раздела Chapter 1. Boost.Numeric.Odeint Concepts может быть полезна для разработчиков на c++ и boost.
реклама |