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;
149 void setUDContextOutputMode(
int cStep);
151 virtual void setRenumberFlag();
153 virtual void solveYourself();
154 virtual void solveYourselfAt(
TimeStep *tStep);
155 virtual int forceEquationNumbering();
156 virtual void updateYourself(
TimeStep *tStep);
159 virtual void terminate(
TimeStep *tStep);
160 virtual void doStepOutput(
TimeStep *tStep);
162 virtual int instanciateYourself(
DataReader &dr,
InputRecord *ir,
const char *outFileName,
const char *desc);
164 virtual void updateAttributes(
MetaStep *mStep);
168 virtual void updateDomainLinks();
170 void printYourself();
171 virtual void printOutputAt(FILE *file,
TimeStep *tStep);
173 virtual TimeStep *giveCurrentStep(
bool force =
false);
174 virtual TimeStep *givePreviousStep(
bool force =
false);
175 virtual TimeStep *giveSolutionStepWhenIcApply(
bool force =
false);
176 virtual int giveNumberOfFirstStep(
bool force =
false);
196 double giveDeltaT(
int n);
201 double giveDiscreteTime(
int n);
213 virtual int checkProblemConsistency();
217 virtual int instanciateDefaultMetaStep(
InputRecord *ir);
220 int instanciateSlaveProblems();
223 #endif // staggeredproblem_h
int timeDefinedByProb
Optional parameter which specify problems to define load time functions.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
virtual const char * giveClassName() const
Returns class name of the receiver.
#define _IFT_StaggeredProblem_Name
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
double minStepLength
adaptive time step length - minimum
virtual void initializeYourself(TimeStep *tStep)
Provides the opportunity to initialize state variables stored in element integration points according...
Class representing the abstraction for input data source.
Class implementing an array of integers.
double stepMultiplier
Constant multiplier, optional input parameter.
double endOfTimeOfInterest
alternative overriding the number of steps "nsteps" - necessary for time-driven analyses when the app...
IntArray coupledModels
List of slave models to which this model is coupled.
virtual int giveNumberOfSlaveProblems()
Returns number of slave problems.
void giveCoupledModels(IntArray &answer)
Returns list of model number that this model is coupled with. Used for staggered approach.
double adaptiveStepSince
adaptive time step length applies after prescribed time
virtual int useNonlocalStiffnessOption()
Returns nonzero if nonlocal stiffness option activated.
double reqIterations
adaptive time step length - required (=optimum) number of iterations
virtual fMode giveFormulation()
Indicates type of non linear computation (total or updated formulation).
Implementation of general sequence (staggered) problem.
virtual void showSparseMtrxStructure(int type, oofegGraphicContext &gc, TimeStep *tStep)
Shows the sparse structure of required matrix, type == 1 stiffness.
FloatArray discreteTimes
Time lag specifying how much is the second sub-problem delayed after the first one during this period...
Class representing vector of real numbers.
std::vector< std::string > inputStreamNames
virtual int initializeAdaptive(int tStepNumber)
Initializes the newly generated discretization state according to previous solution.
Abstract base class representing a function with vector input and output.
IRResultType
Type defining the return values of InputRecord reading operations.
fMode
Type representing the type of formulation (total or updated) of non-linear computation.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
double maxStepLength
adaptive time step length - maximum
virtual const char * giveInputRecordName() const
Abstract base class representing the "problem" under consideration.
the oofem namespace is to define a context or scope in which all oofem names are defined.
std::vector< std::unique_ptr< EngngModel > > emodelList
List of engineering models to solve sequentially.
Class representing solution step.
int dtFunction
Associated time function for time step increment.