mbsim  4.0.0
MBSim Kernel
MBSim::HETS2Integrator Class Reference

time integration scheme on velocity level for nonsmooth dynamical systems using half-explicit trapezoidal rule More...

#include <hets2_integrator.h>

Inheritance diagram for MBSim::HETS2Integrator:
[legend]

Public Member Functions

 ~HETS2Integrator () override=default
 destructor
 
void preIntegrate () override
 initializes the integration More...
 
void subIntegrate (double tStop) override
 does the integration More...
 
void postIntegrate () override
 closes the integration More...
 
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
 
void setStepSize (double dt_)
 
void updatebc ()
 
void updatezd ()
 
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::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
 

Private Member Functions

bool evaluateStage ()
 evaluates the dynamical system given the state of the stage until the Jacobian matrices More...
 

Private Attributes

double dt {1e-3}
 step size for non-impulsive periods, and impulsive periods, and last used
 
double dtImpulsive {1e-4}
 
double dtInfo {1e-3}
 
double tPlot {0.}
 time and plot time
 
int integrationSteps {0}
 iteration counter for constraints, integration, non-impulsive integration, impulsive integration, maximum constraints, cummulation constraint
 
int integrationStepsConstraint {0}
 
int integrationStepsImpact {0}
 
int maxIter {0}
 
int sumIter {0}
 
double s0 {0.}
 computing time counter
 
double time {0.}
 
fmatvec::Vec bc
 

Additional Inherited Members

- 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

time integration scheme on velocity level for nonsmooth dynamical systems using half-explicit trapezoidal rule

Author
Thorsten Schindler
Date
2014-09-12 initial commit (Thorsten Schindler)
2014-09-17 notation of Brasey1994a (Thorsten Schindler)
2014-09-18 first final status with contact and impact with the slider-crank mechanism (Thorsten Schindler)
2014-09-22 naive step-size adaptation according experience with the error constants, not square root relationship (Thorsten Schindler)

time discontinuous Galerkin method on velocity level using half-explicit trapezoidal rule

T. Schindler, S. Rezaei, J. Kursawe, V. Acary : Half-explicit timestepping schemes on velocity level based on time-discontinuous Galerkin methods

T. Schindler, V. Acary : Timestepping Schemes for Nonsmooth Dynamics Based on Discontinuous Galerkin Methods: Definition and Outlook

Member Function Documentation

◆ evaluateStage()

bool MBSim::HETS2Integrator::evaluateStage ( )
private

evaluates the dynamical system given the state of the stage until the Jacobian matrices

Parameters
dynamicalsystem to be integrated return flag for occuring impact

◆ initializeUsingXML()

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

Reimplemented from MBSim::Solver.

◆ integrate() [1/2]

void MBSim::HETS2Integrator::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.

◆ postIntegrate()

void MBSim::HETS2Integrator::postIntegrate ( )
overridevirtual

closes the integration

Parameters
dynamicalsystem to be integrated

Reimplemented from MBSim::Integrator.

◆ preIntegrate()

void MBSim::HETS2Integrator::preIntegrate ( )
overridevirtual

initializes the integration

Parameters
dynamicalsystem to be integrated

Reimplemented from MBSim::Integrator.

◆ subIntegrate()

void MBSim::HETS2Integrator::subIntegrate ( double  tStop)
overridevirtual

does the integration

Parameters
dynamicalsystem to be integrated

Reimplemented from MBSim::Integrator.


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