C++ main module for emicrom Package
1.0
|
This class compute the new time step by optimizing a function EMM_LandauLisfchitzSystem::computePredictiveEnergyAtTime() within the optimizeTimeFunction() method as the golden number optimization. More...
#include <EMM_GoldenNumberIterativeTimeStep.h>
Public Member Functions | |
virtual tBoolean | optimizeTimeFunction (tReal &dt, const tReal &dt_bound, tUInteger &evaluationsNumber) |
optimize the time step function More... | |
void | setMinTimeStep (const tReal &dt) |
set the min time step of iterative time step computing More... | |
void | setInitialTimeType (const tFlag &t) |
set the initial time type More... | |
void | setInitialTimeType (const tString &t) |
set the initial time type More... | |
void | resetInitialTimeStepToOptimalOne (const tBoolean &isReset) |
set if the initial time step is set to optimal time step More... | |
void | setIntegrationOrder (const tFlag &order) |
set the order of evaluation the time function More... | |
void | setMaximumEvaluationsNumber (const tUInteger &n) |
set the max evalution of Energy for finding the best dt for which the variation of energy is <0 More... | |
void | setZoomOutFactor (const tReal &z) |
set the zoom out factor >1 More... | |
void | setZoomInFactor (const tReal &z) |
set the zoom in factor <1 More... | |
void | setMaxTimeStepGap (const tReal &dt) |
set the max gap betewen 2 time step More... | |
void | setTimeStepBound (const tReal &dt) |
set the max time step More... | |
const tReal & | getMinTimeStep () const |
get the min time step of iterative time step computing More... | |
const tFlag & | getInitialTimeType () const |
get the initial type type More... | |
const tUInteger & | getMaximumEvaluationsNumber () const |
get the max evalution of Energy for finding the best dt for which the variation of energy is <0 More... | |
const tReal & | getZoomOutFactor () const |
set the zoom out factor >1 More... | |
const tReal & | getZoomInFactor () const |
set the zoom in factor <1 More... | |
const tFlag & | getIntegrationOrder () const |
get integration order More... | |
const tReal & | getMaximumTimeStepGap () const |
get the maximum time step gap More... | |
const tReal & | getTimeStepBound () const |
get the max time step More... | |
tReal | computeInitialTimeStep () |
compute initial time steps More... | |
virtual tBoolean | computeNewTimeStep (tReal &dt, tUInteger &nEvaluations) |
compute the new time step More... | |
tReal | computeTimeFunction (const tReal &t) |
compute the time function at t More... | |
const tReal & | computeTimeFunction () const |
compute the time function at 0 More... | |
tReal | computeTimeFunctionDerivative (const tReal &t, tReal &dF_dt) |
compute the time function at t and its first derivative More... | |
const tReal & | computeTimeFunctionDerivative (tReal &dF_dt_0) const |
compute the time function at 0 and its first derivative at time =0 More... | |
virtual tString | toString () const |
turn the regular time into a string More... | |
tBoolean | setSystem (SP::EMM_LandauLifschitzSystem system) |
set the reverse system relation More... | |
void | resetSystem () |
reset the reverse system relation More... | |
void | setCharacteristicTime (const tReal &t) |
set the characteristic time the real time will be t. mTc in seconds More... | |
void | setTargetTime (const tReal &t) |
set the end time with respect of the characteristic time real time = t * getCharacteristicTime() More... | |
void | setDt (const tReal &dt) |
set the time step More... | |
void | setDtFactor (const tReal &f) |
set the dt factor More... | |
void | setTimeStepsNumber (const tUInteger &n) |
set the time steps number More... | |
const tReal & | getDtFactor () const |
get the dt factor More... | |
const tReal & | getTargetTime () const |
get the end time More... | |
const tReal & | getCharacteristicTime () const |
get the characteristic time More... | |
const tUInteger & | getTimeStepsNumber () const |
get the time steps number More... | |
const tReal & | getDt () const |
get the time step More... | |
tReal & | getDt () |
get the time step More... | |
void | getSharedPointer (SP::CORE_Object &p) |
get the shared pointer of this class into p More... | |
void | getSharedPointer (SPC::CORE_Object &p) const |
get the shared pointer of this class into p More... | |
tString | getClassName () const |
return the class name of the object More... | |
tString | getIdentityString () const |
return the identity string of the object of the form className_at_address More... | |
tString | getPointerAddress () const |
return the identity string of the object More... | |
template<class T > | |
tBoolean | isInstanceOf () const |
test if the clas T is an instance of this class More... | |
tBoolean | isInstanceOf (const tString &name) const |
test if the object is an instance of className More... | |
Static Public Member Functions | |
static SP::EMM_GoldenNumberIterativeTimeStep | New () |
build a shared pointer associated to the class More... | |
static void | setIsMemoryChecked (const tBoolean &v) |
set if the memory checking is used More... | |
static void | setOut (SP::CORE_Out out) |
set the output stream More... | |
static void | resetOut () |
reset the output stream More... | |
static void | setThread (SP::CORE_Thread thread) |
set the thread More... | |
static void | resetThread () |
reset the output stream More... | |
static CORE_Out & | out () |
get the output More... | |
static SP::CORE_Out | getOut () |
get the output More... | |
static CORE_Thread & | getThread () |
get the profilier More... | |
static const tBoolean & | isMemoryChecked () |
get if the memory checking is used More... | |
static tString | getClassName (const tString &identityString) |
return the class name of the object More... | |
template<class T > | |
static tString | getTypeName () |
get type name More... | |
static tBoolean | is64Architecture () |
return true if the machine is a 64 bits machine More... | |
static tBoolean | is32Architecture () |
return true if the machine is a 32 bits machine More... | |
static tString | pointer2String (const void *obj) |
return the string representation of a pointer More... | |
static void | printObjectsInMemory (ostream &f) |
print object in memory More... | |
static void | printObjectsInMemory () |
print object in memory in the standart output More... | |
static tChar | getMaxChar () |
get the max value for tChar type More... | |
static tChar | getMinChar () |
get the min value for tChar type More... | |
static tUChar | getMaxUChar () |
get the max value for tUChar type More... | |
static tUChar | getMinUChar () |
get the min value for tUChar type More... | |
static tSInt | getMaxSInt () |
get the max value for tSInt type More... | |
static tSInt | getMinSInt () |
get the min value for tSInt type More... | |
static tUSInt | getMaxUSInt () |
get the max value for tUSInt type More... | |
static tUSInt | getMinUSInt () |
get the min value for tUSInt type More... | |
static tInt | getMaxInt () |
get the max value for tInt type More... | |
static tInt | getMinInt () |
get the min value for tInt type More... | |
static tUInt | getMaxUInt () |
get the max value for tUInt type More... | |
static tUInt | getMinUInt () |
get the min value for tUInt type More... | |
static tLInt | getMaxLInt () |
get the max value for tLInt type More... | |
static tLInt | getMinLInt () |
get the min value for tLInt type More... | |
static tULInt | getMaxULInt () |
get the max value for tULInt type More... | |
static tULInt | getMinULInt () |
get the min value for tULInt type More... | |
static tLLInt | getMaxLLInt () |
get the max value for tULInt type More... | |
static tLLInt | getMinLLInt () |
get the min value for tLLInt type More... | |
static tULLInt | getMaxULLInt () |
get the max value for tULLInt type More... | |
static tULLInt | getMinULLInt () |
get the min value for tULLInt type More... | |
static tFloat | getMaxFloat () |
get the max value for tFloat type More... | |
static tFloat | getMinFloat () |
get the min value for tFloat type More... | |
template<class T > | |
static T | getEpsilon () |
get the epsilon value for T type More... | |
template<class T > | |
static T | getInfinity () |
get the infinity for T type More... | |
static tFloat | getFloatEpsilon () |
get the epsilon value for tFloat type More... | |
static tFloat | getFloatInfinity () |
get the infinity value for tFloat type More... | |
static tDouble | getMaxDouble () |
get the max value for tDouble type More... | |
static tDouble | getMinDouble () |
get the min value for tDouble type More... | |
static tDouble | getDoubleInfinity () |
get the infinity value for tFloat type More... | |
static tDouble | getDoubleEpsilon () |
get the epsilon value for tDouble type More... | |
static tLDouble | getMinLDouble () |
get the min value for tLDouble type More... | |
static tLDouble | getMaxLDouble () |
get the max value for tLDouble type More... | |
static tLDouble | getLDoubleEpsilon () |
get the epsilon value for tLDouble type More... | |
static tDouble | getLDoubleInfinity () |
get the infinity value for tDouble type More... | |
static tIndex | getMaxIndex () |
get the max value for the array/vector indexing type More... | |
static tIndex | getMinIndex () |
get the min value for the array/vector indexing type More... | |
static tUIndex | getMaxUIndex () |
get the max value for difference the array/vector indexing type More... | |
static tUIndex | getMinUIndex () |
get the min value for difference the array/vector indexing type More... | |
static tFlag | getMaxFlag () |
get the max value for the tFlag type More... | |
static tFlag | getMinFlag () |
get the min value for the tFlag type More... | |
static tUInteger | getMaxUInteger () |
get the max value for the unsigned integer type More... | |
static tUInteger | getMinUInteger () |
get the min value for the unsigned integer type More... | |
static tInteger | getMaxInteger () |
get the max value for the integer type More... | |
static tInteger | getMinInteger () |
get the min value for the integer type More... | |
static tReal | getMaxReal () |
get the max value for the real type More... | |
static tReal | getMinReal () |
get the min value for the real type More... | |
static tReal | getRealEpsilon () |
get the eps which is the difference between 1 and the least value greater than 1 that is representable. More... | |
static tReal | getRealInfinity () |
get the infinity value More... | |
template<class T > | |
static T | computeEpsilon () |
compute epsilon More... | |
Static Public Attributes | |
static const tFlag | INITIAL_TIME_AS_REGULAR =0 |
static const tFlag | INITIAL_TIME_AS_OPTIMAL_AFFINE_H =1 |
static const tFlag | INITIAL_TIME_AS_MAX_LINEAR_CONSTANT_H =2 |
static const tReal | Mu0 =4*M_PI*1e-07 |
static const tReal | Gamma =-1.7e11 |
static const tDimension | X =0 |
static const tDimension | Y =1 |
static const tDimension | Z =2 |
static const tReal | NULL_VALUE [] ={0,0,0} |
Protected Member Functions | |
EMM_GoldenNumberIterativeTimeStep (void) | |
create More... | |
virtual | ~EMM_GoldenNumberIterativeTimeStep (void) |
destroy More... | |
void | computeOptimalTimeSteps (tReal &dt_c, tReal &dt_l) |
compute optimal time steps More... | |
virtual tBoolean | isSystemCompatible (SPC::EMM_LandauLifschitzSystem system) const |
return true if the system is compatible More... | |
SPC::EMM_LandauLifschitzSystem | getSystem () const |
get system for reading More... | |
SP::EMM_LandauLifschitzSystem | getSystem () |
get system for writing More... | |
virtual void | toDoAfterThisSetting () |
method called after the setting of the shared pointer this method can only be called once. More... | |
void | setThis (SP::CORE_Object p) |
set this weak shared pointer called toDoAfterThis setting method More... | |
Private Member Functions | |
SP_OBJECT (EMM_GoldenNumberIterativeTimeStep) | |
This class compute the new time step by optimizing a function EMM_LandauLisfchitzSystem::computePredictiveEnergyAtTime() within the optimizeTimeFunction() method as the golden number optimization.
The golden-section search is a technique for finding an extremum (minimum or maximum) of a function inside a specified interval. For a strictly unimodal function with an extremum inside the interval, it will find that extremum, while for an interval containing multiple extrema (possibly including the interval boundaries), it will converge to one of them.
If the only extremum on the interval is on a boundary of the interval, it will converge to that boundary point. The method operates by successively narrowing the range of values on the specified interval, which makes it relatively slow, but very robust.
The technique derives its name from the fact that the algorithm maintains the function values for four points whose three interval widths are in the ratio where is the golden ratio. The golden ratio of an interval [a,b] is such that . It leads to , so and
These ratios are maintained for each iteration and are maximally efficient.
Excepting boundary points, when searching for a minimum, the central point is always less than or equal to the outer points, assuring that a minimum is contained between the outer points. The converse is true when searching for a maximum.
Iterative algorithm
The golden optimization implementation is as follow:
compute the new dt until
|
inlineprotected |
|
inlineprotectedvirtual |
destroy
|
inlinestaticinherited |
compute epsilon
|
inherited |
compute initial time steps
References EMM_IterativeTimeStep::computeOptimalTimeSteps(), EMM_Stepper::getDt(), EMM_IterativeTimeStep::INITIAL_TIME_AS_MAX_LINEAR_CONSTANT_H, EMM_IterativeTimeStep::INITIAL_TIME_AS_REGULAR, EMM_IterativeTimeStep::mInitialTimeType, and tReal.
Referenced by EMM_IterativeTimeStep::computeNewTimeStep(), and EMM_IterativeTimeStep::getTimeStepBound().
|
virtualinherited |
compute the new time step
dt | the new time step |
nEvaluations | the number of evaluation of M to compute the new dt |
do
Reimplemented from EMM_RegularTimeStep.
Reimplemented in EMM_OptimalIterativeTimeStep, and EMM_SecondOrderIterativeTimeStep.
References EMM_IterativeTimeStep::computeInitialTimeStep(), EMM_IterativeTimeStep::mIsInitialTimeStepReset, EMM_IterativeTimeStep::mMaxEvaluationsNumber, EMM_IterativeTimeStep::mMaxTimeStepGap, EMM_IterativeTimeStep::mTimeStepBound, EMM_IterativeTimeStep::optimizeTimeFunction(), tBoolean, and tReal.
Referenced by EMM_IterativeTimeStep::getTimeStepBound().
|
protectedinherited |
compute optimal time steps
[out] | dt_c | optimal time step when H is constant |
[out] | dt_l | optimal time step when H is linear & self-adjointness |
Referenced by EMM_IterativeTimeStep::computeInitialTimeStep(), EMM_OptimalIterativeTimeStep::computeNewTimeStep(), and EMM_IterativeTimeStep::getTimeStepBound().
compute the time function at t
t | time to compute the function to optimize |
Referenced by BrentFunction::operator()().
|
inherited |
compute the time function at 0
References EMM_Stepper::getSystem(), and tReal.
Referenced by EMM_OptimalIterativeTimeStep::computeNewTimeStep(), EMM_IterativeTimeStep::getTimeStepBound(), EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction(), EMM_QuadraticNumberIterativeTimeStep::optimizeTimeFunction(), and optimizeTimeFunction().
|
inherited |
compute the time function at t and its first derivative
t | time to compute the function to optimize |
dF_dt | : the derivative of the time function |
Referenced by EMM_IterativeTimeStep::getTimeStepBound(), EMM_QuasiNewtonIterativeTimeStep::optimizeTimeFunction(), and EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction().
|
inherited |
compute the time function at 0 and its first derivative at time =0
dF_dt_0 | : the derivative of the time function |
References EMM_Stepper::getSystem().
|
inlineinherited |
get the characteristic time
References EMM_Stepper::mCharacteristicTime.
|
inherited |
return the class name of the object
References tString.
Referenced by CORE_Object::getIdentityString(), EMM_Operator::getName(), and CORE_Object::isMemoryChecked().
return the class name of the object
identityString | the identity string of the object |
|
inlinestaticinherited |
get the epsilon value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineinherited |
get the time step
References EMM_Stepper::mDt.
Referenced by EMM_IterativeTimeStep::computeInitialTimeStep(), and EMM_RegularTimeStep::computeNewTimeStep().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
get the epsilon value for T type
|
inlinestaticinherited |
get the epsilon value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineinherited |
return the identity string of the object of the form className_at_address
References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.
Referenced by MATH_GaussLegendreIntegration::copy(), EMM_MultiScaleGrid::initialize(), CORE_Object::isInstanceOf(), CORE_Object::printObjectsInMemory(), MATH_Matrix::toString(), EMMG_SLPeriodicMultiScale::toString(), EMM_Stepper::toString(), EMM_AnisotropyDirectionsField::toString(), EMM_BlockMassMatrix::toString(), CORE_Object::toString(), EMM_Tensors::toString(), EMM_MultiScaleGrid::toString(), EMM_MatterField::toString(), EMM_Grid3D::toString(), and EMM_LandauLifschitzSystem::toString().
|
inlinestaticinherited |
get the infinity for T type
|
inlineinherited |
get the initial type type
References EMM_IterativeTimeStep::mInitialTimeType.
|
inlineinherited |
get integration order
References EMM_IterativeTimeStep::mOrder.
Referenced by EMM_SecondOrderIterativeTimeStep::computeTimeFunctionDerivatives().
|
inlinestaticinherited |
get the epsilon value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tDouble type
|
inlinestaticinherited |
get the max value for tChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the tFlag type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tFloat type
Referenced by CORE_Test::testType().
|
inlineinherited |
get the max evalution of Energy for finding the best dt for which the variation of energy is <0
References EMM_IterativeTimeStep::mMaxEvaluationsNumber.
Referenced by EMM_QuasiNewtonIterativeTimeStep::optimizeTimeFunction(), EMM_QuadraticNumberIterativeTimeStep::optimizeTimeFunction(), and optimizeTimeFunction().
|
inlineinherited |
get the maximum time step gap
References EMM_IterativeTimeStep::mMaxTimeStepGap.
|
inlinestaticinherited |
get the max value for the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tInt type
Referenced by MATSGN_FFT::fastFourierTransform3D_FFTW(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the real type
Referenced by EMM_MatterField::adimensionize(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tUChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for difference the array/vector indexing type
Referenced by CORE_Vector< T >::addAfterIndices(), CORE_Vector< T >::search(), CORE_Test::testType(), CORE_Integer::toHexString(), and CORE_Integer::toString().
|
inlinestaticinherited |
get the max value for tUInt type
Referenced by EMM_Array< tCellFlag >::loadFromFile(), EMM_RealField::loadFromFile(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the unsigned integer type
Referenced by MATH_Pn::computeExtrenums(), EMM_MultiScaleGrid::computeLevelsNumber(), EMM_Input::restoreBackup(), MATH_P0::solve(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tUSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the tFlag type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the real type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tSInt type
Referenced by CORE_Test::testType().
|
inlineinherited |
get the min time step of iterative time step computing
References EMM_IterativeTimeStep::mMinTimeStep.
|
inlinestaticinherited |
get the min value for tUChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for difference the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the unsigned integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tULLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
|
inlineinherited |
return the identity string of the object
References CORE_Object::pointer2String().
|
inlinestaticinherited |
get the eps which is the difference between 1 and the least value greater than 1 that is representable.
Referenced by MATH_P4::solveP4De(), and CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value
Referenced by BrentFunction::BrentFunction(), EMM_OperatorsTest::compareDiscretizedData(), EMM_IterativeTimeStep::EMM_IterativeTimeStep(), EMM_SLElementaryDemagnetizedMatrix::Kxy(), NRFunction::NRFunction(), EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction(), and CORE_Test::testType().
|
inlineinherited |
get the shared pointer of this class into p
p | : shared pointer of the class This |
Referenced by CORE_Map< Key, Value >::getSharedPointer(), CORE_ArrayList< tString >::getSharedPointer(), EMM_Array< tCellFlag >::getSharedPointer(), CORE_Array< tCellFlag >::getSharedPointer(), CORE_MorseArray< tUChar >::getSharedPointer(), CORE_Vector< T >::getSharedPointer(), and CORE_Object::printObjectsInMemory().
|
inlineinherited |
get the shared pointer of this class into p
p | : shared pointer of the class This |
|
inlineprotectedinherited |
get system for reading
Referenced by EMM_OptimalTimeStep::computeNewTimeStep(), EMM_IterativeTimeStep::computeTimeFunction(), EMM_IterativeTimeStep::computeTimeFunctionDerivative(), and EMM_SecondOrderIterativeTimeStep::computeTimeFunctionDerivatives().
|
inlineprotectedinherited |
get system for writing
References EMM_Stepper::computeNewTimeStep(), tBoolean, EMM_Stepper::toString(), tReal, tString, and tUInteger.
|
inlineinherited |
|
inlinestaticinherited |
get the profilier
Referenced by MATH_MaskVector::add(), MATH_Vector::add(), EMM_DisplacementFEMOperator::addBoundaryElasticStress(), EMM_DisplacementFEMOperator::buildDataOnNeumannBoundaryFaces(), EMM_DisplacementFVMOperator::computeCineticEnergy(), EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFEMOperator::computeElasticTensor(), EMM_StaticMagneticTensorOperator::computeEnergy(), EMM_CubicAnisotropyOperator::computeEnergy(), EMM_MagnetostrictionOperator::computeEnergy(), EMM_DisplacementOperator::computeEnergy(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_FullExchangeOperator::computeMagneticExcitationField(), EMM_StaticMagnetostrictionOperator::computeMagneticExcitationField(), EMM_LinearAnisotropyOperator::computeMagneticExcitationField(), EMM_StaticMagneticTensorOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_MinimalExchangeOperator::computeMagneticExcitationField(), EMM_AnisotropyOperator::computeMagneticExcitationField(), EMM_MagnetostrictionOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_AnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFEMOperator::computeMagneticStress(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_DisplacementFEMOperator::computeStressConstraintEnergy(), EMM_FullExchangeOperator::discretize(), EMM_MinimalExchangeOperator::discretize(), EMM_CondensedMassMatrix::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DemagnetizedOperator::discretize(), EMMG_SLDemagnetizedOperator::discretize(), EMM_LandauLifschitzSystem::discretize(), MATH_Vector::divide(), MATH_MaskVector::dot(), MATH_Vector::dot(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_4Tensors::doubleDotCrossProduct(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_4Tensors::doubleDotProduct(), MATH_Vector::init(), MATH_MaskVector::init(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVM_Interpolator::interpolateUAtVertices(), EMMG_SLDemagnetizedOperator::localAssembly(), EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), EMM_2PackedSymmetricTensors::product(), EMM_CanonicalMassMatrix::product(), MATH_FullMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_BlockMassMatrix::product(), MATH_MorseMatrix::product(), EMMG_SLDemagnetizedOperator::product(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_LandauLifschitzSystem::resetOperatorsToInitialState(), EMM_DisplacementFVMOperator::setBoundaryFaceTypes(), FFTW_MultiDFTs::setFFT(), FFTW_MultiLevelsDFT::setFFT(), FFTW_MultiLevelsDFT::setLevels(), FFTW_MultiDFTs::setPlan(), FFTW_MultiLevelsDFT::setPlan(), EMM_CondensedMassMatrix::solve(), EMM_LandauLifschitzODE::solveODE(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_CanonicalMassMatrix::symmetricDot(), EMM_CondensedMassMatrix::symmetricDot(), EMM_BlockMassMatrix::symmetricDot(), FFTW_Test::test(), MATH_SolverTest::test(), EMM_ODETest::testODE(), and EMM_Grid3D::updateLimitConditionOnPoints().
|
inlineinherited |
get the max time step
References EMM_IterativeTimeStep::computeInitialTimeStep(), EMM_IterativeTimeStep::computeNewTimeStep(), EMM_IterativeTimeStep::computeOptimalTimeSteps(), EMM_IterativeTimeStep::computeTimeFunction(), EMM_IterativeTimeStep::computeTimeFunctionDerivative(), EMM_IterativeTimeStep::mTimeStepBound, EMM_IterativeTimeStep::optimizeTimeFunction(), tBoolean, EMM_IterativeTimeStep::toString(), tReal, tString, and tUInteger.
Referenced by EMM_SecondOrderIterativeTimeStep::computeNewTimeStep(), and EMM_OptimalIterativeTimeStep::computeNewTimeStep().
|
inlineinherited |
get the time steps number
References EMM_Stepper::mTimeStepsNumber.
|
inlinestaticinherited |
|
inlineinherited |
set the zoom in factor <1
References EMM_IterativeTimeStep::mZoomInFactor.
Referenced by EMM_QuasiNewtonIterativeTimeStep::optimizeTimeFunction(), EMM_QuadraticNumberIterativeTimeStep::optimizeTimeFunction(), and optimizeTimeFunction().
|
inlineinherited |
set the zoom out factor >1
References EMM_IterativeTimeStep::mZoomOutFactor.
Referenced by EMM_SecondOrderIterativeTimeStep::computeNewTimeStep(), EMM_OptimalIterativeTimeStep::computeNewTimeStep(), EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction(), EMM_QuadraticNumberIterativeTimeStep::optimizeTimeFunction(), and optimizeTimeFunction().
|
inlinestaticinherited |
return true if the machine is a 32 bits machine
References CORE_Object::pointer2String(), CORE_Object::printObjectsInMemory(), and tString.
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
return true if the machine is a 64 bits machine
Referenced by EMM_VTK::getVTKType(), and CORE_Test::testType().
|
inlineinherited |
test if the clas T is an instance of this class
References null.
Referenced by MATH_ToeplitzTest::toeplitzTest().
test if the object is an instance of className
name | name of the class |
References CORE_Object::getIdentityString().
|
inlinestaticinherited |
get if the memory checking is used
References CORE_Object::getClassName(), CORE_Object::mIsMemoryTesting, and tString.
Referenced by main().
|
inlineprotectedvirtualinherited |
return true if the system is compatible
system | : system to optimize |
Reimplemented in EMM_OptimalTimeStep, and EMM_ODETimeStep.
References null.
Referenced by EMM_ODETimeStep::isSystemCompatible(), EMM_OptimalTimeStep::isSystemCompatible(), and EMM_Stepper::setSystem().
|
inlinestatic |
build a shared pointer associated to the class
References EMM_GoldenNumberIterativeTimeStep(), optimizeTimeFunction(), tBoolean, tReal, and tUInteger.
Referenced by EMM_TimeClassFactory::NewInstance().
|
virtual |
optimize the time step function
dt |
|
dt_bound | : max value for dt |
evaluationsNumber | the number of calling of the method. |
The algorithm is as follow:
Implements EMM_IterativeTimeStep.
Reimplemented in EMM_QuadraticNumberIterativeTimeStep, and EMM_PolynomialInterpolationTimeStep.
References CORE_String::boolean2String(), EMM_IterativeTimeStep::computeTimeFunction(), EMM_IterativeTimeStep::getMaximumEvaluationsNumber(), EMM_IterativeTimeStep::getZoomInFactor(), EMM_IterativeTimeStep::getZoomOutFactor(), tBoolean, CORE_Real::toString(), CORE_Integer::toString(), tReal, and tUInteger.
Referenced by EMM_OptimalIterativeTimeStep::computeNewTimeStep(), New(), EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction(), and EMM_QuadraticNumberIterativeTimeStep::optimizeTimeFunction().
|
inlinestaticinherited |
get the output
Referenced by EMM_Matter::adimensionize(), EMM_DisplacementFVMOperator::backup(), EMM_DisplacementOperator::backup(), MATH_ElementaryMultiLevelsToeplitzMatrix::buildSpectralVectorProjector(), EMM_Test::caseTest(), EMM_Test::caseTests(), EMM_MatterField::computeAnisotropyDirectionsField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), MATH_MultiLevelsToeplitzMatrix::copy(), CORE_Exception::CORE_Exception(), EMM_MatterField::createAnisotropyOperator(), CORE_Run::createIO(), EMM_ElementaryTest::defaultBackupTest(), EMM_ElementaryTest::defaultTest(), MATH_MultiLevelsFFTToeplitzMatrix::diagonalize(), EMM_DisplacementFVMOperator::discretize(), EMM_MagnetostrictionOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_TensorsTest::doubleDotCrossDoubleDotScalarTests(), EMM_4Tensors::doubleDotCrossProduct(), EMM_TensorsTest::doubleDotCrossProductTests(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_TensorsTest::doubleDotCrossSquaredScalarTests(), EMM_4Tensors::doubleDotProduct(), EMM_TensorsTest::doubleDotProductTests(), EMM_DisplacementWaveTest::elasticWaveTest(), EMM_Test::elementaryTests(), FFTW_Test::fftwTutorial(), MATH_IntegrationTest::gaussLegendreTest(), EMM_MagnetostrictionTest::HComputingTest(), EMM_DemagnetizedPeriodicalTest::HTest(), EMMH_HysteresisTest::hysteresisDefaultCycleTest(), EMM_TensorsTest::initializationTests(), EMM_MultiScaleGrid::initialize(), EMM_MultiScaleSDGrid::initialize(), EMM_MatterField::loadFromANIFile(), EMM_AnisotropyDirectionsField::loadFromFile(), EMM_Matter::loadFromFile(), EMM_Grid3D::loadFromGEOFile(), EMM_MatterField::loadFromLOCFile(), EMM_Array< tCellFlag >::loadFromStream(), EMM_Matter::loadFromStream(), EMM_Matter::loadMattersFromFile(), EMM_Run::loadSystemFromOptions(), EMM_ElementaryTest::magnetostrictionBackupTest(), CORE_Run::make(), EMMH_Run::makeHysteresis(), EMM_Run::makeRun(), CORE_Run::makeType(), EMM_ElementaryTest::optionsTest(), MATH_PolynomialTest::P4Tests(), EMM_Test::primaryTests(), EMM_LandauLifschitzSystem::printLog(), CORE_Run::printOptions(), EMM_2PackedSymmetricTensors::product(), EMMG_SLDemagnetizedOperator::projectionOnSpectralSpace(), CORE_Run::readOptionsFromCommandLine(), CORE_Test::readVectorTest(), EMM_DemagnetizedPeriodicalTest::relaxationTest(), EMM_DisplacementFVMOperator::restore(), EMM_DisplacementOperator::restore(), EMM_Input::restoreBackup(), EMMH_Hysteresis::run(), EMM_Output::save(), EMM_AnisotropyDirectionsField::saveToFile(), EMM_MatterField::saveToFile(), EMM_Grid3D::saveToGEOFile(), CORE_IOTest::searchTest(), EMMH_Hysteresis::setInitialMagnetizationField(), MATH_MultiLevelsToeplitzMatrix::setLevels(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_TensorsTest::squaredDoubleDotCrossScalarTests(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_TensorsTest::squaredDoubleDotScalarTests(), EMM_TensorsTest::squaredDoubleDotTests(), EMM_MatterTest::testAdimensionize(), EMM_MatterTest::testANIFile(), CORE_Test::testComplex(), CORE_Test::testDateWeek(), FFTW_Test::testDFT(), EMM_MatterTest::testIO(), EMM_ODETest::testODE(), CORE_Test::testOut(), CORE_Test::testReal(), EMM_FieldTest::testRealArray(), EMM_Grid3DTest::testSegment(), EMM_Grid3DTest::testThinSheet(), CORE_Test::testTime(), CORE_Test::testType(), MATH_FullMatrix::toString(), EMM_DemagnetizedPeriodicalTest::xyPeriodicalCubeSDGTest(), and EMM_DemagnetizedPeriodicalTest::xyPeriodicalSheetSDGTest().
|
staticinherited |
return the string representation of a pointer
obj | : oject to get the string pointer |
References tString.
Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), CORE_Object::is32Architecture(), and CORE_Object::~CORE_Object().
|
staticinherited |
print object in memory
f | : output to print the objects in memory |
References CORE_Object::getIdentityString(), CORE_Object::getSharedPointer(), CORE_Object::mIsMemoryTesting, CORE_Object::mObjects, and tInteger.
|
inlinestaticinherited |
print object in memory in the standart output
Referenced by CORE_Object::is32Architecture(), and main().
|
inlineinherited |
set if the initial time step is set to optimal time step
isReset | : true to recompute the initial time step from the optimal one |
|
inlinestaticinherited |
|
inherited |
reset the reverse system relation
References EMM_Stepper::mSystem, and null.
Referenced by EMM_Stepper::setSystem().
|
inlinestaticinherited |
|
inlineinherited |
set the characteristic time the real time will be t. mTc in seconds
Referenced by EMM_LandauLifschitzSystem::adimensionize().
|
inlineinherited |
set the time step
[in] | dt | : time step |
Referenced by EMMH_Hysteresis::run().
|
inlineinherited |
set the dt factor
[in] | f | the multiply factor of dt |
|
inlineinherited |
set the initial time type
t | : intitial time type in {INITIAL_TIME_AS_REGULAR,INTIAL_TIME_AS_LINEAR_H} |
|
inlineinherited |
set the initial time type
t | : intitial time type in {"regular","optimal-linear","max-optimal-linear-constant} |
References EMM_IterativeTimeStep::INITIAL_TIME_AS_MAX_LINEAR_CONSTANT_H.
|
inlineinherited |
set the order of evaluation the time function
order | is iether 1 or 2 |
|
inlinestaticinherited |
set if the memory checking is used
v | : true to check memory |
Referenced by main().
|
inlineinherited |
set the max evalution of Energy for finding the best dt for which the variation of energy is <0
n | the max loops number |
|
inlineinherited |
set the max gap betewen 2 time step
dt | max time set gap |
|
inlineinherited |
set the min time step of iterative time step computing
dt | : is the min value of the time step under which the computing is stopped |
|
inlinestaticinherited |
|
inherited |
set the reverse system relation
system | : the system to set |
References CORE_Object::getThis(), EMM_Stepper::isSystemCompatible(), EMM_Stepper::mSystem, null, and EMM_Stepper::resetSystem().
|
inlineinherited |
set the end time with respect of the characteristic time real time = t * getCharacteristicTime()
t | target time |
References EMM_Stepper::mEndTime, and EMM_Stepper::mTimeStepsNumber.
|
inlineprotectedinherited |
set this weak shared pointer called toDoAfterThis setting method
p | : shared pointer of the class This |
References CORE_Object::toDoAfterThisSetting().
|
inlinestaticinherited |
set the thread
thread | the shared pointer to the thread |
References null.
Referenced by EMM_Run::EMM_Run(), EMM_TensorsRun::EMM_TensorsRun(), and MATH_SolverRun::MATH_SolverRun().
|
inlineinherited |
set the max time step
dt | max time step |
|
inlineinherited |
set the time steps number
|
inlineinherited |
set the zoom in factor <1
z | zoom in factor |
|
inlineinherited |
set the zoom out factor >1
z | zoom out factor |
|
private |
|
inlineprotectedvirtualinherited |
method called after the setting of the shared pointer this method can only be called once.
Reimplemented from CORE_Object.
Reimplemented in EMM_DisplacementOperator, EMM_DisplacementFVMOperator, EMM_GaussLegendreRelaxation, and EMM_GradGaussLegendreRelaxation.
Referenced by EMM_GaussLegendreRelaxation::toDoAfterThisSetting(), and EMM_DisplacementOperator::toDoAfterThisSetting().
|
virtualinherited |
turn the regular time into a string
Reimplemented from EMM_Stepper.
References CORE_String::boolean2String(), EMM_IterativeTimeStep::INITIAL_TIME_AS_MAX_LINEAR_CONSTANT_H, EMM_IterativeTimeStep::INITIAL_TIME_AS_OPTIMAL_AFFINE_H, EMM_IterativeTimeStep::INITIAL_TIME_AS_REGULAR, EMM_IterativeTimeStep::mInitialTimeType, EMM_IterativeTimeStep::mIsInitialTimeStepReset, EMM_IterativeTimeStep::mMaxEvaluationsNumber, EMM_IterativeTimeStep::mMaxTimeStepGap, EMM_IterativeTimeStep::mMinTimeStep, EMM_IterativeTimeStep::mOrder, EMM_IterativeTimeStep::mTimeStepBound, EMM_IterativeTimeStep::mZoomInFactor, EMM_IterativeTimeStep::mZoomOutFactor, CORE_Real::toString(), CORE_Integer::toString(), EMM_Stepper::toString(), and tString.
Referenced by EMM_IterativeTimeStep::getTimeStepBound().
|
staticinherited |
|
staticinherited |
|
staticinherited |
Referenced by EMM_IterativeTimeStep::toString().
|
staticinherited |
Referenced by EMM_IterativeTimeStep::computeInitialTimeStep(), and EMM_IterativeTimeStep::toString().
|
staticinherited |
Referenced by EMM_MatterField::adimensionize(), EMM_MagnetostrictionOperator::adimensionize(), EMM_Matter::adimensionize(), EMM_CubicAnisotropyOperator::ComputeMagneticExcitation(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_CubicAnisotropyOperator::ComputeMagneticExcitationGradient(), EMM_Test::createMatters(), EMM_MatterField::getElasticTensorAdimensionizedParameter(), and EMM_MatterTest::testAdimensionize().
|
staticinherited |
Referenced by EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_SSGROperator::computeGradAlmostNullUAtFaceByStokesIntegration(), EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtNextCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VGROperator::computeGradUAtFace(), EMM_DisplacementFVM_SSGROperator::computeGradUAtFaceByStokesIntegration(), EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion(), EMM_DisplacementFVM_Interpolator::interpolateUAtEdge(), and EMM_DisplacementFVM_Interpolator::interpolateUAtVertices().
|
staticinherited |
|
staticinherited |
Referenced by EMMG_SLSDXPeriodicMultiScale::computeMultiGridExcitationField(), EMMG_RealField::fitToSize(), EMM_MassMatrix::getElementVolume(), EMM_CanonicalMassMatrix::isSymmetric(), EMM_BlockMassMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_RealField::setValue(), EMM_CanonicalMassMatrix::solve(), EMM_BlockMassMatrix::solve(), EMM_BlockMassMatrix::toString(), and EMMG_RealField::wedge().
|
staticinherited |