ICoCo::ProblemTrio#

#include <ProblemTrio.h>

class ProblemTrio

How to cite this class in this doc#

:ref:`ICoCo::ProblemTrio <class-icoco-problemtrio>`
[ICoCo::ProblemTrio](#class-icoco-problemtrio)

Detailed description#

This class defines the API a problem has to implement in order to be coupled. For precise specifications and possible use of this API, See NT SSTH/LMDL_2006_001 Implements IterativeUnsteadyProblem and FieldIO

Inherits from#

  • public : Problem

List of Public Methods#

Complete Member Function Documentation#

abortTimeStep
void ProblemTrio::abortTimeStep() override

Aborts the resolution of the current time step.

References
How to cite in this doc:
:ref:`void ProblemTrio::abortTimeStep() override <public-void-problemtrio-aborttimestep-override>`
[void ProblemTrio::abortTimeStep() override](#public-void-problemtrio-aborttimestep-override)
computeTimeStep
double ProblemTrio::computeTimeStep(bool &stop) const override

Compute the value the Problem would like for the next time step.

This value will not necessarily be used at the call of initTimeStep, but it is a hint. This method may use all the internal state of the Problem.

References
How to cite in this doc:
:ref:`double ProblemTrio::computeTimeStep(bool &stop) const override <public-double-problemtrio-computetimestep-bool-ref-stop-const-override>`
[double ProblemTrio::computeTimeStep(bool &stop) const override](#public-double-problemtrio-computetimestep-bool-ref-stop-const-override)
getDirectAccessToUnknown
ICoCo::MEDDoubleField ProblemTrio::getDirectAccessToUnknown(const std::string &unk_name, bool isFuture)
References
How to cite in this doc:
:ref:`ICoCo::MEDDoubleField ProblemTrio::getDirectAccessToUnknown(const std::string &unk_name, bool isFuture) <public-icoco-meddoublefield-problemtrio-getdirectaccesstounknown-const-std-string-ref-unk-name-bool-isfuture>`
[ICoCo::MEDDoubleField ProblemTrio::getDirectAccessToUnknown(const std::string &unk_name, bool isFuture)](#public-icoco-meddoublefield-problemtrio-getdirectaccesstounknown-const-std-string-ref-unk-name-bool-isfuture)
getFieldType
ICoCo::ValueType ProblemTrio::getFieldType(const std::string &name) const override
References
How to cite in this doc:
:ref:`ICoCo::ValueType ProblemTrio::getFieldType(const std::string &name) const override <public-icoco-valuetype-problemtrio-getfieldtype-const-std-string-ref-name-const-override>`
[ICoCo::ValueType ProblemTrio::getFieldType(const std::string &name) const override](#public-icoco-valuetype-problemtrio-getfieldtype-const-std-string-ref-name-const-override)
getInputFieldsNames
vector<string> ProblemTrio::getInputFieldsNames() const override

This method is used to find the names of input fields understood by the Problem.

References
Referenced By
How to cite in this doc:
:ref:`vector<string> ProblemTrio::getInputFieldsNames() const override <public-vector-string-problemtrio-getinputfieldsnames-const-override>`
[vector<string> ProblemTrio::getInputFieldsNames() const override](#public-vector-string-problemtrio-getinputfieldsnames-const-override)
getInputFieldTemplate
void ProblemTrio::getInputFieldTemplate(const std::string &name, TrioField &afield) const override

This method is used to get a template of a field expected for the given name.

References
Referenced By
How to cite in this doc:
:ref:`void ProblemTrio::getInputFieldTemplate(const std::string &name, TrioField &afield) const override <public-void-problemtrio-getinputfieldtemplate-const-std-string-ref-name-triofield-ref-afield-const-override>`
[void ProblemTrio::getInputFieldTemplate(const std::string &name, TrioField &afield) const override](#public-void-problemtrio-getinputfieldtemplate-const-std-string-ref-name-triofield-ref-afield-const-override)
getInputMEDDoubleFieldTemplate
void ProblemTrio::getInputMEDDoubleFieldTemplate(const std::string &name, MEDDoubleField &afield) const override
References
How to cite in this doc:
:ref:`void ProblemTrio::getInputMEDDoubleFieldTemplate(const std::string &name, MEDDoubleField &afield) const override <public-void-problemtrio-getinputmeddoublefieldtemplate-const-std-string-ref-name-meddoublefield-ref-afield-const-override>`
[void ProblemTrio::getInputMEDDoubleFieldTemplate(const std::string &name, MEDDoubleField &afield) const override](#public-void-problemtrio-getinputmeddoublefieldtemplate-const-std-string-ref-name-meddoublefield-ref-afield-const-override)
getMEDCouplingMajorVersion
int ProblemTrio::getMEDCouplingMajorVersion() const override
How to cite in this doc:
:ref:`int ProblemTrio::getMEDCouplingMajorVersion() const override <public-int-problemtrio-getmedcouplingmajorversion-const-override>`
[int ProblemTrio::getMEDCouplingMajorVersion() const override](#public-int-problemtrio-getmedcouplingmajorversion-const-override)
getOutputDoubleValue
double ProblemTrio::getOutputDoubleValue(const std::string &name) const override
References
How to cite in this doc:
:ref:`double ProblemTrio::getOutputDoubleValue(const std::string &name) const override <public-double-problemtrio-getoutputdoublevalue-const-std-string-ref-name-const-override>`
[double ProblemTrio::getOutputDoubleValue(const std::string &name) const override](#public-double-problemtrio-getoutputdoublevalue-const-std-string-ref-name-const-override)
getOutputField
void ProblemTrio::getOutputField(const std::string &name, TrioField &afield) const override
References
Referenced By
How to cite in this doc:
:ref:`void ProblemTrio::getOutputField(const std::string &name, TrioField &afield) const override <public-void-problemtrio-getoutputfield-const-std-string-ref-name-triofield-ref-afield-const-override>`
[void ProblemTrio::getOutputField(const std::string &name, TrioField &afield) const override](#public-void-problemtrio-getoutputfield-const-std-string-ref-name-triofield-ref-afield-const-override)
getOutputFieldsNames
vector<string> ProblemTrio::getOutputFieldsNames() const override
References
Referenced By
How to cite in this doc:
:ref:`vector<string> ProblemTrio::getOutputFieldsNames() const override <public-vector-string-problemtrio-getoutputfieldsnames-const-override>`
[vector<string> ProblemTrio::getOutputFieldsNames() const override](#public-vector-string-problemtrio-getoutputfieldsnames-const-override)
getOutputIntValue
int ProblemTrio::getOutputIntValue(const std::string &name) const override
References
How to cite in this doc:
:ref:`int ProblemTrio::getOutputIntValue(const std::string &name) const override <public-int-problemtrio-getoutputintvalue-const-std-string-ref-name-const-override>`
[int ProblemTrio::getOutputIntValue(const std::string &name) const override](#public-int-problemtrio-getoutputintvalue-const-std-string-ref-name-const-override)
getOutputMEDDoubleField
void ProblemTrio::getOutputMEDDoubleField(const std::string &name, MEDDoubleField &afield) const override
References
How to cite in this doc:
:ref:`void ProblemTrio::getOutputMEDDoubleField(const std::string &name, MEDDoubleField &afield) const override <public-void-problemtrio-getoutputmeddoublefield-const-std-string-ref-name-meddoublefield-ref-afield-const-override>`
[void ProblemTrio::getOutputMEDDoubleField(const std::string &name, MEDDoubleField &afield) const override](#public-void-problemtrio-getoutputmeddoublefield-const-std-string-ref-name-meddoublefield-ref-afield-const-override)
getOutputStringValue
std::string ProblemTrio::getOutputStringValue(const std::string &name) const override
References
How to cite in this doc:
:ref:`std::string ProblemTrio::getOutputStringValue(const std::string &name) const override <public-std-string-problemtrio-getoutputstringvalue-const-std-string-ref-name-const-override>`
[std::string ProblemTrio::getOutputStringValue(const std::string &name) const override](#public-std-string-problemtrio-getoutputstringvalue-const-std-string-ref-name-const-override)
getStationaryMode
bool ProblemTrio::getStationaryMode() const override
References
How to cite in this doc:
:ref:`bool ProblemTrio::getStationaryMode() const override <public-bool-problemtrio-getstationarymode-const-override>`
[bool ProblemTrio::getStationaryMode() const override](#public-bool-problemtrio-getstationarymode-const-override)
initialize
bool ProblemTrio::initialize() override

This method is called once at the beginning, before any other one of the interface Problem.

References
How to cite in this doc:
:ref:`bool ProblemTrio::initialize() override <public-bool-problemtrio-initialize-override>`
[bool ProblemTrio::initialize() override](#public-bool-problemtrio-initialize-override)
initialize_pb
bool ProblemTrio::initialize_pb(Probleme_U &pb)
References
Referenced By
How to cite in this doc:
:ref:`bool ProblemTrio::initialize_pb(Probleme_U &pb) <public-bool-problemtrio-initialize-pb-probleme-u-ref-pb>`
[bool ProblemTrio::initialize_pb(Probleme_U &pb)](#public-bool-problemtrio-initialize-pb-probleme-u-ref-pb)
initTimeStep
bool ProblemTrio::initTimeStep(double dt) override

This method allocates and initializes the unknown and given fields for the future time step.

The value of the interval is imposed through the parameter dt. In case of error, returns false.

References
How to cite in this doc:
:ref:`bool ProblemTrio::initTimeStep(double dt) override <public-bool-problemtrio-inittimestep-double-dt-override>`
[bool ProblemTrio::initTimeStep(double dt) override](#public-bool-problemtrio-inittimestep-double-dt-override)
isMEDCoupling64Bits
bool ProblemTrio::isMEDCoupling64Bits() const override
How to cite in this doc:
:ref:`bool ProblemTrio::isMEDCoupling64Bits() const override <public-bool-problemtrio-ismedcoupling64bits-const-override>`
[bool ProblemTrio::isMEDCoupling64Bits() const override](#public-bool-problemtrio-ismedcoupling64bits-const-override)
isStationary
bool ProblemTrio::isStationary() const override

Tells if the Problem unknowns have changed during the last time step.

References
How to cite in this doc:
:ref:`bool ProblemTrio::isStationary() const override <public-bool-problemtrio-isstationary-const-override>`
[bool ProblemTrio::isStationary() const override](#public-bool-problemtrio-isstationary-const-override)
iterateTimeStep
bool ProblemTrio::iterateTimeStep(bool &converged) override

In the case solveTimeStep uses an iterative process, this method executes a single iteration.

It is thus possible to modify the given fields between iterations. converged is set to true if the process has converged, ie if the unknown fields are solution to the problem on the next time step. Otherwise converged is set to false. The return value indicates if the convergence process behaves normally. If false, the ProblemTrio wishes to abort the time step resolution.

References
How to cite in this doc:
:ref:`bool ProblemTrio::iterateTimeStep(bool &converged) override <public-bool-problemtrio-iteratetimestep-bool-ref-converged-override>`
[bool ProblemTrio::iterateTimeStep(bool &converged) override](#public-bool-problemtrio-iteratetimestep-bool-ref-converged-override)
presentTime
double ProblemTrio::presentTime() const override

Returns the present time.

This value may change only at the call of validateTimeStep. A surcharger

References
How to cite in this doc:
:ref:`double ProblemTrio::presentTime() const override <public-double-problemtrio-presenttime-const-override>`
[double ProblemTrio::presentTime() const override](#public-double-problemtrio-presenttime-const-override)
ProblemTrio
ProblemTrio::ProblemTrio()

As initialize doesn’t have any arguments, they can be passed to the Problem at the time of instantiation.

They can include data file name, MPI communicator,.. In this implementation (for use outside TRUST), only the name of an underlying Probleme_U needs to be provided.

References
How to cite in this doc:
:ref:`ProblemTrio::ProblemTrio() <public-problemtrio-problemtrio>`
[ProblemTrio::ProblemTrio()](#public-problemtrio-problemtrio)
resetTime
void ProblemTrio::resetTime(double time) override

Reset the current time of the Problem to a given value.

New in version 2 of ICoCo . Particularly useful for the initialization of complex transients: the starting point of the transient of interest is computed first, the time is reset to 0, and then the actual transient of interest starts with proper initial conditions, and global time 0. Can be called outside the TIME_STEP_DEFINED context (see Problem documentation).

References
How to cite in this doc:
:ref:`void ProblemTrio::resetTime(double time) override <public-void-problemtrio-resettime-double-time-override>`
[void ProblemTrio::resetTime(double time) override](#public-void-problemtrio-resettime-double-time-override)
setDataFile
void ProblemTrio::setDataFile(const std::string &datafile) override
How to cite in this doc:
:ref:`void ProblemTrio::setDataFile(const std::string &datafile) override <public-void-problemtrio-setdatafile-const-std-string-ref-datafile-override>`
[void ProblemTrio::setDataFile(const std::string &datafile) override](#public-void-problemtrio-setdatafile-const-std-string-ref-datafile-override)
setInputDoubleValue
void ProblemTrio::setInputDoubleValue(const std::string &name, const double &val) override
References
How to cite in this doc:
:ref:`void ProblemTrio::setInputDoubleValue(const std::string &name, const double &val) override <public-void-problemtrio-setinputdoublevalue-const-std-string-ref-name-const-double-ref-val-override>`
[void ProblemTrio::setInputDoubleValue(const std::string &name, const double &val) override](#public-void-problemtrio-setinputdoublevalue-const-std-string-ref-name-const-double-ref-val-override)
setInputField
void ProblemTrio::setInputField(const std::string &name, const TrioField &afield) override

This method is used to provide the Problem with an input field.

References
Referenced By
How to cite in this doc:
:ref:`void ProblemTrio::setInputField(const std::string &name, const TrioField &afield) override <public-void-problemtrio-setinputfield-const-std-string-ref-name-const-triofield-ref-afield-override>`
[void ProblemTrio::setInputField(const std::string &name, const TrioField &afield) override](#public-void-problemtrio-setinputfield-const-std-string-ref-name-const-triofield-ref-afield-override)
setInputIntValue
void ProblemTrio::setInputIntValue(const std::string &name, const int &val) override
References
How to cite in this doc:
:ref:`void ProblemTrio::setInputIntValue(const std::string &name, const int &val) override <public-void-problemtrio-setinputintvalue-const-std-string-ref-name-const-int-ref-val-override>`
[void ProblemTrio::setInputIntValue(const std::string &name, const int &val) override](#public-void-problemtrio-setinputintvalue-const-std-string-ref-name-const-int-ref-val-override)
setInputMEDDoubleField
void ProblemTrio::setInputMEDDoubleField(const std::string &name, const MEDDoubleField &afield) override
References
How to cite in this doc:
:ref:`void ProblemTrio::setInputMEDDoubleField(const std::string &name, const MEDDoubleField &afield) override <public-void-problemtrio-setinputmeddoublefield-const-std-string-ref-name-const-meddoublefield-ref-afield-override>`
[void ProblemTrio::setInputMEDDoubleField(const std::string &name, const MEDDoubleField &afield) override](#public-void-problemtrio-setinputmeddoublefield-const-std-string-ref-name-const-meddoublefield-ref-afield-override)
setInputStringValue
void ProblemTrio::setInputStringValue(const std::string &name, const std::string &val) override
References
How to cite in this doc:
:ref:`void ProblemTrio::setInputStringValue(const std::string &name, const std::string &val) override <public-void-problemtrio-setinputstringvalue-const-std-string-ref-name-const-std-string-ref-val-override>`
[void ProblemTrio::setInputStringValue(const std::string &name, const std::string &val) override](#public-void-problemtrio-setinputstringvalue-const-std-string-ref-name-const-std-string-ref-val-override)
setMPIComm
void ProblemTrio::setMPIComm(void *) override
How to cite in this doc:
:ref:`void ProblemTrio::setMPIComm(void *) override <public-void-problemtrio-setmpicomm-void-ptr-override>`
[void ProblemTrio::setMPIComm(void *) override](#public-void-problemtrio-setmpicomm-void-ptr-override)
setStationaryMode
void ProblemTrio::setStationaryMode(bool stationary) override
References
How to cite in this doc:
:ref:`void ProblemTrio::setStationaryMode(bool stationary) override <public-void-problemtrio-setstationarymode-bool-stationary-override>`
[void ProblemTrio::setStationaryMode(bool stationary) override](#public-void-problemtrio-setstationarymode-bool-stationary-override)
solveTimeStep
bool ProblemTrio::solveTimeStep() override

Calculates the unknown fields for the next time step.

The default implementation uses iterations.

References
How to cite in this doc:
:ref:`bool ProblemTrio::solveTimeStep() override <public-bool-problemtrio-solvetimestep-override>`
[bool ProblemTrio::solveTimeStep() override](#public-bool-problemtrio-solvetimestep-override)
terminate
void ProblemTrio::terminate() override

This method is called once at the end, after any other one.

It frees the memory and saves anything that needs to be saved.

References
How to cite in this doc:
:ref:`void ProblemTrio::terminate() override <public-void-problemtrio-terminate-override>`
[void ProblemTrio::terminate() override](#public-void-problemtrio-terminate-override)
updateOutputField
void ProblemTrio::updateOutputField(const std::string &name, TrioField &afield) const override
References
How to cite in this doc:
:ref:`void ProblemTrio::updateOutputField(const std::string &name, TrioField &afield) const override <public-void-problemtrio-updateoutputfield-const-std-string-ref-name-triofield-ref-afield-const-override>`
[void ProblemTrio::updateOutputField(const std::string &name, TrioField &afield) const override](#public-void-problemtrio-updateoutputfield-const-std-string-ref-name-triofield-ref-afield-const-override)
updateOutputMEDDoubleField
void ProblemTrio::updateOutputMEDDoubleField(const std::string &name, MEDDoubleField &afield) const override
References
How to cite in this doc:
:ref:`void ProblemTrio::updateOutputMEDDoubleField(const std::string &name, MEDDoubleField &afield) const override <public-void-problemtrio-updateoutputmeddoublefield-const-std-string-ref-name-meddoublefield-ref-afield-const-override>`
[void ProblemTrio::updateOutputMEDDoubleField(const std::string &name, MEDDoubleField &afield) const override](#public-void-problemtrio-updateoutputmeddoublefield-const-std-string-ref-name-meddoublefield-ref-afield-const-override)
validateTimeStep
void ProblemTrio::validateTimeStep() override

Validates the calculated unknown by moving the present time at the end of the time step.

This method is allowed to free past values of the unknown and given fields.

References
How to cite in this doc:
:ref:`void ProblemTrio::validateTimeStep() override <public-void-problemtrio-validatetimestep-override>`
[void ProblemTrio::validateTimeStep() override](#public-void-problemtrio-validatetimestep-override)
~ProblemTrio
ProblemTrio::~ProblemTrio() override
References
How to cite in this doc:
:ref:`ProblemTrio::~ProblemTrio() override <public-problemtrio-dtor-problemtrio-override>`
[ProblemTrio::~ProblemTrio() override](#public-problemtrio-dtor-problemtrio-override)

Attributes Documentation#

my_params (protected)
Init_Params* ICoCo::ProblemTrio::my_params
p (protected)
mon_main* ICoCo::ProblemTrio::p
pb (protected)
Probleme_U* ICoCo::ProblemTrio::pb