SIMLIB/C++
3.07
|
Abstract base class for integration methods with status auxiliary memories. More...
#include <simlib.h>
Classes | |
class | StatusMemory |
Public Member Functions | |
StatusMethod (const char *name) | |
initialization More... | |
virtual | ~StatusMethod () |
virtual void | TurnOff (void) override |
turn off integration method: flush memories etc... More... | |
virtual bool | PrepareStep (void) override |
prepare object for integration step More... | |
virtual void | StatusResize (size_t size) |
resize status memories to the given size More... | |
![]() | |
SingleStepMethod (const char *name) | |
virtual bool | IsSingleStep (void) override |
void | SetStartMode (bool start_mode) |
bool | IsStartMode (void) |
![]() | |
IntegrationMethod (const char *name) | |
register method to list of methods and name it More... | |
virtual | ~IntegrationMethod () |
destroy integration method (remove from list) More... | |
virtual void | Integrate (void)=0 |
virtual void | Resize (size_t size) |
resize all the memories to the given size More... | |
Protected Types | |
typedef StatusContainer::iterator | StatusIterator |
![]() | |
typedef IntegratorContainer::iterator | Iterator |
Static Protected Member Functions | |
static StatusIterator | FirstStatus (void) |
static StatusIterator | LastStatus (void) |
static void | StoreState (Memory &di, Memory &si, StatusMemory &xi) |
store state of integrators and status variables More... | |
static void | RestoreState (double dthlf, Memory &di, Memory &si, StatusMemory &xi) |
restore state of integrators and status variables More... | |
static void | GoToState (Memory &di, Memory &si, StatusMemory &xi) |
move startpoint to given state More... | |
![]() | |
static Iterator | FirstIntegrator (void) |
static Iterator | LastIntegrator (void) |
static bool | StateCond (void) |
check on changes of state conditions More... | |
static IntegrationMethod * | SearchMethod (const char *name) |
search method in the list of registrated methods More... | |
Private Member Functions | |
StatusMethod (const StatusMethod &)=delete | |
Private Attributes | |
size_t | PrevStatusNum |
std::list< Memory * > | StatusMList |
Static Private Attributes | |
static std::list< Memory * > * | PtrStatusMList |
Friends | |
class | EULER |
class | RKE |
class | StatusMemory |
Additional Inherited Members | |
![]() | |
static void | StepSim (void) |
step of numerical integration method More... | |
static void | IntegrationDone (void) |
static void | SetMethod (const char *name) |
set method which will be used More... | |
static const char * | GetMethod (void) |
static void | InitStep (double step_frag) |
initialize step More... | |
static void | FunCall (double step_frag) |
static void | SetOptStep (double opt_step) |
static void | SetStepSize (double step_size) |
static bool | IsConditionFlag (void) |
static int | GetErrNo (void) |
static void | SetErrNo (int num) |
![]() | |
static bool | IsEndStepEvent =false |
Abstract base class for integration methods with status auxiliary memories.
|
protected |
|
privatedelete |
|
explicit |
initialization
Definition at line 517 of file numint.cc.
References Dprintf, PtrStatusMList, and StatusMList.
|
inlinevirtual |
|
inlinestaticprotected |
Definition at line 1194 of file simlib.h.
References simlib3::StatusContainer::Begin().
|
staticprotected |
move startpoint to given state
Definition at line 622 of file numint.cc.
References simlib3::abm4, simlib3::IntegratorContainer::Begin(), simlib3::StatusContainer::Begin(), simlib3::IntegrationMethod::CurrentMethodPtr, simlib3::IntegratorContainer::End(), simlib3::StatusContainer::End(), simlib3::euler, simlib3::fw, simlib3::IntegrationMethod::IsEndStepEvent, simlib3::IntegrationMethod::MthLstPtr, simlib3::IntegrationMethod::Memory::page_size, simlib3::IntegrationMethod::PtrMList, PtrStatusMList, simlib3::rke, simlib3::rkf3, simlib3::rkf5, and simlib3::rkf8.
Referenced by simlib3::EULER::Integrate(), and simlib3::RKE::Integrate().
|
inlinestaticprotected |
Definition at line 1197 of file simlib.h.
References simlib3::StatusContainer::End().
|
overridevirtual |
prepare object for integration step
Reimplemented from simlib3::IntegrationMethod.
Definition at line 539 of file numint.cc.
References Dprintf, simlib3::IntegrationMethod::PrepareStep(), PrevStatusNum, simlib3::StatusContainer::Size(), and StatusResize().
|
staticprotected |
restore state of integrators and status variables
Definition at line 594 of file numint.cc.
References _SetTime, simlib3::IntegratorContainer::Begin(), simlib3::StatusContainer::Begin(), simlib3::IntegratorContainer::End(), simlib3::StatusContainer::End(), simlib3::IntegrationMethod::IsEndStepEvent, simlib3::SIMLIB_StepStartTime, and simlib3::Time.
Referenced by simlib3::EULER::Integrate(), and simlib3::RKE::Integrate().
|
virtual |
resize status memories to the given size
Definition at line 557 of file numint.cc.
References Dprintf, and StatusMList.
Referenced by PrepareStep(), and TurnOff().
|
staticprotected |
store state of integrators and status variables
Definition at line 570 of file numint.cc.
References simlib3::IntegratorContainer::Begin(), simlib3::StatusContainer::Begin(), simlib3::IntegratorContainer::End(), and simlib3::StatusContainer::End().
Referenced by simlib3::EULER::Integrate(), and simlib3::RKE::Integrate().
|
overridevirtual |
turn off integration method: flush memories etc...
Reimplemented from simlib3::IntegrationMethod.
Definition at line 528 of file numint.cc.
References Dprintf, PrevStatusNum, StatusResize(), and simlib3::IntegrationMethod::TurnOff().
|
friend |
|
private |
Definition at line 1189 of file simlib.h.
Referenced by PrepareStep(), and TurnOff().
|
staticprivate |
Definition at line 1191 of file simlib.h.
Referenced by GoToState(), and StatusMethod().
|
private |
Definition at line 1190 of file simlib.h.
Referenced by StatusMethod(), and StatusResize().