48#define _IFT_MPMProblem_Name "mpmproblem"
49#define _IFT_MPMProblem_initt "initt"
50#define _IFT_MPMProblem_deltat "deltat"
51#define _IFT_MPMProblem_deltatfunction "deltatfunction"
52#define _IFT_MPMProblem_prescribedtimes "prescribedtimes"
53#define _IFT_MPMProblem_alpha "alpha"
54#define _IFT_MPMProblem_keepTangent "keeptangent"
55#define _IFT_MPMProblem_exportFields "exportfields"
56#define _IFT_MPMProblem_problemType "ptype"
131 std :: unique_ptr< DofDistributedPrimaryField >
field;
140 std :: unique_ptr< SparseNonLinearSystemNM >
nMethod;
double giveDeltaT()
Returns time step size from the time step controlelr.
EngngModel(int i, EngngModel *_master=NULL)
int numberOfSteps
Total number of time steps.
fMode giveFormulation() override
const char * giveInputRecordName() const
double deltaT
Length of time step.
void updateDomainLinks() override
FloatArray prescribedTimes
Specified times where the problem is solved.
double giveFinalTime() override
int checkConsistency() override
std::string problemType
identifies what problem to solve (UP, UPV, etc)
int dtFunction
Associated time function for time step increment.
int forceEquationNumbering() override
SparseMtrxType sparseMtrxType
void updateYourself(TimeStep *tStep) override
bool newDofHandling() override
void updateInternalRHS(FloatArray &answer, TimeStep *tStep, Domain *d, FloatArray *eNorm) override
bool requiresEquationRenumbering(TimeStep *tStep) override
std ::unique_ptr< SparseNonLinearSystemNM > nMethod
Numerical method used to solve the problem.
void updateMatrix(SparseMtrx &mat, TimeStep *tStep, Domain *d) override
void solveYourselfAt(TimeStep *tStep) override
FieldPtr giveField(FieldType key, TimeStep *tStep) override
int requiresUnknownsDictionaryUpdate() override
std ::unique_ptr< SparseMtrx > effectiveMatrix
TimeStep * giveNextStep() override
Returns next time step (next to current step) of receiver.
NumericalMethod * giveNumericalMethod(MetaStep *mStep) override
Returns reference to receiver's numerical method.
std ::unique_ptr< DofDistributedPrimaryField > field
int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep) override
double initT
Initial time from which the computation runs. Default is zero.
double giveDiscreteTime(int iStep)
void updateComponent(TimeStep *tStep, NumericalCmpn cmpn, Domain *d) override
void initializeFrom(InputRecord &ir) override
void updateSolution(FloatArray &solutionVector, TimeStep *tStep, Domain *d) override
Function * giveDtFunction()
void saveContext(DataStream &stream, ContextMode mode) override
const char * giveClassName() const override
Returns class name of the receiver.
FloatArray internalForces
void printOutputAt(FILE *file, TimeStep *tStep) override
double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *d, Dof *dof) override
void restoreContext(DataStream &stream, ContextMode mode) override
TimeStep * giveSolutionStepWhenIcApply(bool force=false) override
MPMProblem(int i, EngngModel *_master)
TMLhsAssembler(double alpha, double deltaT)
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
TMResidualAssembler(double alpha, double deltaT)
void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const override
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
UPLhsAssembler(double alpha, double deltaT)
UPResidualAssembler(double alpha, double deltaT)
void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const override
#define _IFT_MPMProblem_Name
FieldType
Physical type of field.
@ SMT_Skyline
Symmetric skyline.
std::shared_ptr< Field > FieldPtr