Documentation


animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT > Struct Template Reference

#include <explicit_solver.h>

Inheritance diagram for animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >:

animal::integration::Solver< DerivativeF, StepF, TraitsT > List of all members.

Detailed Description

template<int N, class DerivativeF, class StepF, class TraitsT>
struct animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >

Modified midpoint method.

Performs a number of sub-time steps at each time step. This number is given as template parameter N.

Author:
David Bourguignon, iMAGIS-GRAVIR, March 2000, animal/integration/explicit_solver.h
See also:
Solver

Solver_Traits

Definition at line 426 of file explicit_solver.h.

Protected

void setSize (const SizeType size)
 Resize auxiliary containers.

CopyState S1
 State (m-1)th, mth and (m+1)th evaluations.

CopyState S2
 State (m-1)th, mth and (m+1)th evaluations.

CopyState S3
 State (m-1)th, mth and (m+1)th evaluations.


Public Types

typedef TraitsT Traits
 Traits class: includes all type definitions.

typedef Traits::Real Real
 Floating-point value for time.

typedef Traits::State State
 Container of state variables.

typedef Traits::CopyState CopyState
 Container of copies of state variables.

typedef Traits::Derivative Derivative
 Container of derivative variables.

typedef Traits::SizeType SizeType
 Natural number to define container size, typically unsigned int.


Public Member Functions

Constructor
Default constructor is typically used, unless the lower-level objects include special data.

 Modified_Midpoint (const DerivativeF &df=DerivativeF(), const StepF &sf=StepF(), const Traits &tr=Traits())
 Just calls the base class constructor.

Integration scheme
Implementation of the numerical integration method.

void doStep (const State &initial_S, State &final_S, const Derivative &initial_D, const Real t, const Real h)
 Given a state initial_S and a derivative initial_D at time t, integrate over a time step h and write the result in final_S.


Member Typedef Documentation

template<int N, class DerivativeF, class StepF, class TraitsT>
typedef Traits::CopyState animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::CopyState
 

Container of copies of state variables.

Reimplemented from animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 440 of file explicit_solver.h.

template<int N, class DerivativeF, class StepF, class TraitsT>
typedef Traits::Derivative animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::Derivative
 

Container of derivative variables.

Reimplemented from animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 443 of file explicit_solver.h.

template<int N, class DerivativeF, class StepF, class TraitsT>
typedef Traits::Real animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::Real
 

Floating-point value for time.

Reimplemented from animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 434 of file explicit_solver.h.

template<int N, class DerivativeF, class StepF, class TraitsT>
typedef Traits::SizeType animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::SizeType
 

Natural number to define container size, typically unsigned int.

Reimplemented from animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 446 of file explicit_solver.h.

template<int N, class DerivativeF, class StepF, class TraitsT>
typedef Traits::State animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::State
 

Container of state variables.

Reimplemented from animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 437 of file explicit_solver.h.

template<int N, class DerivativeF, class StepF, class TraitsT>
typedef TraitsT animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::Traits
 

Traits class: includes all type definitions.

Reimplemented from animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 431 of file explicit_solver.h.


Constructor & Destructor Documentation

template<int N, class DerivativeF, class StepF, class TraitsT>
animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::Modified_Midpoint const DerivativeF &  df = DerivativeF(),
const StepF &  sf = StepF(),
const Traits tr = Traits()
[inline]
 

Just calls the base class constructor.

Definition at line 458 of file explicit_solver.h.


Member Function Documentation

template<int N, class DerivativeF, class StepF, class TraitsT>
void animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::doStep const State initial_S,
State final_S,
const Derivative initial_D,
const Real  t,
const Real  h
[inline, virtual]
 

Given a state initial_S and a derivative initial_D at time t, integrate over a time step h and write the result in final_S.

This method is typically called indirectly by the operator () of the base class Solver, but it may be called directly if the derivative at the beginning of the time step is known.

Implements animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 481 of file explicit_solver.h.

References animal::integration::Solver< DerivativeF, StepF, TraitsT >::applyStep, animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S1, animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S2, animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S3, and animal::integration::Solver< DerivativeF, StepF, TraitsT >::writeDerivative.

template<int N, class DerivativeF, class StepF, class TraitsT>
void animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::setSize const SizeType  size  )  [inline, protected, virtual]
 

Resize auxiliary containers.

Implements animal::integration::Solver< DerivativeF, StepF, TraitsT >.

Definition at line 531 of file explicit_solver.h.

References animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S1, animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S2, and animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S3.


Member Data Documentation

template<int N, class DerivativeF, class StepF, class TraitsT>
CopyState animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S1 [protected]
 

State (m-1)th, mth and (m+1)th evaluations.

Definition at line 528 of file explicit_solver.h.

Referenced by animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::doStep(), and animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::setSize().

template<int N, class DerivativeF, class StepF, class TraitsT>
CopyState animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S2 [protected]
 

State (m-1)th, mth and (m+1)th evaluations.

Definition at line 528 of file explicit_solver.h.

Referenced by animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::doStep(), and animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::setSize().

template<int N, class DerivativeF, class StepF, class TraitsT>
CopyState animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::S3 [protected]
 

State (m-1)th, mth and (m+1)th evaluations.

Definition at line 528 of file explicit_solver.h.

Referenced by animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::doStep(), and animal::integration::Modified_Midpoint< N, DerivativeF, StepF, TraitsT >::setSize().


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