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

#include <stepsol.h>

Inheritance diagram for CrankNicolsonIntegrator:
Collaboration diagram for CrankNicolsonIntegrator:

Public Member Functions

 CrankNicolsonIntegrator (const doublereal Tl, const doublereal dSolTl, const integer iMaxIt, const bool bmod_res_test)
 
 ~CrankNicolsonIntegrator (void)
 
- Public Member Functions inherited from Step1Integrator
 Step1Integrator (const integer MaxIt, const doublereal dT, const doublereal dSolutionTol, const bool bmod_res_test)
 
virtual ~Step1Integrator (void)
 
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 StepNIntegrator
 StepNIntegrator (const integer MaxIt, const doublereal dT, const doublereal dSolutionTol, const integer stp, const bool bmod_res_test)
 
virtual ~StepNIntegrator (void)
 
virtual void Residual (VectorHandler *pRes) const
 
virtual void Jacobian (MatrixHandler *pJac) const
 
virtual void Update (const VectorHandler *pSol) const
 
virtual doublereal TestScale (const NonlinearSolverTest *pTest, doublereal &dAlgebraicEqu) const
 
- 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
 
- 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)
 
doublereal dPredictDerivative (const doublereal &dXm1, const doublereal &dXPm1, DofOrder::Order o=DofOrder::DIFFERENTIAL) const
 
doublereal dPredictState (const doublereal &dXm1, const doublereal &dXP, const doublereal &dXPm1, DofOrder::Order o=DofOrder::DIFFERENTIAL) const
 
doublereal dPredDer (const doublereal &dXm1, const doublereal &dXPm1) const
 
doublereal dPredState (const doublereal &dXm1, const doublereal &dXP, const doublereal &dXPm1) const
 
doublereal dPredDerAlg (const doublereal &dXm1, const doublereal &dXPm1) const
 
doublereal dPredStateAlg (const doublereal &dXm1, const doublereal &dXP, const doublereal &dXPm1) const
 
- Protected Member Functions inherited from Step1Integrator
void PredictDof (const int DCount, const DofOrder::Order Order, const VectorHandler *const pSol=0) const
 
virtual void Predict (void)
 
- Protected Member Functions inherited from StepNIntegrator
void UpdateDof (const int DCount, const DofOrder::Order Order, const VectorHandler *const pSol=0) const
 
- 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 }
 
- Public Attributes inherited from StepNIntegrator
doublereal db0Differential
 
doublereal db0Algebraic
 
- Protected Attributes inherited from Step1Integrator
VectorHandlerpXPrev
 
VectorHandlerpXPrimePrev
 
- 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 333 of file stepsol.h.

Constructor & Destructor Documentation

CrankNicolsonIntegrator::CrankNicolsonIntegrator ( const doublereal  Tl,
const doublereal  dSolTl,
const integer  iMaxIt,
const bool  bmod_res_test 
)

Definition at line 836 of file stepsol.cc.

References NO_OP.

840 : Step1Integrator(iMaxIt, dTl, dSolTl, bmod_res_test)
841 {
842  NO_OP;
843 }
Step1Integrator(const integer MaxIt, const doublereal dT, const doublereal dSolutionTol, const bool bmod_res_test)
Definition: stepsol.cc:560
#define NO_OP
Definition: myassert.h:74
CrankNicolsonIntegrator::~CrankNicolsonIntegrator ( void  )

Definition at line 845 of file stepsol.cc.

References NO_OP.

846 {
847  NO_OP;
848 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

doublereal CrankNicolsonIntegrator::dPredDer ( const doublereal dXm1,
const doublereal dXPm1 
) const
protectedvirtual

Implements Step1Integrator.

Definition at line 881 of file stepsol.cc.

883 {
884  return dXPm1;
885 }
doublereal CrankNicolsonIntegrator::dPredDerAlg ( const doublereal dXm1,
const doublereal dXPm1 
) const
protectedvirtual

Implements Step1Integrator.

Definition at line 896 of file stepsol.cc.

898 {
899  return dXPm1;
900 }
doublereal CrankNicolsonIntegrator::dPredictDerivative ( const doublereal dXm1,
const doublereal dXPm1,
DofOrder::Order  o = DofOrder::DIFFERENTIAL 
) const
protectedvirtual

Implements Step1Integrator.

Definition at line 860 of file stepsol.cc.

863 {
864  return dXPm1;
865 }
doublereal CrankNicolsonIntegrator::dPredictState ( const doublereal dXm1,
const doublereal dXP,
const doublereal dXPm1,
DofOrder::Order  o = DofOrder::DIFFERENTIAL 
) const
protectedvirtual

Implements Step1Integrator.

Definition at line 868 of file stepsol.cc.

References DofOrder::ALGEBRAIC, and StepNIntegrator::db0Differential.

872 {
873  if (o == DofOrder::ALGEBRAIC) {
874  return db0Differential*(dXP + dXPm1);
875  } /* else if (o == DofOrder::DIFFERENTIAL) */
876  return dXm1 + db0Differential*(dXP + dXPm1);
877 }
doublereal db0Differential
Definition: stepsol.h:235
doublereal CrankNicolsonIntegrator::dPredState ( const doublereal dXm1,
const doublereal dXP,
const doublereal dXPm1 
) const
protectedvirtual

Implements Step1Integrator.

Definition at line 888 of file stepsol.cc.

References StepNIntegrator::db0Differential.

891 {
892  return dXm1 + db0Differential*(dXP + dXPm1);
893 }
doublereal db0Differential
Definition: stepsol.h:235
doublereal CrankNicolsonIntegrator::dPredStateAlg ( const doublereal dXm1,
const doublereal dXP,
const doublereal dXPm1 
) const
protectedvirtual

Implements Step1Integrator.

Definition at line 903 of file stepsol.cc.

References StepNIntegrator::db0Differential.

906 {
907  return db0Differential*(dXP + dXPm1);
908 }
doublereal db0Differential
Definition: stepsol.h:235
void CrankNicolsonIntegrator::SetCoef ( doublereal  dT,
doublereal  dAlpha,
enum StepChange  NewStep 
)
protectedvirtual

Implements StepNIntegrator.

Definition at line 851 of file stepsol.cc.

References StepNIntegrator::db0Algebraic, and StepNIntegrator::db0Differential.

854 {
855  db0Differential = db0Algebraic = dT*dAlpha/2.;
856 }
doublereal db0Differential
Definition: stepsol.h:235
doublereal db0Algebraic
Definition: stepsol.h:236

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