14 #ifndef _NEWMARK_SIM_H
15 #define _NEWMARK_SIM_H
32 virtual bool parse(
const tinyxml2::XMLElement* elem);
36 virtual void printProblem(
bool stopInputTimer =
false)
const;
42 bool initAcc(
double zero_tolerance = 1.0e-8, std::streamsize outPrec = 0);
53 double zero_tolerance = 1.0e-8,
54 std::streamsize outPrec = 0);
71 std::streamsize outPrec = 0);
100 std::streamsize precision = 3,
101 bool formatted =
true)
const;
Base class for multi-step solution drivers.
Base class for multi-step solution drivers.
Definition: MultiStepSIM.h:32
bool saveStep(int iStep, double time, const char *vecName=nullptr)
Saves the converged solution to VTF file of a given time/load step.
Definition: MultiStepSIM.C:143
virtual bool parse(char *keyWord, std::istream &is)
Parses a data section from an input stream.
Definition: SIMadmin.C:113
Newmark-based solution driver for dynamic isogeometric FEM simulators.
Definition: NewmarkSIM.h:25
bool write_factor
If true, write new factorized Newton matrix.
Definition: NewmarkSIM.h:125
double rTol
Relative convergence tolerance.
Definition: NewmarkSIM.h:118
int maxIncr
Maximum number of iterations with increasing norm.
Definition: NewmarkSIM.h:114
int saveIts
Time step for which iteration result should be saved.
Definition: NewmarkSIM.h:116
NewmarkSIM(SIMbase &sim)
The constructor initializes default solution parameters.
Definition: NewmarkSIM.C:40
bool initAcc(double zero_tolerance=1.0e-8, std::streamsize outPrec=0)
Calculates initial accelerations.
Definition: NewmarkSIM.C:219
LinAlg::StorageFormat fmt
Factorized Newton matrix storage format.
Definition: NewmarkSIM.h:127
unsigned short int cNorm
Option for which convergence norm to use.
Definition: NewmarkSIM.h:122
bool read_factor
If true, read factorized Newton matrix.
Definition: NewmarkSIM.h:126
double aTol
Absolute convergence tolerance.
Definition: NewmarkSIM.h:119
virtual bool solutionNorms(const TimeDomain &, double zero_tolerance=1.0e-8, std::streamsize outPrec=0)
Computes and prints some solution norm quantities.
Definition: NewmarkSIM.C:613
virtual void initPrm()
Initializes time integration parameters for the integrand.
Definition: NewmarkSIM.C:196
virtual SIM::ConvStatus solveStep(TimeStep ¶m, SIM::SolutionMode=SIM::STATIC, double zero_tolerance=1.0e-8, std::streamsize outPrec=0)
Solves the dynamic equations by a predictor/multi-corrector method.
Definition: NewmarkSIM.C:385
int maxit
Maximum number of iterations in a time step.
Definition: NewmarkSIM.h:113
bool saveStep(int iStep, double time, const char *vecName=nullptr)
Saves the converged solution to VTF file of a given time/load step.
Definition: MultiStepSIM.C:143
virtual bool predictStep(TimeStep ¶m)
Calculates predicted velocities and accelerations.
Definition: NewmarkSIM.C:270
virtual SIM::ConvStatus checkConvergence(TimeStep ¶m)
Checks whether the corrector iterations have converged or diverged.
Definition: NewmarkSIM.C:544
const Vector & getVelocity() const
Returns a const reference to current velocity vector.
Definition: NewmarkSIM.h:84
double alpha1
Mass-proportional damping parameter.
Definition: NewmarkSIM.h:105
virtual bool correctStep(TimeStep ¶m, bool=false)
Updates configuration variables (solution vector) in an iteration.
Definition: NewmarkSIM.C:356
std::string factor_file
File for storage of factorized Newton matrix.
Definition: NewmarkSIM.h:124
double divgLim
Relative divergence limit.
Definition: NewmarkSIM.h:120
int nupdat
Number of iterations with updated tangent.
Definition: NewmarkSIM.h:115
char saveVelAc
Flag the saving of velocity and acceleration to VTF.
Definition: NewmarkSIM.h:117
virtual void dumpResults(double time, utl::LogStream &os, std::streamsize precision=3, bool formatted=true) const
Dumps solution variables at user-defined points.
Definition: NewmarkSIM.C:679
double alpha2
Stiffness-proportional damping parameter.
Definition: NewmarkSIM.h:106
static const char * inputContext
Input file context for solver parameters.
Definition: NewmarkSIM.h:130
virtual bool advanceStep(TimeStep ¶m, bool updateTime=true)
Advances the time step one step forward.
Definition: NewmarkSIM.C:210
char predictor
Predictor type flag.
Definition: NewmarkSIM.h:112
double gamma
Newmark time integration parameter.
Definition: NewmarkSIM.h:108
double beta
Newmark time integration parameter.
Definition: NewmarkSIM.h:107
bool solveDisp
If true, use incremental displacements as unknowns.
Definition: NewmarkSIM.h:111
int getMaxit() const
Returns the maximum number of iterations.
Definition: NewmarkSIM.h:61
virtual bool isDynamic() const
Returns whether this is a dynamic solution driver or not.
Definition: NewmarkSIM.h:64
const Vector & getAcceleration() const
Returns a const reference to current velocity vector.
Definition: NewmarkSIM.h:86
virtual void printProblem(bool stopInputTimer=false) const
Prints out problem-specific data to the log stream.
Definition: NewmarkSIM.C:167
SIM::ConvStatus solveIteration(TimeStep ¶m)
Solves the linearized system of current iteration.
Definition: NewmarkSIM.C:504
virtual bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML document.
Definition: MultiStepSIM.C:44
virtual void finalizeRHSvector(bool)
Finalizes the right-hand-side vector on the system level.
Definition: NewmarkSIM.C:262
Base class for NURBS-based FEM simulators.
Definition: SIMbase.h:72
Vectors solution
Stack of solution vectors.
Definition: SIMsolution.h:78
Class for encapsulation of general time stepping parameters.
Definition: TimeStep.h:31
Logging stream class.
Definition: LogStream.h:26
A vector class with some added algebraic operations.
Definition: matrix.h:64
StorageFormat
Enumeration of matrix storage formats.
Definition: LinAlgenums.h:43
SolutionMode
Enum defining the various solution modes that may occur.
Definition: SIMenums.h:31
ConvStatus
Enum defining the various convergence statuses that may occur.
Definition: SIMenums.h:50
Struct representing the time domain.
Definition: TimeDomain.h:23