MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
AdHocThirdOrderIntegrator Class Reference

#include <thirdorderstepsol.h>

Inheritance diagram for AdHocThirdOrderIntegrator:
Collaboration diagram for AdHocThirdOrderIntegrator:

Public Member Functions

 AdHocThirdOrderIntegrator (const doublereal dT, const doublereal dSolutionTol, const integer iMaxIt, const bool bmod_res_test)
 
virtual ~AdHocThirdOrderIntegrator (void)
 
- Public Member Functions inherited from ThirdOrderIntegrator
 ThirdOrderIntegrator (const doublereal dT, const doublereal dSolutionTol, const integer iMaxIt, const bool bmod_res_test)
 
virtual ~ThirdOrderIntegrator (void)
 
virtual void Residual (VectorHandler *pRes) const
 
virtual void Jacobian (MatrixHandler *pJac) const
 
virtual void Update (const VectorHandler *pSol) const
 
virtual doublereal Advance (Solver *pS, const doublereal TStep, const doublereal dAlph, const StepChange StType, std::deque< MyVectorHandler * > &qX, std::deque< MyVectorHandler * > &qXPrime, MyVectorHandler *const pX, MyVectorHandler *const pXPrime, integer &EffIter, doublereal &Err, doublereal &SolErr)
 
- Public Member Functions inherited from ImplicitStepIntegrator
 ImplicitStepIntegrator (const integer MaxIt, const doublereal dT, const doublereal dSolutionTol, const integer stp, const integer sts, const bool bmod_res_test)
 
virtual ~ImplicitStepIntegrator (void)
 
virtual void EvalProd (doublereal Tau, const VectorHandler &f0, const VectorHandler &w, VectorHandler &z) const
 
virtual doublereal TestScale (const NonlinearSolverTest *pTest, doublereal &dCoef) const
 
- Public Member Functions inherited from StepIntegrator
 StepIntegrator (const integer MaxIt, const doublereal dT, const doublereal dSolutionTol, const integer stp, const integer sts)
 
virtual ~StepIntegrator (void)
 
void SetDataManager (DataManager *pDatMan)
 
virtual integer GetIntegratorNumPreviousStates (void) const
 
virtual integer GetIntegratorNumUnknownStates (void) const
 
virtual integer GetIntegratorMaxIters (void) const
 
virtual doublereal GetIntegratorDTol (void) const
 
virtual doublereal GetIntegratorDSolTol (void) const
 
virtual void OutputTypes (const bool fpred)
 
virtual void SetDriveHandler (const DriveHandler *pDH)
 
- Public Member Functions inherited from NonlinearProblem
virtual ~NonlinearProblem (void)
 

Protected Member Functions

void SetCoef (doublereal dT, doublereal dAlpha, enum StepChange NewStep)
 
- Protected Member Functions inherited from ThirdOrderIntegrator
void PredictDof_for_AfterPredict (const int DCount, const DofOrder::Order Order, const VectorHandler *const pSol=0) const
 
void RealPredictDof (const int DCount, const DofOrder::Order Order, const VectorHandler *const pSol=0) const
 
void UpdateDof (const int DCount, const DofOrder::Order Order, const VectorHandler *const pSol=0) const
 
virtual void Predict (void)
 
- Protected Member Functions inherited from StepIntegrator
template<class T >
void UpdateLoop (const T *const t, void(T::*pUpd)(const int DCount, const DofOrder::Order Order, const VectorHandler *const pSol) const, const VectorHandler *const pSol=0) const
 

Additional Inherited Members

- Public Types inherited from StepIntegrator
enum  { DIFFERENTIAL = 0, ALGEBRAIC = 1 }
 
enum  StepChange { NEWSTEP, REPEATSTEP }
 
- Protected Attributes inherited from ThirdOrderIntegrator
VectorHandlerpXPrev
 
VectorHandlerpXPrimePrev
 
doublereal dT
 
doublereal rho
 
doublereal theta
 
doublereal w0
 
doublereal w1
 
doublereal w2
 
doublereal jx11
 
doublereal jx12
 
doublereal jx21
 
doublereal jx22
 
doublereal m0
 
doublereal m1
 
doublereal n0
 
doublereal n1
 
bool bAdvanceCalledFirstTime
 
MyVectorHandler Restmp
 
std::vector< boolEqIsAlgebraic
 
std::vector< boolEqIsDifferential
 
SpMapMatrixHandler Jacxi_xp
 
SpMapMatrixHandler Jacxi_x
 
SpMapMatrixHandler Jac_xp
 
SpMapMatrixHandler Jac_x
 
MatrixHandlerpJacxi_xp
 
MatrixHandlerpJacxi_x
 
MatrixHandlerpJac_xp
 
MatrixHandlerpJac_x
 
- Protected Attributes inherited from ImplicitStepIntegrator
VectorHandlerpXCurr
 
VectorHandlerpXPrimeCurr
 
bool bModResTest
 
- Protected Attributes inherited from StepIntegrator
DataManagerpDM
 
const DataManager::DofVecTypepDofs
 
bool outputPred
 
integer MaxIters
 
doublereal dTol
 
doublereal dSolTol
 
integer steps
 
integer unkstates
 

Detailed Description

Definition at line 129 of file thirdorderstepsol.h.

Constructor & Destructor Documentation

AdHocThirdOrderIntegrator::AdHocThirdOrderIntegrator ( const doublereal  dT,
const doublereal  dSolutionTol,
const integer  iMaxIt,
const bool  bmod_res_test 
)

Definition at line 494 of file thirdorderstepsol.cc.

References NO_OP.

498 : ThirdOrderIntegrator(dT, dSolutionTol, iMaxIt, bmod_res_test)
499 {
500  NO_OP;
501 }
#define NO_OP
Definition: myassert.h:74
ThirdOrderIntegrator(const doublereal dT, const doublereal dSolutionTol, const integer iMaxIt, const bool bmod_res_test)
AdHocThirdOrderIntegrator::~AdHocThirdOrderIntegrator ( void  )
virtual

Definition at line 503 of file thirdorderstepsol.cc.

References NO_OP.

504 {
505  NO_OP;
506 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

void AdHocThirdOrderIntegrator::SetCoef ( doublereal  dT,
doublereal  dAlpha,
enum StepChange  NewStep 
)
protectedvirtual

Implements ThirdOrderIntegrator.

Definition at line 509 of file thirdorderstepsol.cc.

References DEBUGCOUT, ThirdOrderIntegrator::dT, ThirdOrderIntegrator::jx11, ThirdOrderIntegrator::jx12, ThirdOrderIntegrator::jx21, ThirdOrderIntegrator::jx22, ThirdOrderIntegrator::m0, ThirdOrderIntegrator::m1, ThirdOrderIntegrator::n0, ThirdOrderIntegrator::n1, ThirdOrderIntegrator::rho, ThirdOrderIntegrator::theta, ThirdOrderIntegrator::w0, ThirdOrderIntegrator::w1, and ThirdOrderIntegrator::w2.

512 {
513  dT = dt;
514 
515  /* from "Unconditionally stable multistep integration of ordinary
516  * differential and differential-algebraic equations with
517  * controlled algorithmic dissipation for multibody dynamic
518  * applications", pp 8-9
519  */
520  theta = -2./3.;
521  w0 = (2.*theta + 1.)/(2.*theta);
522  w1 = -1./(2.*theta);
523  w2 = 0.;
524  /* from "Unconditionally stable multistep integration of ordinary
525  * differential and differential-algebraic equations with
526  * controlled algorithmic dissipation for multibody dynamic
527  * applications", pp 3
528  */
529  m0 = 1.-theta*theta;
530  m1 = theta*theta;
531  n0 = theta*(1.+theta);
532  n1 = 0.;
533 
534  /* Attenzione: a differenza di quanto riportato a p. 16,
535  * "Unconditionally stable multistep integration of ordinary
536  * differential and differential-algebraic equations with
537  * controlled algorithmic dissipation for multibody dynamic
538  * applications"
539  * qui il tempo finale e' in cima, il tempo theta in basso
540  */
541  jx22 = 5./12.*dT;
542  jx21 = -1./12.*dT;
543  jx12 = 3./4.*dT;
544  jx11 = 1./4.*dT;
545 
546  DEBUGCOUT("Ad Hoc Third Order Integrator coefficients:" << std::endl
547  << "\t rho: " << rho << std::endl
548  << "\ttheta: " << theta << std::endl
549  << "\t w0: " << w0 << std::endl
550  << "\t w1: " << w1 << std::endl
551  << "\t w2: " << w2 << std::endl
552  << "\t m0: " << m0 << std::endl
553  << "\t m1: " << m1 << std::endl
554  << "\t n0: " << n0 << std::endl
555  << "\t n1: " << n1 << std::endl);
556 }
#define DEBUGCOUT(msg)
Definition: myassert.h:232

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