35#ifndef staticstructural_h
36#define staticstructural_h
44#define _IFT_StaticStructural_Name "staticstructural"
45#define _IFT_StaticStructural_deltat "deltat"
46#define _IFT_StaticStructural_prescribedTimes "prescribedtimes"
47#define _IFT_StaticStructural_solvertype "solvertype"
48#define _IFT_StaticStructural_stiffmode "stiffmode"
49#define _IFT_StaticStructural_nonlocalExtension "nonlocalext"
51#define _IFT_StaticStructural_recomputeaftercrackpropagation "recomputeaftercrackprop"
54class DofDistributedPrimaryField;
73 std :: unique_ptr< DofDistributedPrimaryField >
field;
77 std :: unique_ptr< SparseNonLinearSystemNM >
nMethod;
136 if (
master && (!force)) {
137 return master->giveCurrentStep();
150 if (
master && (!force)) {
151 return master->givePreviousStep();
std::unique_ptr< TimeStepController > timeStepController
Time Step controller is responsible for collecting data from analysis, elements, and materials,...
EngngModel * master
Master e-model; if defined receiver is in maintained (slave) mode.
int requiresUnknownsDictionaryUpdate() override
int estimateMaxPackSize(IntArray &commMap, DataStream &buff, int packUnpackType) override
void restoreContext(DataStream &stream, ContextMode mode) override
StaticStructural(int i, EngngModel *master=nullptr)
int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep) override
void adaptTimeStep(double nIter) override
void updateComponent(TimeStep *tStep, NumericalCmpn cmpn, Domain *d) override
FloatArray prescribedTimes
void restartYourself(TimeStep *tS) override
void updateMatrix(SparseMtrx &mat, TimeStep *tStep, Domain *d) override
FloatArray externalForces
InitialGuess initialGuessType
void saveContext(DataStream &stream, ContextMode mode) override
NumericalMethod * giveNumericalMethod(MetaStep *mStep) override
Returns reference to receiver's numerical method.
virtual ~StaticStructural()
FieldPtr giveField(FieldType key, TimeStep *) override
MatResponseMode stiffMode
double giveEndOfTimeOfInterest() override
Returns end of time interest (time corresponding to end of time integration).
void updateAttributes(MetaStep *mStep) override
void initializeFrom(InputRecord &ir) override
std ::unique_ptr< SparseMtrx > stiffnessMatrix
const char * giveClassName() const override
Returns class name of the receiver.
virtual TimeStep * givePreviousStep(bool force=false) override
void solveYourself() override
FloatArray referenceForces
virtual TimeStep * giveCurrentStep(bool force=false) override
std ::unique_ptr< SparseNonLinearSystemNM > nMethod
bool mRecomputeStepAfterPropagation
void terminate(TimeStep *tStep) override
std ::unique_ptr< DofDistributedPrimaryField > field
void solveYourselfAt(TimeStep *tStep) override
SparseMtrxType sparseMtrxType
bool requiresEquationRenumbering(TimeStep *tStep) override
void updateSolution(FloatArray &solutionVector, TimeStep *tStep, Domain *d) override
const char * giveInputRecordName() const
FloatArray internalForces
void updateDomainLinks() override
void updateInternalRHS(FloatArray &answer, TimeStep *tStep, Domain *d, FloatArray *eNorm) override
bool newDofHandling() override
double giveLoadLevel() override
Returns the current load level.
double giveUnknownComponent(ValueModeType type, TimeStep *tStep, Domain *d, Dof *dof) override
void computeExternalLoadReactionContribution(FloatArray &reactions, TimeStep *tStep, int di) override
int forceEquationNumbering() override
StructuralEngngModel(int i, EngngModel *master=nullptr)
Creates new StructuralEngngModel with number i, associated to domain d.
FieldType
Physical type of field.
std::shared_ptr< Field > FieldPtr
#define _IFT_StaticStructural_Name