mbsim  4.0.0
MBSim Kernel
theta_time_stepping_ssc_integrator.h
1/* Copyright (C) 2004-2012 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: jan.p.clauberg@googlemail.com
18 */
19
20#ifndef _THETA_TIME_STEPPING_SSC_INTEGRATOR_H_
21#define _THETA_TIME_STEPPING_SSC_INTEGRATOR_H_
22
23#include "integrator.h"
24
25namespace MBSim {
26
32 public:
37
42
43 /* INHERITED INTERFACE OF INTEGRATOR */
45 void integrate();
46 virtual void initializeUsingXML(xercesc::DOMElement *element);
47 /***************************************************/
48
49 /* GETTER / SETTER */
50 void setStepSize(double dt_) { dt = dt_; }
51 void setTheta(double theta_ ) { theta = theta_; }
52 void setDriftCompensation(bool dc) { driftCompensation = dc; }
53 /***************************************************/
54
61 void update(const fmatvec::Vec& z, double t);
62
67 void preIntegrate();
68
75 void subIntegrate(double tStop);
80 void postIntegrate();
81
82 private:
86 double dt;
87
91 double theta;
92
96 double t, tPlot;
97
101 int iter,step, integrationSteps, maxIter, sumIter;
102
106 double s0, time;
107
112
116 fmatvec::Vec z, q, u, x;
117
121 std::ofstream integPlot;
122
127 };
128
129}
130
131#endif /* _THETA_TIME_STEPPING_SSC_INTEGRATOR_H_ */
132
integrator-interface for dynamic systems
Definition: integrator.h:37
virtual void integrate()=0
start the integration of the system set by setSystem. Each class implemeting this function should cal...
Definition: theta_time_stepping_ssc_integrator.h:31
double theta
convex combination parameter between explicit (0) and implicit (1) Euler scheme
Definition: theta_time_stepping_ssc_integrator.h:91
ThetaTimeSteppingSSCIntegrator()
constructor
Definition: theta_time_stepping_ssc_integrator.cc:37
void subIntegrate(double tStop)
integration steps
Definition: theta_time_stepping_ssc_integrator.cc:104
virtual void initializeUsingXML(xercesc::DOMElement *element)
initialize integrator
Definition: theta_time_stepping_ssc_integrator.cc:168
virtual ~ThetaTimeSteppingSSCIntegrator()
destructor
Definition: theta_time_stepping_ssc_integrator.h:41
int stepPlot
plot step difference
Definition: theta_time_stepping_ssc_integrator.h:111
double dt
step size
Definition: theta_time_stepping_ssc_integrator.h:86
void preIntegrate()
preintegration steps
Definition: theta_time_stepping_ssc_integrator.cc:68
double t
time and plot time
Definition: theta_time_stepping_ssc_integrator.h:96
bool driftCompensation
flag for drift compensation
Definition: theta_time_stepping_ssc_integrator.h:126
fmatvec::Vec z
state, position, velocity, order coordinate of dynamical system
Definition: theta_time_stepping_ssc_integrator.h:116
void postIntegrate()
postintegration steps
Definition: theta_time_stepping_ssc_integrator.cc:151
void update(const fmatvec::Vec &z, double t)
update of dynamic system necessary values concerning theta time stepping integrator
Definition: theta_time_stepping_ssc_integrator.cc:39
int iter
iteration counter for constraints, plots, integration, maximum constraints, cummulation constraint
Definition: theta_time_stepping_ssc_integrator.h:101
double s0
computing time counter
Definition: theta_time_stepping_ssc_integrator.h:106
std::ofstream integPlot
file stream for integration information
Definition: theta_time_stepping_ssc_integrator.h:121
void integrate()
start the integration of the system set by setSystem. Each class implemeting this function should cal...
Definition: theta_time_stepping_ssc_integrator.cc:162
namespace MBSim
Definition: bilateral_constraint.cc:30