All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Protected Attributes | List of all members
MBSimIntegrator::AutoTimeSteppingSSCIntegrator Class Reference

Explicit and Implicit time-stepping integrator of first or higer order with StepSize Control (SSC) StepSizeControl, GapControl, Extrapolation und concept analogue to TimeSteppingSSCIntegrator. More...

#include <auto_time_stepping_ssc_integrator.h>

Inheritance diagram for MBSimIntegrator::AutoTimeSteppingSSCIntegrator:
MBSimIntegrator::Integrator MBSim::Solver fmatvec::Atom

Public Member Functions

 AutoTimeSteppingSSCIntegrator ()
 
 ~AutoTimeSteppingSSCIntegrator ()
 
void setInitialStepSize (double dt_)
 
void setStepSizeMax (double dtMax_)
 
void setStepSizeMin (double dtMin_)
 
void setmaxGainSSC (double maxGain)
 
void setSafetyFactorSSC (double sfactor)
 
void setSafetyFactorGapControl (double s)
 
void setOutputInterpolation (bool flag=true)
 
void setFlagPlotIntegrator (bool flag=true)
 
void setGapControl (int strategy=1)
 
void setDriftCompensation (bool dc)
 
void setMaxOrder (int order_, int method_=0)
 
void deactivateSSC (bool flag=false)
 
void setFlagErrorTest (int Flag, bool alwaysValid=true)
 
void integrate (MBSim::DynamicSystemSolver &system_)
 
void integrate (MBSim::DynamicSystemSolver &system_, std::vector< MBSim::DynamicSystemSolver * > systems)
 
void integrate (MBSim::DynamicSystemSolver &systemT1_, MBSim::DynamicSystemSolver &systemT2_, MBSim::DynamicSystemSolver &systemT3_, MBSim::DynamicSystemSolver &systemTP_, int Threads=0)
 
void integrate (MBSim::DynamicSystemSolver &systemT1_, MBSim::DynamicSystemSolver &systemT2_, MBSim::DynamicSystemSolver &systemT3_, MBSim::DynamicSystemSolver &systemTP_, std::vector< MBSim::DynamicSystemSolver * > systems, int Threads=0)
 
void setAbsoluteTolerance (const fmatvec::Vec &aTol_)
 
void setAbsoluteTolerance (double aTol_)
 
void setRelativeTolerance (const fmatvec::Vec &rTol_)
 
void setRelativeTolerance (double rTol_)
 
void setgapTolerance (double gTol)
 
void preIntegrate (MBSim::DynamicSystemSolver &system)
 
void subIntegrate (MBSim::DynamicSystemSolver &system, double tStop)
 
void postIntegrate (MBSim::DynamicSystemSolver &system)
 
void preIntegrate (MBSim::DynamicSystemSolver &systemT1_, MBSim::DynamicSystemSolver &systemT2_, MBSim::DynamicSystemSolver &systemT3_, MBSim::DynamicSystemSolver &systemTP_)
 
void getAllSetValuedla (fmatvec::Vec &la_, fmatvec::VecInt &la_Sizes, std::vector< MBSim::Link * > &SetValuedLinkList)
 
void setAllSetValuedla (const fmatvec::Vec &la_, const fmatvec::VecInt &la_Sizes, std::vector< MBSim::Link * > &SetValuedLinkList)
 
void getDataForGapControl ()
 
bool testTolerances ()
 
bool GapControl (double qUnsafe, bool SSCTestOK)
 
bool changedLinkStatus (const fmatvec::VecInt &L1, const fmatvec::VecInt &L2, int ex)
 
double calculatedtNewRel (const fmatvec::Vec &ErrorLocal, double H)
 
void plot ()
 
void plotPar ()
 
void doIntegPlot ()
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 initialize integrator More...
 
void update (MBSim::DynamicSystemSolver &system, const fmatvec::Vec &z, double t, int nrSys_=1)
 special update of dynamic system for theta time stepping integrator More...
 
void doStep (MBSim::DynamicSystemSolver &system_, fmatvec::Vec &z_, int nrSys_, double t_, double dt_, bool exp_)
 
void doExpStep (MBSim::DynamicSystemSolver &system_, fmatvec::Vec &z_, int nrSys_, double t_, double dt_)
 Do One Explicit Time Integration Step. More...
 
void doImpStep (MBSim::DynamicSystemSolver &system_, fmatvec::Vec &z_, int nrSys_, double t_, double dt_)
 Do One Implicit Time Integration Step. More...
 
void doLinImpStep (MBSim::DynamicSystemSolver &system_, fmatvec::Vec &z_, int nrSys_, double t_, double dt_)
 Do One Linear Implicit Time Integration Step. More...
 
void setTheta (double theta_)
 
void getdhdqdhdu (fmatvec::Mat &dhdq_, fmatvec::Mat &dhdu_, const fmatvec::Vec z_, const double t_, const int nsys_)
 
void setItMax (int itMax_)
 
void setInexactJac (bool inexactJac_)
 
void setItTol (double itTol_)
 
void setSetValuedForceLawsExplicit (bool SetValuedForceLawsExplicit_)
 
void setDebugOutput (bool debugOutput_)
 
void setPlotParallel (bool plotParallel_)
 
- Public Member Functions inherited from MBSimIntegrator::Integrator
 Integrator ()
 constructor
 
virtual ~Integrator ()
 destructor
 
void setStartTime (double tStart_)
 
void setEndTime (double tEnd_)
 
void setPlotStepSize (double dtPlot_)
 
void setInitialState (const fmatvec::Vec &z0_)
 
void setWarnLevel (int level)
 
void setOutput (bool flag)
 
double getStartTime () const
 
double getEndTime () const
 
double getPlotStepSize () const
 
const fmatvec::VecgetInitialState () const
 
int getWarnLevel () const
 
bool getOutput () const
 
void execute (MBSim::DynamicSystemSolver &system)
 start solving the dynamic system More...
 
void debugInit ()
 
virtual std::string getType () const
 
- Public Member Functions inherited from MBSim::Solver
 Solver ()
 constructor
 
virtual ~Solver ()
 destructor
 
- Public Member Functions inherited from fmatvec::Atom
Atomoperator= (const Atom &)
 
void setMessageStreamActive (MsgType type, bool active)
 
void getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s)
 
void adoptMessageStreams (const Atom *src=NULL)
 
std::ostream & msg (MsgType type)
 
bool msgAct (MsgType type)
 

Protected Attributes

MBSim::DynamicSystemSolversysT1
 
MBSim::DynamicSystemSolversysT2
 
MBSim::DynamicSystemSolversysT3
 
MBSim::DynamicSystemSolversysTP
 
double dt
 
double dtOld
 
double dte
 
double dtMin
 
double dtMax
 
double dt_SSC_vorGapControl
 
bool driftCompensation
 
double t
 
double tPlot
 
double tPlotP
 
int qSize
 
int xSize
 
int uSize
 
int zSize
 
fmatvec::Vec ze
 
fmatvec::Vec zeP
 
fmatvec::Vec zi
 
fmatvec::Vec ziP
 
fmatvec::Vec zT1
 
fmatvec::Vec zT2
 
fmatvec::Vec zT3
 
fmatvec::Vec zTP
 
fmatvec::Vec z1d
 
fmatvec::Vec z2d
 
fmatvec::Vec z2dRE
 
fmatvec::Vec z3d
 
fmatvec::Vec z4d
 
fmatvec::Vec z6d
 
fmatvec::Vec z2b
 
fmatvec::Vec z3b
 
fmatvec::Vec z4b
 
fmatvec::Vec z6b
 
fmatvec::Vec zStern
 
fmatvec::VecInt LS
 
fmatvec::VecInt LSe
 
fmatvec::VecInt LSA
 
fmatvec::VecInt LSB1
 
fmatvec::VecInt LSB2
 
fmatvec::VecInt LSC1
 
fmatvec::VecInt LSC2
 
fmatvec::VecInt LSC3
 
fmatvec::VecInt LSC4
 
fmatvec::VecInt LSD1
 
fmatvec::VecInt LSD2
 
fmatvec::VecInt LSD3
 
fmatvec::VecInt LSD4
 
fmatvec::VecInt LSD5
 
fmatvec::VecInt LSD6
 
fmatvec::VecInt LS_Reg
 
fmatvec::VecInt LSe_Reg
 
fmatvec::VecInt LSA_Reg
 
fmatvec::VecInt LSB1_Reg
 
fmatvec::VecInt LSB2_Reg
 
fmatvec::VecInt LSC1_Reg
 
fmatvec::VecInt LSC2_Reg
 
fmatvec::VecInt LSC3_Reg
 
fmatvec::VecInt LSC4_Reg
 
fmatvec::VecInt LSD1_Reg
 
fmatvec::VecInt LSD2_Reg
 
fmatvec::VecInt LSD3_Reg
 
fmatvec::VecInt LSD4_Reg
 
fmatvec::VecInt LSD5_Reg
 
fmatvec::VecInt LSD6_Reg
 
fmatvec::VecInt LS_Reg_T1
 
fmatvec::VecInt LS_Reg_T2
 
fmatvec::VecInt LS_Reg_T3
 
fmatvec::VecInt LS_Reg_z2b
 
fmatvec::VecInt S_Reg_z1d
 
fmatvec::VecInt LS_Reg_z4b
 
fmatvec::VecInt LS_Reg_z6b
 
fmatvec::VecInt LS_Reg_z1d
 
fmatvec::VecInt LS_Reg_z3b
 
fmatvec::VecInt LSB1_2_Reg
 
fmatvec::VecInt LS_tmp
 
fmatvec::Vec la
 
fmatvec::Vec laP
 
fmatvec::Vec lae
 
fmatvec::Vec laeP
 
fmatvec::Vec la1d
 
fmatvec::Vec la2b
 
fmatvec::VecInt laSizes
 
fmatvec::VecInt laSizesP
 
fmatvec::VecInt laeSizes
 
fmatvec::VecInt laeSizesP
 
fmatvec::VecInt la1dSizes
 
fmatvec::VecInt la2bSizes
 
fmatvec::Vec qT1
 
fmatvec::Vec qT2
 
fmatvec::Vec qT3
 
fmatvec::Vec qTP
 
fmatvec::Vec uT1
 
fmatvec::Vec uT2
 
fmatvec::Vec uT3
 
fmatvec::Vec uTP
 
fmatvec::Vec xT1
 
fmatvec::Vec xT2
 
fmatvec::Vec xT3
 
fmatvec::Vec xTP
 
fmatvec::Vec gInActive
 
fmatvec::Vec gdInActive
 
std::vector< MBSim::Link * > SetValuedLinkListT1
 
std::vector< MBSim::Link * > SetValuedLinkListT2
 
std::vector< MBSim::Link * > SetValuedLinkListT3
 
std::vector< MBSim::Link * > SetValuedLinkListTP
 
int StepsWithUnchangedConstraints
 
int FlagErrorTest
 
bool FlagErrorTestAlwaysValid
 
fmatvec::Vec aTol
 
fmatvec::Vec rTol
 
bool FlagSSC
 
int maxOrder
 
int method
 
bool FlagGapControl
 
double gapTol
 
double maxGainSSC
 
double safetyFactorSSC
 
std::ofstream integPlot
 
bool FlagPlotIntegrator
 
bool FlagPlotIntegrationSum
 
bool FlagCoutInfo
 
bool FlagPlotEveryStep
 
bool outputInterpolation
 
double safetyFactorGapControl
 
int GapControlStrategy
 
int numThreads
 
int numThreadsB1
 
double time
 
double dhdztime
 
double timeB1
 
double timeB2
 
double timePlot
 
double timePlotPar
 
MBSim::StopWatch Timer
 
MBSim::StopWatch dhdzTimer
 
MBSim::StopWatch TimerB1
 
MBSim::StopWatch TimerB2
 
MBSim::StopWatch TimerPlot
 
MBSim::StopWatch TimerPlotPar
 
int iter
 
int iterA
 
int iterB1
 
int iterB2
 
int iterC1
 
int iterC2
 
int iterC3
 
int iterC4
 
int iterB2RE
 
int maxIterUsed
 
int maxIter
 
int sumIter
 
int integrationSteps
 
int integrationStepswithChange
 
int refusedSteps
 
int refusedStepsWithImpact
 
int JacUpdateT1
 
int JacUpdateT2
 
int JacUpdateT3
 
int wrongAlertGapControl
 
int stepsOkAfterGapControl
 
int stepsRefusedAfterGapControl
 
int statusGapControl
 
int singleStepsT1
 
int singleStepsT2
 
int singleStepsT3
 
double dtRelGapControl
 
double qUncertaintyByExtrapolation
 
int indexLSException
 
fmatvec::Vec gUniActive
 
double Penetration
 
double PenetrationCounter
 
double PenetrationLog
 
double PenetrationMin
 
double PenetrationMax
 
double maxdtUsed
 
double mindtUsed
 
bool ChangeByGapControl
 
bool calcBlock2
 
bool IterConvergence
 
bool ConstraintsChanged
 
bool ConstraintsChangedBlock1
 
bool ConstraintsChangedBlock2
 
bool ConstraintsChanged_B1_A
 
int integrationStepsOrder1
 
int integrationStepsOrder2
 
int order
 
int StepTrials
 
int AnzahlAktiverKontakte
 
double gNDurchschnittprostep
 
int iter_T1
 
int iter_T2
 
int iter_T3
 
int step
 
fmatvec::RangeV Iq
 
fmatvec::RangeV Iu
 
fmatvec::RangeV Ix
 
bool expInt
 
int it_T1
 
int it_T2
 
int it_T3
 
bool gAC_T1
 
bool gAC_T2
 
bool gAC_T3
 
bool gAC_reg_T1
 
bool gAC_reg_T2
 
bool gAC_reg_T3
 
bool upgedated_T1
 
bool upgedated_T2
 
bool upgedated_T3
 
bool JacUpdate_B1_T1
 
bool JacUpdate_B2_T1
 
bool JacUpdate_B1_T2
 
bool JacUpdate_B2_T2
 
bool JacUpdate_T1
 
bool JacUpdate_T2
 
int itMax
 
double itTol
 
fmatvec::Mat dhdq_n_T1
 
fmatvec::Mat dhdu_n_T1
 
fmatvec::Mat dhdq_n_T2
 
fmatvec::Mat dhdu_n_T2
 
fmatvec::Mat dhdq_n_T3
 
fmatvec::Mat dhdu_n_T3
 
fmatvec::Mat dhdq_T1
 
fmatvec::Mat dhdu_T1
 
fmatvec::Mat dhdq_T2
 
fmatvec::Mat dhdu_T2
 
fmatvec::Mat dhdq_T3
 
fmatvec::Mat dhdu_T3
 
fmatvec::Mat dhdq_z1d
 
fmatvec::Mat dhdu_z1d
 
fmatvec::Mat dhdq_z2b
 
fmatvec::Mat dhdq_z3b
 
fmatvec::Mat dhdq_z4b
 
fmatvec::Mat dhdq_z6b
 
fmatvec::Mat dhdu_z2b
 
fmatvec::Mat dhdu_z3b
 
fmatvec::Mat dhdu_z4b
 
fmatvec::Mat dhdu_z6b
 
fmatvec::Mat dhdq_end
 
fmatvec::Mat dhdu_end
 
fmatvec::Mat dhdq_z2d
 
fmatvec::Mat dhdu_z2d
 
fmatvec::Mat dhdq_z2dRE
 
fmatvec::Mat dhdu_z2dRE
 
fmatvec::Mat dhdq_z3d
 
fmatvec::Mat dhdu_z3d
 
fmatvec::Mat dhdq_z4d
 
fmatvec::Mat dhdu_z4d
 
fmatvec::Mat dhdq_z6d
 
fmatvec::Mat dhdu_z6d
 
double theta
 
bool parJac
 
bool parInt
 
std::vector
< MBSim::DynamicSystemSolver * > * 
psystems
 
bool inexactJac
 
int maxImpIter
 
int JacConstSteps
 
bool SetValuedForceLawsExplicit
 
bool debugOutput
 
bool plotParallel
 
fmatvec::Mat JacVgl
 
fmatvec::Mat JacVgl2
 
fmatvec::Mat JacVgl3
 
int JacCounter
 
- Protected Attributes inherited from MBSimIntegrator::Integrator
double tStart
 start, end, plot time
 
double tEnd
 
double dtPlot
 
fmatvec::Vec z0
 initial state
 
int warnLevel
 warn level
 
bool output
 flag for ouput printing
 
std::string name
 name of integrator
 

Additional Inherited Members

- Public Types inherited from fmatvec::Atom
enum  MsgType
 
- Static Public Member Functions inherited from MBSimIntegrator::Integrator
static IntegratorreadXMLFile (const std::string &filename)
 
- Static Public Member Functions inherited from fmatvec::Atom
static void setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf()))
 
static std::ostream & msgStatic (MsgType type)
 
static bool msgActStatic (MsgType type)
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 
- Static Protected Attributes inherited from MBSim::Solver
static DynamicSystemSolversystem = 0
 dynamic system
 

Detailed Description

Explicit and Implicit time-stepping integrator of first or higer order with StepSize Control (SSC) StepSizeControl, GapControl, Extrapolation und concept analogue to TimeSteppingSSCIntegrator.

important options / settings :

a) setMaxOrder(int order, int method=0) order: maximum order of integration scheme 1 to 3 with SSC by extrapolation (method=0) (order=4 without SSC) 1 to 4 with embedded SSC (1=1(2), ... 4=4(5)) (method=1 or 2) method: method used for error estimation and Stepsize control 0: step size control by extrapolation (steps wit dt and dt/2 are compared) DEFAULT 1: embedded method (compare maxOrder maxOrder+1); proceed with maxOrder (recommended) 2: embedded method with local extrapolation (integration is continued with maxOrder+1)

b) setFlagErrorTest(int Flag, bool alwaysValid= true) Flag: for scaling variables for the purpose of error estimation 0: include velocities u for error test 2: scale velocities u with stepsize for error test 3: exclude velocities u for error test alwaysValid: true : u is scaled resp. exluded during smooth and nonsmooth steps alwaysValid: false : u is scaled resp. exluded only during nonsmooth steps

c) deactivateSSC(bool flag=false) : maximum order: 1 to 4

d) setGapControl(bool FlagGapControl=true, int GapControlStrategy=0) FlagGapControl activate / deactivate gap control GapControlStrategy choose strategy for Gap Control (1:maximal Stepsize to 4:minimal Penetration) 1: uses biggest root (maximal dt) 2: score for all roots are evaluated 3: gapTol is used 4: uses smallest root (minimal penetration) 0: gap control deactivated

e) Basic Implicit Integration Implicit Integration only possible with:

f) setInexactJac(bool inexactJac_=false) inexactJac_: true: - Linear Implicit Integration: Jacobis are updated if time step size changes,

e) Parallel Computation: The concept allows the following parallel computation methods:

Usage:

Author
Jan Clauberg

Constructor & Destructor Documentation

MBSimIntegrator::AutoTimeSteppingSSCIntegrator::AutoTimeSteppingSSCIntegrator ( )

Constructor with dt(1e-5), driftCompensation(false)

MBSimIntegrator::AutoTimeSteppingSSCIntegrator::~AutoTimeSteppingSSCIntegrator ( )

Destructor

Member Function Documentation

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::doExpStep ( MBSim::DynamicSystemSolver system_,
fmatvec::Vec z_,
int  nrSys_,
double  t_,
double  dt_ 
)

Do One Explicit Time Integration Step.

Parameters
dynamicsystem
Vectorz
Numberof Dynamic System
CurrentTime
CurrentTimeStepSize
void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::doImpStep ( MBSim::DynamicSystemSolver system_,
fmatvec::Vec z_,
int  nrSys_,
double  t_,
double  dt_ 
)

Do One Implicit Time Integration Step.

Parameters
dynamicsystem
Vectorz
Numberof Dynamic System
CurrentTime
CurrentTimeStepSize
void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::doLinImpStep ( MBSim::DynamicSystemSolver system_,
fmatvec::Vec z_,
int  nrSys_,
double  t_,
double  dt_ 
)

Do One Linear Implicit Time Integration Step.

Parameters
dynamicsystem
Vectorz
Numberof Dynamic System
CurrentTime
CurrentTimeStepSize
void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::getAllSetValuedla ( fmatvec::Vec la_,
fmatvec::VecInt &  la_Sizes,
std::vector< MBSim::Link * > &  SetValuedLinkList 
)

internal subroutines

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::getdhdqdhdu ( fmatvec::Mat dhdq_,
fmatvec::Mat dhdu_,
const fmatvec::Vec  z_,
const double  t_,
const int  nsys_ 
)

get Jabobians by parallel calculation

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::initializeUsingXML ( xercesc::DOMElement *  element)
virtual

initialize integrator

Parameters
XMLdescription

Reimplemented from MBSimIntegrator::Integrator.

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::integrate ( MBSim::DynamicSystemSolver system_)
virtual

Start the integration

Implements MBSimIntegrator::Integrator.

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::preIntegrate ( MBSim::DynamicSystemSolver system)
virtual

subroutines for integrate function

Reimplemented from MBSimIntegrator::Integrator.

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setAbsoluteTolerance ( const fmatvec::Vec aTol_)
inline

Tolerances for Integrator

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setDebugOutput ( bool  debugOutput_)
inline

Flag if Debug-Output should be displayed

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setDriftCompensation ( bool  dc)
inline

Set drift compensation

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setFlagErrorTest ( int  Flag,
bool  alwaysValid = true 
)

Set Flag vor ErrorTest (default 0: all variables ae tested; 2: u is scaled with dt; 3: exclude u alwaysValid = true : u is scaled resp. exluded during the smooth and nonsmooth part alwaysValid = false : u is scaled resp. exluded only during nonsmooth steps

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setFlagPlotIntegrator ( bool  flag = true)
inline

set Flag for writing integrator info at each step to a file (default true)

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setGapControl ( int  strategy = 1)
inline

Set Flag to optimise dt for minmal penetration of unilateral links; choose strategy for Gap Control (1:maximal Stepsize to 4:minimal Penetration) 1: uses biggest root (maximal dt) 2: score for all roots are evaluated 3: gapTol is used 4: uses smallest root (minimal penetration) 0: gap control deactivated with statistic calculations -1: gap control deactivated without statistic calculations

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setInexactJac ( bool  inexactJac_)
inline

set of exact or inexact Jabians should be used

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setInitialStepSize ( double  dt_)
inline

Set initial step size

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setItMax ( int  itMax_)
inline

set maximum number of full implicit iterations

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setItTol ( double  itTol_)
inline

Tolerance for Newton Iterations of full implicit iterations

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setmaxGainSSC ( double  maxGain)
inline

Set maximal gain for increasing dt by stepsize control

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setMaxOrder ( int  order_,
int  method_ = 0 
)

set maximum order (1,2,3 (method=0) or 1 to 4 (method=1,2) and method 0: SSC by extrapolation (recommended!!); 1,2: embedded SSC; proceed with maxOrder [1] (recommended if you don't want to use 0) or with maxOrder+1 [2] without SSC maximum order from 1 to 4 is possible

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setOutputInterpolation ( bool  flag = true)
inline

Set Flag for output interpolation

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setPlotParallel ( bool  plotParallel_)
inline

Flag if Plotting should be done in Parallel

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setSafetyFactorSSC ( double  sfactor)
inline

safety factor for stepsize estimation: dt = dt_estimate * safetyFactorSSC (]0;1]; default 0.6)

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setSetValuedForceLawsExplicit ( bool  SetValuedForceLawsExplicit_)
inline

Set-valued force laws with explicit or implicit discretization

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setStepSizeMax ( double  dtMax_)
inline

Set maximal step size

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setStepSizeMin ( double  dtMin_)
inline

Set minimal step size (default 2*maxOrder*epsroot()

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::setTheta ( double  theta_)
inline

set combination parameter between explicit (0) and implicit (1) Euler scheme

void MBSimIntegrator::AutoTimeSteppingSSCIntegrator::update ( MBSim::DynamicSystemSolver system,
const fmatvec::Vec z,
double  t,
int  nrSys_ = 1 
)

special update of dynamic system for theta time stepping integrator

Parameters
dynamicsystem
statevector
time
Systemnumber

Member Data Documentation

fmatvec::Vec MBSimIntegrator::AutoTimeSteppingSSCIntegrator::aTol
protected

Absolute Tolerance

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::debugOutput
protected

Flag if Debug-Output should be displayed

fmatvec::Mat MBSimIntegrator::AutoTimeSteppingSSCIntegrator::dhdq_n_T1
protected

Jacobi-Matrices for implicit integration

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::dtRelGapControl
protected

Other internal variables

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::expInt
protected

Flag for Explicit or Implicit Integration

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::FlagCoutInfo
protected

Flag: write integration info (integ. summary) to cout (default true)

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::FlagErrorTest
protected

Include (0) or Exclude (3) Variable u or Scale (2) with Stepsize for Error Test

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::FlagErrorTestAlwaysValid
protected

FlagErrorTest is Always Valid or Only During Nonsmooth Steps

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::FlagPlotEveryStep
protected

every successful integration step is ploted (set dtPlot=0 to activate FlagPlotEveryStep) (default false)

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::FlagPlotIntegrationSum
protected

Flag: write integration summary to a file (default true)

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::FlagPlotIntegrator
protected

Flag: write integrator info at each step to a file (default true)

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::FlagSSC
protected

Stepsize Control activated or Deactivated

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::gAC_T1
protected

Flag if gActiveChanged (set-valued)

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::GapControlStrategy
protected

choose strategy for Gap Control (1:maximal Stepsize to 4:minimal Penetration) 1: uses biggest root (maximal dt) 2: score for all roots are evaluated 3: gapTol is used 4: uses smallest root (minimal penetration) 0: gap control deactivated

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::gapTol
protected

Toleranz for closing gaps

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::inexactJac
protected

Flag of Exact or Inexact Jacobians should be uses

std::ofstream MBSimIntegrator::AutoTimeSteppingSSCIntegrator::integPlot
protected

filestream for integrator info at each step

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::integrationSteps
protected

Counter for Integrations steps

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::it_T1
protected

Number of Iterations for Full-Implicit Integration

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::iter
protected

Iterations for solving set-valued laws of different systems

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::iter_T1
protected

iteration counters

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::itMax
protected

Maximal number of Iterations for Full-Implicit Integration

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::itTol
protected

Tolerance for Full-Implicit Integration

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::JacCounter
protected

Counter for all Jacobian Updates

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::JacUpdate_B1_T1
protected

Flag if Jabobis of different Systems were updated in B1 or B2

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::JacUpdateT1
protected

Counter for Jacobi updates

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::maxGainSSC
protected

maximal gain factor for increasing dt by stepsize control (default 2.5; maxGain * safetyFactor must be GT 1)

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::maxOrder
protected

Maximum order of Integration Scheme SSC by extrapolation (steps with differnt dt are compared): 1, 2, 3 SSC with embedded methods (differnt orders are compared): 1 to 4 [ 1= 1(2), ... 4= 4(5) ] maxOrder(maxOrder+1) - not available for implicit integration

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::method
protected

method for intrgration and step size control method=0 step size control by extrapolation (steps wit dt and dt/2 are compared) DEFAULT method=1 embedded method for step size control (maxOrder and maxOrder+1 are compared); proceed with maxOrder (recommended) method=2 embedded method for SSC with -local extrapolation- (integration is continued with maxOrder+1)

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::numThreads
protected

Number of Threads

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::outputInterpolation
protected

Flag interpolate z and la for plotting (default true)

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::plotParallel
protected

Flag if Plotting should be done in Parallel

fmatvec::Vec MBSimIntegrator::AutoTimeSteppingSSCIntegrator::rTol
protected

Relative Tolerance

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::safetyFactorGapControl
protected

Safety factor for GapControl (dtNew = dt_gapcontrol*safetyFactor; default min(1+RTol,1.001)

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::safetyFactorSSC
protected

safety factor for stepsize estimation: dt = dt_estimate * safetyFactorSSC (]0;1]; default 0.6)

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::SetValuedForceLawsExplicit
protected

Set-valued force laws with explicit or implicit discretization

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::singleStepsT1
protected

Single steps of different systems

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::theta
protected

combination parameter between explicit (0) and implicit (1) Euler scheme

double MBSimIntegrator::AutoTimeSteppingSSCIntegrator::time
protected

computaional time

MBSim::StopWatch MBSimIntegrator::AutoTimeSteppingSSCIntegrator::Timer
protected

for internal use (start clock, integration info ...)

bool MBSimIntegrator::AutoTimeSteppingSSCIntegrator::upgedated_T1
protected

Flag if System has already been updated

int MBSimIntegrator::AutoTimeSteppingSSCIntegrator::wrongAlertGapControl
protected

Variables for GapControl


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML