35 #ifndef nlineardynamic_h 36 #define nlineardynamic_h 38 #include "../sm/EngineeringModels/structengngmodel.h" 46 #define _IFT_NonLinearDynamic_Name "nonlineardynamic" 47 #define _IFT_NonLinearDynamic_deltat "deltat" 48 #define _IFT_NonLinearDynamic_refloadmode "refloadmode" 49 #define _IFT_NonLinearDynamic_nonlocstiff "nonlocstiff" 50 #define _IFT_NonLinearDynamic_nonlocalext "nonlocalext" 51 #define _IFT_NonLinearDynamic_ddtScheme "ddtscheme" 52 #define _IFT_NonLinearDynamic_gamma "gamma" 53 #define _IFT_NonLinearDynamic_beta "beta" 54 #define _IFT_NonLinearDynamic_eta "eta" 55 #define _IFT_NonLinearDynamic_delta "delta" 110 std :: unique_ptr< SparseNonLinearSystemNM >
nMethod;
155 #ifdef __PARALLEL_MODE 171 #endif // nlineardynamic_h virtual void initializeYourself(TimeStep *tStep)
Provides the opportunity to initialize state variables stored in element integration points according...
LinSystSolverType
The values of this type should be related not to specific solvers, but more to specific packages that...
FloatArray totalDisplacement
NonLinearDynamic(int i, EngngModel *_master=NULL)
virtual const char * giveClassName() const
Returns class name of the receiver.
int nonlocalStiffnessFlag
FloatArray internalForces
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode)
Restores the state of model from output stream.
Base class for all matrices stored in sparse format.
enum fMode nonLinFormulation
Type of non linear formulation (total or updated formulation).
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
This class implements nonlinear dynamic engineering problem.
virtual ~NonLinearDynamic()
This base class is an abstraction for numerical algorithm.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
SparseMtrxType sparseMtrxType
FloatArray previousAccelerationVector
FloatArray previousIncrementOfDisplacement
FloatArray accelerationVector
Class implementing an array of integers.
std::unique_ptr< SparseMtrx > massMatrix
virtual int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep)
This method is responsible for computing unique dictionary id (ie hash value) from given valueModeTyp...
virtual void updateComponent(TimeStep *tStep, NumericalCmpn, Domain *d)
Updates components mapped to numerical method if necessary during solution process.
virtual int estimateMaxPackSize(IntArray &commMap, DataStream &buff, int packUnpackType)
Determines the space necessary for send/receive buffer.
virtual void updateAttributes(MetaStep *mStep)
Update receiver attributes according to step metaStep attributes.
std::unique_ptr< SparseMtrx > effectiveStiffnessMatrix
#define _IFT_NonLinearDynamic_Name
TimeDiscretizationType
Time discretization used by transient solvers.
virtual const char * giveInputRecordName() const
NumericalCmpn
Type representing numerical component.
Callback class for assembling specific types of matrices.
SparseMtrxType
Enumerative type used to identify the sparse matrix type.
virtual int useNonlocalStiffnessOption()
Returns nonzero if nonlocal stiffness option activated.
Abstract base class allowing to control the way, how equations are assigned to individual DOFs...
virtual TimeStep * giveNextStep()
Returns next time step (next to current step) of receiver.
LinSystSolverType solverType
FloatArray incrementOfDisplacement
void timesMtrx(FloatArray &answer, FloatArray &vec, CharType type, Domain *domain, TimeStep *tStep)
Abstract base class representing general load balancer.
virtual LoadBalancer * giveLoadBalancer()
Returns reference to receiver's load balancer.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to output domain stream, for given time step.
virtual void packMigratingData(TimeStep *tStep)
Packs receiver data when rebalancing load.
Class representing vector of real numbers.
TimeDiscretizationType initialTimeDiscretization
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description in input reader.
std::unique_ptr< SparseNonLinearSystemNM > nMethod
Numerical method used to solve the problem.
FloatArray previousLoadVector
IRResultType
Type defining the return values of InputRecord reading operations.
virtual void unpackMigratingData(TimeStep *tStep)
Unpacks receiver data when rebalancing load.
virtual void updateDomainLinks()
Updates domain links after the domains of receiver have changed.
virtual void showSparseMtrxStructure(int type, oofegGraphicContext &gc, TimeStep *tStep)
Shows the sparse structure of required matrix, type == 1 stiffness.
FloatArray velocityVector
virtual NumericalMethod * giveNumericalMethod(MetaStep *mStep)
Returns reference to receiver's numerical method.
fMode
Type representing the type of formulation (total or updated) of non-linear computation.
FloatArray previousVelocityVector
void assemble(SparseMtrx &answer, TimeStep *tStep, const MatrixAssembler &ma, const UnknownNumberingScheme &, Domain *domain)
Assembles characteristic matrix of required type into given sparse matrix.
TimeDiscretizationType giveInitialTimeDiscretization()
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
void proceedStep(int di, TimeStep *tStep)
FloatArray previousTotalDisplacement
This class implements extension of EngngModel for structural models.
virtual void updateYourself(TimeStep *tStep)
Updates internal state after finishing time step.
Abstract base class representing the "problem" under consideration.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode)
Stores the state of model to output stream.
FloatArray previousInternalForces
void determineConstants(TimeStep *tStep)
virtual void solveYourselfAt(TimeStep *tStep)
Solves problem for given time step.
the oofem namespace is to define a context or scope in which all oofem names are defined.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
double deltaT
Intrinsic time increment.
virtual double giveUnknownComponent(ValueModeType type, TimeStep *tStep, Domain *d, Dof *dof)
Returns requested unknown.
virtual fMode giveFormulation()
Indicates type of non linear computation (total or updated formulation).
Class representing solution step.
virtual LoadBalancerMonitor * giveLoadBalancerMonitor()
Returns reference to receiver's load balancer monitor.
Abstract base class representing general load balancer monitor.
virtual void printDofOutputAt(FILE *stream, Dof *iDof, TimeStep *tStep)
DOF printing routine.
virtual void solveYourself()
Starts solution process.