All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
hets2_integrator.h
1 /* Copyright (C) 2004-2014 MBSim Development Team
2  *
3  * This library is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU Lesser General Public
5  * License as published by the Free Software Foundation; either
6  * version 2.1 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public
14  * License along with this library; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16  *
17  * Contact: thorsten.schindler@mytum.de
18  */
19 
20 #ifndef _HETS2_INTEGRATOR_H_
21 #define _HETS2_INTEGRATOR_H_
22 
23 #include "integrator.h"
24 
25 namespace MBSimIntegrator {
26 
43  class HETS2Integrator : public Integrator {
44  public:
49 
53  virtual ~HETS2Integrator() {}
54 
60 
65  void subIntegrate(MBSim::DynamicSystemSolver& system, double tStop);
66 
72 
73  /* INHERITED INTERFACE OF INTEGRATOR */
75  virtual void initializeUsingXML(xercesc::DOMElement *element);
76  /***************************************************/
77 
78  /* GETTER / SETTER */
79  void setStepSize(double dt_) { dt = dt_; dtImpulsive = dt*1e-1, dtInfo = dt; }
80  /***************************************************/
81 
82  void updatebc();
83  void updatezd();
84 
85  private:
92 
96  double dt, dtImpulsive, dtInfo;
97 
101  double tPlot;
102 
106  int integrationSteps, integrationStepsConstraint, integrationStepsImpact, maxIter, sumIter;
107 
111  double s0, time;
112 
116  std::ofstream integPlot;
117 
118  fmatvec::Vec bc;
119  };
120 
121 }
122 
123 #endif /* _HETS2_INTEGRATOR_H_ */
124 
int integrationSteps
iteration counter for constraints, integration, non-impulsive integration, impulsive integration...
Definition: hets2_integrator.h:106
std::ofstream integPlot
file stream for integration information
Definition: hets2_integrator.h:116
solver interface for modelling and simulation of dynamic systems
Definition: dynamic_system_solver.h:48
virtual void integrate(MBSim::DynamicSystemSolver &system)
start the integration
Definition: hets2_integrator.cc:245
void postIntegrate(MBSim::DynamicSystemSolver &system)
closes the integration
Definition: hets2_integrator.cc:220
double s0
computing time counter
Definition: hets2_integrator.h:111
double tPlot
time and plot time
Definition: hets2_integrator.h:101
void preIntegrate(MBSim::DynamicSystemSolver &system)
initializes the integration
Definition: hets2_integrator.cc:56
void subIntegrate(MBSim::DynamicSystemSolver &system, double tStop)
does the integration
Definition: hets2_integrator.cc:82
time integration scheme on velocity level for nonsmooth dynamical systems using half-explicit trapezo...
Definition: hets2_integrator.h:43
HETS2Integrator()
constructor
Definition: hets2_integrator.cc:43
bool evaluateStage(MBSim::DynamicSystemSolver &system)
evaluates the dynamical system given the state of the stage until the Jacobian matrices ...
Definition: hets2_integrator.cc:260
virtual void initializeUsingXML(xercesc::DOMElement *element)
initialize integrator
Definition: hets2_integrator.cc:253
double dt
step size for non-impulsive periods, and impulsive periods, and last used
Definition: hets2_integrator.h:96
integrator-interface for dynamic systems
Definition: integrator.h:40
virtual ~HETS2Integrator()
destructor
Definition: hets2_integrator.h:53
static DynamicSystemSolver * system
dynamic system
Definition: solver.h:65

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML