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 
19 class SystemVector;
20 
21 
173 class NewmarkNLSIM : public NewmarkSIM
174 {
175 public:
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 
207 protected:
209  virtual bool predictStep(TimeStep& param);
211  virtual bool correctStep(TimeStep& param, bool converged);
213  virtual void finalizeRHSvector(bool);
214 
215 private:
219 
221 };
222 
223 #endif
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
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
NewmarkNLSIM(SIMbase &sim)
The constructor initializes default solution parameters.
Definition: NewmarkNLSIM.C:22
Vector incDis
Incremental displacement vector.
Definition: NewmarkNLSIM.h:216
virtual void initPrm()
Initializes time integration parameters for the integrand.
Definition: NewmarkNLSIM.C:87
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 bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML document.
Definition: NewmarkSIM.C:68
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: MultiStepSIM.C:44
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