IFEM 90A354
NewmarkNLSIM.h
Go to the documentation of this file.
1// $Id$
2//==============================================================================
12//==============================================================================
13
14#ifndef _NEWMARK_NL_SIM_H
15#define _NEWMARK_NL_SIM_H
16
17#include "NewmarkSIM.h"
18
19class SystemVector;
20
21
174{
175public:
177 explicit NewmarkNLSIM(SIMbase& sim);
179 virtual ~NewmarkNLSIM();
180
181 using NewmarkSIM::parse;
183 virtual bool parse(const tinyxml2::XMLElement* elem);
184
187 virtual void printProblem(bool stopInputTimer = false) const;
188
190 virtual void initPrm();
192 virtual void initSol(size_t nSol, size_t nDof = 0);
193
195 virtual void setSolution(const RealArray& newSol, int idx);
196
198 virtual bool isLinear() const { return false; }
199
202 virtual bool serialize(SerializeMap& data) const;
205 virtual bool deSerialize(const SerializeMap& data);
206
207protected:
209 virtual bool predictStep(TimeStep& param);
211 virtual bool correctStep(TimeStep& param, bool converged);
213 virtual void finalizeRHSvector(bool);
214
215private:
219
221};
222
223#endif
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition ImmersedBoundaries.h:32
Newmark solution driver for isogeometric dynamic FEM simulators.
Newmark-based solution driver for dynamic isogeometric FEM simulators.
Definition NewmarkNLSIM.h:174
SystemVector * Finert
Actual inertia forces in last converged time step.
Definition NewmarkNLSIM.h:220
Vector predVel
Predicted velocity vector.
Definition NewmarkNLSIM.h:217
virtual bool serialize(SerializeMap &data) const
Serialize solution vectors for restarting purposes.
Definition NewmarkNLSIM.C:239
virtual ~NewmarkNLSIM()
The destructor deletes the Finert system vector.
Definition NewmarkNLSIM.C:32
Vector incDis
Incremental displacement vector.
Definition NewmarkNLSIM.h:216
virtual void initPrm()
Initializes time integration parameters for the integrand.
Definition NewmarkNLSIM.C:87
virtual bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML document.
Definition NewmarkNLSIM.C:38
virtual void initSol(size_t nSol, size_t nDof=0)
Initializes the primary solution vectors.
Definition NewmarkNLSIM.C:98
virtual bool predictStep(TimeStep &param)
Calculates predicted velocities and accelerations.
Definition NewmarkNLSIM.C:118
virtual bool isLinear() const
Returns whether this solution driver is linear or not.
Definition NewmarkNLSIM.h:198
virtual bool correctStep(TimeStep &param, bool converged)
Updates configuration variables (solution vector) in an iteration.
Definition NewmarkNLSIM.C:177
virtual void setSolution(const RealArray &newSol, int idx)
Modifies the current solution vector (used by sub-iterations only).
Definition NewmarkNLSIM.C:225
virtual void printProblem(bool stopInputTimer=false) const
Prints out problem-specific data to the log stream.
Definition NewmarkNLSIM.C:68
Vector predAcc
Predicted acceleration vector.
Definition NewmarkNLSIM.h:218
virtual bool deSerialize(const SerializeMap &data)
Set solution vectors from a serialized state.
Definition NewmarkNLSIM.C:252
virtual void finalizeRHSvector(bool)
Finalizes the right-hand-side vector on the system level.
Definition NewmarkNLSIM.C:110
Newmark-based solution driver for dynamic isogeometric FEM simulators.
Definition NewmarkSIM.h:25
virtual bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML document.
Definition NewmarkSIM.C:68
Base class for NURBS-based FEM simulators.
Definition SIMbase.h:72
std::map< std::string, std::string > SerializeMap
Convenience type.
Definition SIMsolution.h:43
Base class for representing a system vector on different formats.
Definition SystemMatrix.h:32
Class for encapsulation of general time stepping parameters.
Definition TimeStep.h:31
A vector class with some added algebraic operations.
Definition matrix.h:64