35#ifndef nonstationarytransportproblem_h
36#define nonstationarytransportproblem_h
48#define _IFT_NonStationaryTransportProblem_Name "nonstationaryproblem"
49#define _IFT_NonStationaryTransportProblem_initt "initt"
50#define _IFT_NonStationaryTransportProblem_deltat "deltat"
51#define _IFT_NonStationaryTransportProblem_deltatfunction "deltatfunction"
52#define _IFT_NonStationaryTransportProblem_prescribedtimes "prescribedtimes"
53#define _IFT_NonStationaryTransportProblem_alpha "alpha"
54#define _IFT_NonStationaryTransportProblem_lumpedcapa "lumpedcapa"
55#define _IFT_NonStationaryTransportProblem_changingproblemsize "changingproblemsize"
158 const char *
giveClassName()
const override {
return "NonStationaryTransportProblem"; }
186#ifdef __CEMHYD_MODULE
187 void averageOverElements(
TimeStep *tStep);
double giveDeltaT()
Returns time step size from the time step controlelr.
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
MidpointLhsAssembler(bool lumped, double alpha)
void updateYourself(TimeStep *tStep) override
FloatArray discreteTimes
Specified times where the problem is solved.
virtual void assembleDirichletBcRhsVector(FloatArray &answer, TimeStep *tStep, ValueModeType mode, const UnknownNumberingScheme &s, Domain *d)
int requiresUnknownsDictionaryUpdate() override
Allows to change number of equations during solution.
TimeStep * giveNextStep() override
Returns next time step (next to current step) of receiver.
int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep) override
double deltaT
Length of time step.
Function * giveDtFunction()
double giveUnknownComponent(ValueModeType, TimeStep *tStep, Domain *d, Dof *dof) override
void restoreContext(DataStream &stream, ContextMode mode) override
NonStationaryTransportProblem(int i, EngngModel *_master)
const char * giveClassName() const override
Returns class name of the receiver.
StateCounterType internalVarUpdateStamp
std ::unique_ptr< SparseLinearSystemNM > linSolver
double giveDiscreteTime(int n)
bool requiresEquationRenumbering(TimeStep *tStep) override
int checkConsistency() override
void saveContext(DataStream &stream, ContextMode mode) override
TimeStep * giveSolutionStepWhenIcApply(bool force=false) override
LinSystSolverType solverType
double initT
Initial time from which the computation runs. Default is zero.
int lumpedCapacityStab
If set then stabilization using lumped capacity will be used.
NumericalMethod * giveNumericalMethod(MetaStep *mStep) override
Returns reference to receiver's numerical method.
int dtFunction
Associated time function for time step increment.
const char * giveInputRecordName() const
virtual void copyUnknownsInDictionary(ValueModeType mode, TimeStep *fromTime, TimeStep *toTime)
virtual void updateInternalState(TimeStep *tStep)
bool changingProblemSize
Determines if there are change in the problem size (no application/removal of Dirichlet boundary cond...
virtual void assembleAlgorithmicPartOfRhs(FloatArray &rhs, const UnknownNumberingScheme &s, TimeStep *tStep)
void initializeFrom(InputRecord &ir) override
virtual void applyIC(TimeStep *tStep)
fMode giveFormulation() override
FloatArray bcRhs
Right hand side vector from boundary conditions.
void solveYourselfAt(TimeStep *tStep) override
void updateDomainLinks() override
StationaryTransportProblem(int i, EngngModel *_master)
void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const override
long StateCounterType
StateCounterType type used to indicate solution state.
#define _IFT_NonStationaryTransportProblem_Name