35#ifndef staggeredproblem_h
36#define staggeredproblem_h
44#define _IFT_StaggeredProblem_Name "staggeredproblem"
45#define _IFT_StaggeredProblem_deltat "deltat"
46#define _IFT_StaggeredProblem_dtf "dtf"
47#define _IFT_StaggeredProblem_timeDefinedByProb "timedefinedbyprob"
48#define _IFT_StaggeredProblem_stepmultiplier "stepmultiplier"
50#define _IFT_StaggeredProblem_prescribedtimes "prescribedtimes"
51#define _IFT_StaggeredProblem_prob1 "prob1"
52#define _IFT_StaggeredProblem_prob2 "prob2"
53#define _IFT_StaggeredProblem_prob3 "prob3"
54#define _IFT_StaggeredProblem_coupling "coupling"
55#define _IFT_StaggeredProblem_adaptiveStepLength "adaptivesteplength"
56#define _IFT_StaggeredProblem_minsteplength "minsteplength"
57#define _IFT_StaggeredProblem_maxsteplength "maxsteplength"
58#define _IFT_StaggeredProblem_reqiterations "reqiterations"
59#define _IFT_StaggeredProblem_endoftimeofinterest "endoftimeofinterest"
60#define _IFT_StaggeredProblem_adaptivestepsince "adaptivestepsince"
94 std :: vector< std :: unique_ptr< EngngModel > >
emodelList;
159 void terminate(
TimeStep *tStep)
override;
160 void doStepOutput(
TimeStep *tStep)
override;
162 int instanciateYourself(
DataReader &dr,
InputRecord &ir,
const char *outFileName,
const char *desc)
override;
164 void updateAttributes(
MetaStep *mStep)
override;
168 void updateDomainLinks()
override;
197 double giveDeltaT(
int n);
202 double giveDiscreteTime(
int n);
214 int checkProblemConsistency()
override;
220 int instanciateSlaveProblems();
EngngModel(int i, EngngModel *_master=NULL)
double minStepLength
adaptive time step length - minimum
StaggeredProblem(int i, EngngModel *_master=nullptr)
int forceEquationNumbering() override
TimeStep * givePreviousStep(bool force=false) override
int useNonlocalStiffnessOption() override
Returns nonzero if nonlocal stiffness option activated.
std ::vector< std ::string > inputStreamNames
StaggeredProblem & operator=(const StaggeredProblem &)=delete
void showSparseMtrxStructure(int type, oofegGraphicContext &gc, TimeStep *tStep) override
TimeStep * giveNextStep() override
Returns next time step (next to current step) of receiver.
void solveYourself() override
const char * giveClassName() const override
Returns class name of the receiver.
EngngModel * giveTimeControl()
int dtFunction
Associated time function for time step increment.
IntArray coupledModels
List of slave models to which this model is coupled.
int initializeAdaptive(int tStepNumber) override
int timeDefinedByProb
Optional parameter which specify problems to define load time functions.
double reqIterations
adaptive time step length - required (=optimum) number of iterations
StaggeredProblem(const StaggeredProblem &)=delete
void printOutputAt(FILE *file, TimeStep *tStep) override
fMode giveFormulation() override
TimeStep * giveCurrentStep(bool force=false) override
void setRenumberFlag() override
Sets the renumber flag to true.
void updateYourself(TimeStep *tStep) override
void solveYourselfAt(TimeStep *tStep) override
double maxStepLength
adaptive time step length - maximum
FloatArray discreteTimes
Specified times where the problem is solved.
void setContextOutputMode(ContextOutputMode contextMode)
int giveNumberOfSlaveProblems() override
Returns number of slave problems.
void giveCoupledModels(IntArray &answer)
Returns list of model number that this model is coupled with. Used for staggered approach.
int giveNumberOfFirstStep(bool force=false) override
void initializeYourself(TimeStep *tStep) override
double adaptiveStepSince
adaptive time step length applies after prescribed time
void setProblemMode(problemMode pmode)
virtual const char * giveInputRecordName() const
double endOfTimeOfInterest
std ::vector< std ::unique_ptr< EngngModel > > emodelList
List of engineering models to solve sequentially.
TimeStep * giveSolutionStepWhenIcApply(bool force=false) override
void setUDContextOutputMode(int cStep)
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
#define _IFT_StaggeredProblem_Name