Documentation


animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration > Class Template Reference

#include <integrator.h>

List of all members.


Detailed Description

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
class animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >

Apply explicit time integration of a given function for second-order differential equation: acceleration(position, velocity) Handles auxiliary variables and their resizing.

Template parameters:

Definition at line 319 of file integrator.h.

Public Member Functions

 ExplicitIntegrator2 (ComputeAcceleration &d)
 Construct using the derivator.

template<class P, class V> void euler (P &pos, V &vel, Real h, Real t=0)
 Apply euler time integration.

template<class P, class V> void rk2 (P &pos, V &vel, Real h, Real t=0)
 Apply second-order Runge-Kutta time integration.

template<class P, class V> void rk4 (P &pos, V &vel, Real h, Real t=0)
 Apply fourth-order Runge-Kutta time integration.

template<class P, class V> void modmid (P &pos, V &vel, Real h, int n, Real t=0)
 Apply modified midpoint time integration.


Protected Types

typedef Derivs< Velocities,
Accelerations
Der
 Derivs.

typedef States< Positions,
Velocities
Sta
 States.


Protected Attributes

Velocities dv1
 Auxiliary value to store a derivative (velocity).

Accelerations da1
 Auxiliary value to store a derivative (acceleration).

Der d1
 Auxiliary value to store a derivative (velocity,acceleration).

Velocities dv2
 Auxiliary value to store a derivative (velocity).

Accelerations da2
 Auxiliary value to store a derivative (acceleration).

Der d2
 Auxiliary value to store a derivative (velocity,acceleration).

Velocities dv3
 Auxiliary value to store a derivative (velocity).

Accelerations da3
 Auxiliary value to store a derivative (acceleration).

Der d3
 Auxiliary value to store a derivative (velocity,acceleration).

Velocities dv4
 Auxiliary value to store a derivative (velocity).

Accelerations da4
 Auxiliary value to store a derivative (acceleration).

Der d4
 Auxiliary value to store a derivative (velocity,acceleration).

Positions sp1
 Auxiliary value to store a state (positions).

Velocities sv1
 Auxiliary value to store a state (velocities).

Sta s1
 Auxiliary value to store a state (positions, velocities).

Positions sp2
 Auxiliary value to store a state (positions).

Velocities sv2
 Auxiliary value to store a state (velocities).

Sta s2
 Auxiliary value to store a state (positions, velocities).

Positions sp3
 Auxiliary value to store a state (positions).

Velocities sv3
 Auxiliary value to store a state (velocities).

Sta s3
 Auxiliary value to store a state (positions, velocities).


Private Types

typedef animal::VectorVec<
Position > 
Positions
 vector of positions

typedef animal::VectorVec<
Velocity > 
Velocities
 vector of velocities

typedef animal::VectorVec<
Acceleration > 
Accelerations
 vector of accelerations


Private Attributes

Derivator eq_deriv
 A functor which computes the time derivative of a given state.


Member Typedef Documentation

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
typedef animal::VectorVec<Acceleration> animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::Accelerations [private]
 

vector of accelerations

Definition at line 328 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
typedef Derivs<Velocities,Accelerations> animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::Der [protected]
 

Derivs.

Definition at line 434 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
typedef animal::VectorVec<Position> animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::Positions [private]
 

vector of positions

Definition at line 322 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
typedef States<Positions,Velocities> animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::Sta [protected]
 

States.

Definition at line 453 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
typedef animal::VectorVec<Velocity> animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::Velocities [private]
 

vector of velocities

Definition at line 325 of file integrator.h.


Constructor & Destructor Documentation

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2 ComputeAcceleration &  d  )  [inline]
 

Construct using the derivator.

Definition at line 354 of file integrator.h.

References animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da1, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da2, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da3, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da4, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv1, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv2, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv3, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv4, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sp1, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sp2, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sp3, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sv1, animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sv2, and animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sv3.


Member Function Documentation

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
template<class P, class V>
void animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::euler P &  pos,
V &  vel,
Real  h,
Real  t = 0
[inline]
 

Apply euler time integration.

Class States is a container with entry type equal or compatible with State.

Parameters:
pos positions
vel velocities
h time step
t current time

Definition at line 372 of file integrator.h.

References animal::integrate_euler(), animal::Derivs< Vels, Accs >::resize(), and animal::size().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
template<class P, class V>
void animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::modmid P &  pos,
V &  vel,
Real  h,
int  n,
Real  t = 0
[inline]
 

Apply modified midpoint time integration.

Class States is a container with entry type equal or compatible with State.

Parameters:
pos positions
vel velocities
h time step
n number of substeps
t current time

Definition at line 422 of file integrator.h.

References animal::integrate_modmid(), animal::States< Poss, Vels >::resize(), animal::Derivs< Vels, Accs >::resize(), and animal::size().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
template<class P, class V>
void animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::rk2 P &  pos,
V &  vel,
Real  h,
Real  t = 0
[inline]
 

Apply second-order Runge-Kutta time integration.

Class States is a container with entry type equal or compatible with State.

Parameters:
pos positions
vel velocities
h time step
t current time

Definition at line 388 of file integrator.h.

References animal::integrate_rk2(), animal::States< Poss, Vels >::resize(), animal::Derivs< Vels, Accs >::resize(), and animal::size().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
template<class P, class V>
void animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::rk4 P &  pos,
V &  vel,
Real  h,
Real  t = 0
[inline]
 

Apply fourth-order Runge-Kutta time integration.

Class States is a container with entry type equal or compatible with State.

Parameters:
pos positions
vel velocities
h time step
t current time

Definition at line 403 of file integrator.h.

References animal::integrate_rk4(), animal::States< Poss, Vels >::resize(), animal::Derivs< Vels, Accs >::resize(), and animal::size().


Member Data Documentation

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Der animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::d1 [protected]
 

Auxiliary value to store a derivative (velocity,acceleration).

Definition at line 438 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Der animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::d2 [protected]
 

Auxiliary value to store a derivative (velocity,acceleration).

Definition at line 442 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Der animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::d3 [protected]
 

Auxiliary value to store a derivative (velocity,acceleration).

Definition at line 446 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Der animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::d4 [protected]
 

Auxiliary value to store a derivative (velocity,acceleration).

Definition at line 450 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Accelerations animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da1 [protected]
 

Auxiliary value to store a derivative (acceleration).

Definition at line 437 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Accelerations animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da2 [protected]
 

Auxiliary value to store a derivative (acceleration).

Definition at line 441 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Accelerations animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da3 [protected]
 

Auxiliary value to store a derivative (acceleration).

Definition at line 445 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Accelerations animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::da4 [protected]
 

Auxiliary value to store a derivative (acceleration).

Definition at line 449 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Velocities animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv1 [protected]
 

Auxiliary value to store a derivative (velocity).

Definition at line 436 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Velocities animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv2 [protected]
 

Auxiliary value to store a derivative (velocity).

Definition at line 440 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Velocities animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv3 [protected]
 

Auxiliary value to store a derivative (velocity).

Definition at line 444 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Velocities animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::dv4 [protected]
 

Auxiliary value to store a derivative (velocity).

Definition at line 448 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Derivator animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::eq_deriv [private]
 

A functor which computes the time derivative of a given state.

Definition at line 351 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Sta animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::s1 [protected]
 

Auxiliary value to store a state (positions, velocities).

Definition at line 457 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Sta animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::s2 [protected]
 

Auxiliary value to store a state (positions, velocities).

Definition at line 461 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Sta animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::s3 [protected]
 

Auxiliary value to store a state (positions, velocities).

Definition at line 465 of file integrator.h.

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Positions animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sp1 [protected]
 

Auxiliary value to store a state (positions).

Definition at line 455 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Positions animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sp2 [protected]
 

Auxiliary value to store a state (positions).

Definition at line 459 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Positions animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sp3 [protected]
 

Auxiliary value to store a state (positions).

Definition at line 463 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Velocities animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sv1 [protected]
 

Auxiliary value to store a state (velocities).

Definition at line 456 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Velocities animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sv2 [protected]
 

Auxiliary value to store a state (velocities).

Definition at line 460 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().

template<class Position, class Velocity, class ComputeAcceleration, class Real, class Acceleration = Velocity>
Velocities animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::sv3 [protected]
 

Auxiliary value to store a state (velocities).

Definition at line 464 of file integrator.h.

Referenced by animal::ExplicitIntegrator2< Position, Velocity, ComputeAcceleration, Real, Acceleration >::ExplicitIntegrator2().


The documentation for this class was generated from the following file:
Generated on Thu Dec 23 13:52:30 2004 by doxygen 1.3.6