mbsim  4.0.0
MBSim Kernel
MBSim::PHEM56Integrator Class Reference

DAE-Integrator PHEM56. More...

#include <phem56_integrator.h>

Inheritance diagram for MBSim::PHEM56Integrator:
[legend]

Public Types

enum  LinearAlgebra { DEC =0 , DGETRF , unknown }
 

Public Member Functions

void setAbsoluteTolerance (const fmatvec::Vec &aTol_)
 
void setAbsoluteTolerance (double aTol_)
 
void setRelativeTolerance (const fmatvec::Vec &rTol_)
 
void setRelativeTolerance (double rTol_)
 
void setInitialStepSize (double dt0_)
 
void setMaximumStepSize (double dtMax_)
 
void setStepLimit (int maxSteps_)
 
void setLinearAlgebra (LinearAlgebra linearAlgebra_)
 
void setGeneralVMatrix (bool generalVMatrix_)
 
void setInitialProjection (bool initialProjection_)
 
void setNumberOfStepsBetweenProjections (int numberOfStepsBetweenProjections_)
 
void setProjectOntoIndex1ConstraintManifold (bool projectOntoIndex1ConstraintManifold_)
 
const fmatvec::Vec & getAbsoluteTolerance () const
 
const fmatvec::Vec & getRelativeTolerance () const
 
void integrate () override
 start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
 
void initializeUsingXML (xercesc::DOMElement *element) override
 initialize integrator More...
 
virtual void integrate ()=0
 start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
 
void integrate (MBSim::DynamicSystemSolver &sys)
 Convinent function: call setSystem(&sys) and integrate()
 
- Public Member Functions inherited from MBSim::RootFindingIntegrator
void setRootFindingAccuracy (double dtRoot_)
 Define the root-finding accuracy.
 
void setPlotOnRoot (bool b)
 Define wether to trigger a plot before and after each found root.
 
void setToleranceForPositionConstraints (double gMax_)
 Set the maximum allowed position drift.
 
void setToleranceForVelocityConstraints (double gdMax_)
 Set the maximum allowed velocity drift.
 
double getToleranceForPositionConstraints ()
 Get the maximum allowed position drift.
 
double getToleranceForVelocityConstraints ()
 Get the maximum allowed velocity drift.
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 initialize integrator More...
 
- Public Member Functions inherited from MBSim::Integrator
 Integrator ()
 constructor
 
 ~Integrator () override=default
 destructor
 
void setStartTime (double tStart_)
 
void setEndTime (double tEnd_)
 
void setPlotStepSize (double dtPlot_)
 
void setInitialState (const fmatvec::Vec &z0_)
 
double getStartTime () const
 
double getEndTime () const
 
double getPlotStepSize () const
 
const fmatvec::Vec & getInitialState () const override
 
void execute () override
 start solving the dynamic system set by setSystem. More...
 
virtual void integrate ()=0
 start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
 
void integrate (MBSim::DynamicSystemSolver &sys)
 Convinent function: call setSystem(&sys) and integrate()
 
void debugInit ()
 
virtual void preIntegrate ()
 
virtual void subIntegrate (double tStop)
 
virtual void postIntegrate ()
 
void initializeUsingXML (xercesc::DOMElement *element) override
 initialize integrator More...
 
- Public Member Functions inherited from MBSim::Solver
 Solver ()
 constructor
 
 ~Solver () override=default
 destructor
 
void throwError (const std::string &msg) const
 
virtual void execute ()=0
 start solving the dynamic system set by setSystem. More...
 
virtual void postprocessing ()
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
virtual const fmatvec::Vec & getInitialState () const =0
 
void setSystem (DynamicSystemSolver *s)
 
MBSim::DynamicSystemSolvergetSystem ()
 
const MBXMLUtils::DOMEvalExceptiongetDOMEvalError () const
 

Static Private Member Functions

static void fprob (int *ifcn, int *nq, int *nu, int *nx, int *nla, int *nzg, int *nzf, int *lrda, int *nblk, int *nmrc, int *npgp, int *npfl, int *indgr, int *indgc, int *indflr, int *indflc, double *t, double *q, double *u, double *x, double *xl, double *g, double *WT_, double *f, double *wb, double *deltagd_, double *V_, double *qd_, double *xd_, double *M_)
 
static void solout (int *nr, int *nq, int *nu, int *nx, int *nla, int *lrdo, double *q, double *u, double *x, double *a, double *rlam, double *dowk, int *irtrn)
 

Private Attributes

double tPlot {0}
 
double dtOut {0}
 
double s0
 
double time {0}
 
LinearAlgebra linearAlgebra {DGETRF}
 
bool generalVMatrix {true}
 
bool initialProjection {false}
 
int numberOfStepsBetweenProjections {0}
 
bool projectOntoIndex1ConstraintManifold {false}
 
fmatvec::Vec aTol
 
fmatvec::Vec rTol
 
double dt0 {1e-3}
 
int maxSteps {std::numeric_limits<int>::max()}
 
double dtMax {0}
 
fmatvec::RangeV Rv
 
bool drift { false }
 
std::exception_ptr exception
 

Additional Inherited Members

- Protected Member Functions inherited from MBSim::RootFindingIntegrator
bool signChangedWRTsvLast (const fmatvec::Vec &svStepEnd) const
 
- Protected Attributes inherited from MBSim::RootFindingIntegrator
double dtRoot {1e-10}
 
bool plotOnRoot {false}
 
double gMax {-1}
 
double gdMax {-1}
 
fmatvec::Vec svLast
 
bool shift {false}
 
- Protected Attributes inherited from MBSim::Integrator
double tStart {0.}
 start, end, plot time
 
double tEnd {1.}
 
double dtPlot {1e-4}
 
fmatvec::Vec z0
 initial state
 
std::string name
 name of integrator
 
- Protected Attributes inherited from MBSim::Solver
MBSim::DynamicSystemSolversystem
 dynamic system
 
MBXMLUtils::DOMEvalException domEvalError
 Special XML helper variable.
 

Detailed Description

DAE-Integrator PHEM56.

Member Function Documentation

◆ initializeUsingXML()

void MBSim::PHEM56Integrator::initializeUsingXML ( xercesc::DOMElement *  element)
overridevirtual

initialize integrator

Parameters
XMLdescription

Reimplemented from MBSim::RootFindingIntegrator.

◆ integrate() [1/2]

void MBSim::PHEM56Integrator::integrate ( )
overridevirtual

start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first.

Implements MBSim::Integrator.

◆ integrate() [2/2]

virtual void MBSim::Integrator::integrate ( )
virtual

start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first.

Implements MBSim::Integrator.

Member Data Documentation

◆ aTol

fmatvec::Vec MBSim::PHEM56Integrator::aTol
private

Absolute Toleranz

◆ dt0

double MBSim::PHEM56Integrator::dt0 {1e-3}
private

step size for the first step

◆ dtMax

double MBSim::PHEM56Integrator::dtMax {0}
private

maximale step size

◆ generalVMatrix

bool MBSim::PHEM56Integrator::generalVMatrix {true}
private

general V

◆ initialProjection

bool MBSim::PHEM56Integrator::initialProjection {false}
private

initial projection

◆ linearAlgebra

LinearAlgebra MBSim::PHEM56Integrator::linearAlgebra {DGETRF}
private

linear algebra

◆ maxSteps

int MBSim::PHEM56Integrator::maxSteps {std::numeric_limits<int>::max()}
private

maximum number of steps

◆ numberOfStepsBetweenProjections

int MBSim::PHEM56Integrator::numberOfStepsBetweenProjections {0}
private

number of steps between projections

◆ projectOntoIndex1ConstraintManifold

bool MBSim::PHEM56Integrator::projectOntoIndex1ConstraintManifold {false}
private

project onto index 1 constraint manifold

◆ rTol

fmatvec::Vec MBSim::PHEM56Integrator::rTol
private

Relative Toleranz


The documentation for this class was generated from the following files: