1 #ifndef EMM_IterativeTimeStep_H 2 #define EMM_IterativeTimeStep_H 97 if (t.compare(
"regular")==0) mInitialTimeType=INITIAL_TIME_AS_REGULAR;
98 else if (t.compare(
"optimal-linear")==0) mInitialTimeType=INITIAL_TIME_AS_OPTIMAL_AFFINE_H;
105 mIsInitialTimeStepReset=isReset;
119 mMaxEvaluationsNumber=n;
125 mZoomOutFactor=(z>1)?z:1.1;
131 mZoomInFactor=(z<1)?z:0.1;
tReal computeInitialTimeStep()
compute initial time steps
Definition: EMM_IterativeTimeStep.cpp:44
const tUInteger & getMaximumEvaluationsNumber() const
get the max evalution of Energy for finding the best dt for which the variation of energy is <0 ...
Definition: EMM_IterativeTimeStep.h:170
void computeOptimalTimeSteps(tReal &dt_c, tReal &dt_l)
compute optimal time steps
Definition: EMM_IterativeTimeStep.cpp:64
void setTimeStepBound(const tReal &dt)
set the max time step
Definition: EMM_IterativeTimeStep.h:142
void setMaximumEvaluationsNumber(const tUInteger &n)
set the max evalution of Energy for finding the best dt for which the variation of energy is <0 ...
Definition: EMM_IterativeTimeStep.h:118
tFlag mInitialTimeType
Definition: EMM_IterativeTimeStep.h:44
void setZoomOutFactor(const tReal &z)
set the zoom out factor >1
Definition: EMM_IterativeTimeStep.h:124
EMM_IterativeTimeStep(void)
create
Definition: EMM_IterativeTimeStep.cpp:12
tReal mMinTimeStep
Definition: EMM_IterativeTimeStep.h:40
const tFlag & getIntegrationOrder() const
get integration order
Definition: EMM_IterativeTimeStep.h:188
#define tUInteger
Definition: types.h:91
virtual tBoolean optimizeTimeFunction(tReal &dt, const tReal &dt_bound, tUInteger &evaluationsNumber)=0
optimize the time step function
static const tFlag INITIAL_TIME_AS_REGULAR
Definition: EMM_IterativeTimeStep.h:31
void setIntegrationOrder(const tFlag &order)
set the order of evaluation the time function
Definition: EMM_IterativeTimeStep.h:111
const tFlag & getInitialTimeType() const
get the initial type type
Definition: EMM_IterativeTimeStep.h:162
#define tBoolean
Definition: types.h:139
This class describes the iterative optimal time.
Definition: EMM_IterativeTimeStep.h:20
void setInitialTimeType(const tString &t)
set the initial time type
Definition: EMM_IterativeTimeStep.h:96
tReal mMaxTimeStepGap
Definition: EMM_IterativeTimeStep.h:38
void setInitialTimeType(const tFlag &t)
set the initial time type
Definition: EMM_IterativeTimeStep.h:90
const tReal & getMaximumTimeStepGap() const
get the maximum time step gap
Definition: EMM_IterativeTimeStep.h:194
void resetInitialTimeStepToOptimalOne(const tBoolean &isReset)
set if the initial time step is set to optimal time step
Definition: EMM_IterativeTimeStep.h:104
virtual tString toString() const
turn the regular time into a string
Definition: EMM_IterativeTimeStep.cpp:205
virtual ~EMM_IterativeTimeStep(void)
destroy
Definition: EMM_IterativeTimeStep.cpp:41
const tReal & getMinTimeStep() const
get the min time step of iterative time step computing
Definition: EMM_IterativeTimeStep.h:155
virtual tBoolean computeNewTimeStep(tReal &dt, tUInteger &nEvaluations)
compute the new time step
Definition: EMM_IterativeTimeStep.cpp:137
void setZoomInFactor(const tReal &z)
set the zoom in factor <1
Definition: EMM_IterativeTimeStep.h:130
SP_OBJECT(EMM_IterativeTimeStep)
tReal mT[4]
Definition: EMM_IterativeTimeStep.h:50
SP::EMM_RealField mGradH_GradF_F
Definition: EMM_IterativeTimeStep.h:48
static const tFlag INITIAL_TIME_AS_OPTIMAL_AFFINE_H
Definition: EMM_IterativeTimeStep.h:32
tFlag mOrder
Definition: EMM_IterativeTimeStep.h:43
tBoolean mIsInitialTimeStepReset
Definition: EMM_IterativeTimeStep.h:45
const tReal & getZoomOutFactor() const
set the zoom out factor >1
Definition: EMM_IterativeTimeStep.h:176
void setMaxTimeStepGap(const tReal &dt)
set the max gap betewen 2 time step
Definition: EMM_IterativeTimeStep.h:136
#define tString
Definition: types.h:135
static const tFlag INITIAL_TIME_AS_MAX_LINEAR_CONSTANT_H
Definition: EMM_IterativeTimeStep.h:33
SP::EMM_RealField mGradF_F
Definition: EMM_IterativeTimeStep.h:49
tReal mZoomInFactor
Definition: EMM_IterativeTimeStep.h:37
void setMinTimeStep(const tReal &dt)
set the min time step of iterative time step computing
Definition: EMM_IterativeTimeStep.h:83
DEFINE_SPTR(EMM_IterativeTimeStep)
tUInteger mMaxEvaluationsNumber
Definition: EMM_IterativeTimeStep.h:41
const tReal & getZoomInFactor() const
set the zoom in factor <1
Definition: EMM_IterativeTimeStep.h:182
const tReal & getTimeStepBound() const
get the max time step
Definition: EMM_IterativeTimeStep.h:200
#define tReal
Definition: types.h:118
tReal computeTimeFunctionDerivative(const tReal &t, tReal &dF_dt)
compute the time function at t and its first derivative
Definition: EMM_IterativeTimeStep.cpp:192
const tReal & computeTimeFunction() const
compute the time function at 0
Definition: EMM_IterativeTimeStep.cpp:183
This class describes a regular time.
Definition: EMM_RegularTimeStep.h:15
MATH_P4 mP4
Definition: EMM_IterativeTimeStep.h:51
tReal mTimeStepBound
Definition: EMM_IterativeTimeStep.h:39
tReal mZoomOutFactor
Definition: EMM_IterativeTimeStep.h:36
This class describes a polynom of degre 4 .
Definition: MATH_P4.h:15
#define tFlag
Definition: types.h:74