|
IFEM 90A354
|
Generalized-alpha driver for dynamic isogeometric FEM simulators. More...
#include <GenAlphaSIM.h>


Public Member Functions | |
| GenAlphaSIM (SIMbase &s) | |
| The constructor initializes default solution parameters. | |
| virtual | ~GenAlphaSIM () |
| Empty destructor. | |
| virtual bool | parse (const tinyxml2::XMLElement *elem) |
| Parses a data section from an XML document. | |
| virtual void | initPrm () |
| Initializes time integration parameters for the integrand. | |
| virtual void | initSol (size_t nSol, size_t nDof=0) |
| Initializes primary solution vectors. | |
| virtual bool | advanceStep (TimeStep ¶m, bool updateTime=true) |
| Advances the time step one step forward. | |
| virtual void | setSolution (const RealArray &newSol, int idx) |
| Modifies the current solution vector (used by sub-iterations only). | |
| virtual bool | parse (const tinyxml2::XMLElement *elem) |
| Parses a data section from an XML document. | |
Public Member Functions inherited from NewmarkSIM | |
| NewmarkSIM (SIMbase &sim) | |
| The constructor initializes default solution parameters. | |
| virtual void | printProblem (bool stopInputTimer=false) const |
| Prints out problem-specific data to the log stream. | |
| bool | initAcc (double zero_tolerance=1.0e-8, std::streamsize outPrec=0) |
| Calculates initial accelerations. | |
| 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. | |
| SIM::ConvStatus | solveIteration (TimeStep ¶m) |
| Solves the linearized system of current iteration. | |
| int | getMaxit () const |
| Returns the maximum number of iterations. | |
| virtual bool | isDynamic () const |
| Returns whether this is a dynamic solution driver or not. | |
| const Vector & | getVelocity () const |
| Returns a const reference to current velocity vector. | |
| const Vector & | getAcceleration () const |
| Returns a const reference to current velocity vector. | |
| bool | saveStep (int iStep, TimeStep ¶m) |
| Saves the converged solution to VTF file for a given time step. | |
| virtual void | dumpResults (double time, utl::LogStream &os, std::streamsize precision=3, bool formatted=true) const |
| Dumps solution variables at user-defined points. | |
| virtual bool | parse (const tinyxml2::XMLElement *elem) |
| Parses a data section from an XML document. | |
| virtual bool | parse (char *keyWord, std::istream &is) |
| Parses a data section from an input stream. | |
| virtual bool | parse (const tinyxml2::XMLElement *elem) |
| Parses a data section from an XML document. | |
| bool | saveStep (int iStep, double time, const char *vecName=nullptr) |
| Saves the converged solution to VTF file of a given time/load step. | |
| bool | saveStep (int iStep, int &rBlock, double time, const char *vecName=nullptr) |
| Saves the converged solution to VTF file of a given time/load step. | |
| bool | saveStep (int iStep, int &rBlock, const char *vecName) |
| Saves the converged solution to VTF file of a given time/load step. | |
Public Member Functions inherited from MultiStepSIM | |
| virtual const char ** | getPrioritizedTags () const |
| Returns a list of prioritized XML-tags. | |
| bool | initEqSystem (bool withRF=true, size_t nScl=0) |
| Allocates the FE system matrices. | |
| virtual bool | preprocess (const std::vector< int > &ignored, bool fixDup) |
| Performs some pre-processing tasks on the FE model. | |
| void | setStartGeo (int gID) |
| Initializes the geometry block counter. | |
| bool | saveModel (const char *fileName) |
| Opens a new VTF-file and writes the model geometry to it. | |
| bool | saveModel (double initialTime=0.0) |
| Writes the model geometry to the currently opened VTF-file. | |
| bool | saveModel (int &gBlock, int &rBlock, double time=0.0) |
| Writes the model geometry and BCs to an already opened VTF-file. | |
| bool | saveStep (int iStep, double time, const char *vecName=nullptr) |
| Saves the converged solution to VTF file of a given time/load step. | |
| bool | saveStep (int iStep, int &rBlock, double time, const char *vecName=nullptr) |
| Saves the converged solution to VTF file of a given time/load step. | |
| bool | saveStep (int iStep, int &rBlock, const char *vecName) |
| Saves the converged solution to VTF file of a given time/load step. | |
| virtual bool | serialize (SerializeMap &data) const |
| Serializes the solution vectors for restarting purposes. | |
| virtual bool | deSerialize (const SerializeMap &data) |
| Restores the solution vectors from a serialized state. | |
| bool | checkForRestart () |
| Restores the solution from a serialized state in case of restart. | |
| void | dumpStep (int iStep, double time, utl::LogStream &os, bool withID=true) const |
| Dumps the primary solution for inspection. | |
| bool | hasPointResultFile () const |
| Returns whether a points result file has been defined or not. | |
| bool | savePoints (double time, int step) const |
| Saves point-wise solution to file for a given time/load step. | |
| virtual bool | isLinear () const |
| Returns whether this solution driver is linear or not. | |
| const SIMoutput & | getModel () const |
| Returns a const reference to the FE model. | |
| void | setSubIteration (SubIt flag) |
| Updates the sub-iteration flag. | |
| SubIt | getSubIteration () const |
| Returns the sub-iteration flag. | |
| virtual size_t | numSolution () const |
| Returns the number of solution vectors. | |
| virtual const Vector & | realSolution (int i=0) const |
| Returns a const reference to the current real solution vector. | |
| virtual const Vectors & | realSolutions (bool=false) |
| Returns a const reference to the current real solution vectors. | |
| double * | theRefNorm () |
| Returns a pointer to the reference norm variable. | |
| const double * | getRefNorm () const |
| Returns a const pointer to the reference norm variable. | |
Public Member Functions inherited from SIMsolution | |
| virtual const Vectors & | getSolutions () const |
| Returns a const reference to the solution vectors. | |
| virtual Vectors & | theSolutions () |
| Returns a reference to the solution vectors (for assignment). | |
| virtual const Vector & | getSolution (int ix=0) const |
| Returns a const reference to current solution vector. | |
Public Member Functions inherited from SIMadmin | |
| virtual | ~SIMadmin () |
| Empty destructor. | |
| virtual bool | read (const char *fileName) |
| Reads model data from the specified input file *fileName. | |
| virtual bool | preprocessC (const IntVec &, bool, double=0.0) |
| Performs some pre-processing tasks on the FE model. | |
| const ProcessAdm & | getProcessAdm () const |
| Returns the parallel process administrator. | |
| int | getGlobalProcessID () const |
| Returns the global process ID. | |
| const std::string & | getHeading () const |
| Returns the simulator heading. | |
| void | setHeading (const std::string &heading) |
| Defines the simulator heading. | |
| void | printHeading (int &supStep) const |
| Prints the heading of this simulator, if any, to IFEM::cout. | |
Public Member Functions inherited from XMLInputBase | |
| bool | readXML (const char *fileName, bool verbose=true) |
| Reads an XML input file. | |
| bool | loadXML (const char *xml) |
| Loads data from an XML-formatted text string. | |
Protected Member Functions | |
| virtual bool | predictStep (TimeStep ¶m) |
| Calculates predicted velocities and accelerations. | |
| virtual bool | correctStep (TimeStep ¶m, bool converged) |
| Updates configuration variables (solution vector) in an iteration. | |
Protected Member Functions inherited from NewmarkSIM | |
| virtual bool | solutionNorms (const TimeDomain &, double zero_tolerance=1.0e-8, std::streamsize outPrec=0) |
| Computes and prints some solution norm quantities. | |
| virtual SIM::ConvStatus | checkConvergence (TimeStep ¶m) |
| Checks whether the corrector iterations have converged or diverged. | |
| virtual void | finalizeRHSvector (bool) |
| Finalizes the right-hand-side vector on the system level. | |
Protected Member Functions inherited from MultiStepSIM | |
| MultiStepSIM (SIMbase &sim) | |
| The constructor initializes the FE model reference. | |
| void | printStep (const TimeStep ¶m) const |
| Prints out time/load step identification. | |
| int | getLastSavedStep () const |
| Returns the last step that was saved to VTF. | |
Protected Member Functions inherited from SIMsolution | |
| SIMsolution ()=default | |
| The default constructor is protected to allow sub-classes only. | |
| virtual | ~SIMsolution ()=default |
| Empty default destructor. | |
| void | initSolution (size_t ndof, size_t nsol=1) |
| Initializes the solution vectors. | |
| void | pushSolution (unsigned short int nVecState=1) |
| Pushes the solution vector stack. | |
| bool | saveSolution (SerializeMap &data, const std::string &name) const |
| Writes current solution to a serialization container. | |
| bool | restoreSolution (const SerializeMap &data, const std::string &name) |
| Restores the solution from a serialization container. | |
Protected Member Functions inherited from SIMadmin | |
| SIMadmin (const char *heading=nullptr) | |
| The default constructor initializes the process administrator. | |
| SIMadmin (SIMadmin &anotherSIM) | |
| Copy constructor. | |
Protected Member Functions inherited from XMLInputBase | |
| const tinyxml2::XMLElement * | loadFile (tinyxml2::XMLDocument &doc, const char *fileName, bool verbose=false) |
| Loads an XML input file into a tinyxml2::XMLDocument object. | |
Private Attributes | |
| double | alpha_m |
| Generalized-alpha parameter. | |
| double | alpha_f |
| Generalized-alpha parameter. | |
| Vectors | prevSol |
| Solution of last converged time step. | |
| Vectors | tempSol |
| Intermediate solution. | |
Additional Inherited Members | |
Public Types inherited from MultiStepSIM | |
| enum | SubIt { ITER = 0 , FIRST = 1 , LAST = 2 , NONE = 3 } |
| Enum describing sub-iteration status. | |
Public Attributes inherited from SIMadmin | |
| SIMoptions & | opt |
| Simulation control parameters. | |
Static Public Attributes inherited from NewmarkSIM | |
| static const char * | inputContext = "newmarksolver" |
| Input file context for solver parameters. | |
Static Public Attributes inherited from SIMadmin | |
| static int | msgLevel = 2 |
| Controls the console output amount during solving. | |
Protected Types inherited from MultiStepSIM | |
| enum | NormOp { MAX , ALL } |
| Enum describing reference norm options. | |
Protected Types inherited from SIMsolution | |
| using | SerializeMap = std::map< std::string, std::string > |
| Convenience type. | |
Protected Types inherited from SIMadmin | |
| using | IntVec = std::vector< int > |
| Convenience alias. | |
Static Protected Member Functions inherited from SIMsolution | |
| static std::string | serialize (const double *v, size_t n) |
| Helper method for serializing a double array into a text string. | |
| static void | deSerialize (const std::string &data, double *v, size_t n) |
| Helper method for deserializing a double array from a text string. | |
Protected Attributes inherited from NewmarkSIM | |
| double | alpha1 |
| Mass-proportional damping parameter. | |
| double | alpha2 |
| Stiffness-proportional damping parameter. | |
| double | beta |
| Newmark time integration parameter. | |
| double | gamma |
| Newmark time integration parameter. | |
| bool | solveDisp |
| If true, use incremental displacements as unknowns. | |
| char | predictor |
| Predictor type flag. | |
| int | maxit |
| Maximum number of iterations in a time step. | |
| int | maxIncr |
| Maximum number of iterations with increasing norm. | |
| int | nupdat |
| Number of iterations with updated tangent. | |
| int | saveIts |
| Time step for which iteration result should be saved. | |
| char | saveVelAc |
| Flag the saving of velocity and acceleration to VTF. | |
| double | rTol |
| Relative convergence tolerance. | |
| double | aTol |
| Absolute convergence tolerance. | |
| double | divgLim |
| Relative divergence limit. | |
| unsigned short int | cNorm |
| Option for which convergence norm to use. | |
| std::string | factor_file |
| File for storage of factorized Newton matrix. | |
| bool | write_factor |
| If true, write new factorized Newton matrix. | |
| bool | read_factor |
| If true, read factorized Newton matrix. | |
| LinAlg::StorageFormat | fmt |
| Factorized Newton matrix storage format. | |
Protected Attributes inherited from MultiStepSIM | |
| SIMoutput & | model |
| The isogeometric FE model. | |
| Vector | loadVec |
| System load vector (for output to VTF) | |
| Vector | residual |
| Residual force vector. | |
| Vector | linsol |
| Linear solution vector. | |
| NormOp | refNopt |
| Reference norm option. | |
| double | refNorm |
| Reference norm value used in convergence checks. | |
| double | rCond |
| Reciprocal condition number of the linear equation system. | |
| SubIt | subiter |
| Sub-iteration flag. | |
| size_t | nRHSvec |
| Number of right-hand-side vectors to assemble. | |
| char | rotUpd |
| Option for how to update of nodal rotations. | |
| int | geoBlk |
| Running VTF geometry block counter. | |
| int | nBlock |
| Running VTF result block counter. | |
Protected Attributes inherited from SIMsolution | |
| Vectors | solution |
| Stack of solution vectors. | |
Protected Attributes inherited from SIMadmin | |
| ProcessAdm | adm |
| Parallel administrator. | |
| int | myPid |
| Processor ID in parallel simulations. | |
| int | nProc |
| Number of processors in parallel simulations. | |
| std::string | myHeading |
| Heading written before reading the input file. | |
Generalized-alpha driver for dynamic isogeometric FEM simulators.
|
virtual |
Advances the time step one step forward.
| param | Time stepping parameters | |
| [in] | updateTime | If false, the time parameters are not incremented |
Reimplemented from NewmarkSIM.
References NewmarkSIM::advanceStep(), prevSol, and SIMsolution::solution.
|
protectedvirtual |
Updates configuration variables (solution vector) in an iteration.
Reimplemented from NewmarkSIM.
References alpha_f, alpha_m, NewmarkSIM::beta, TimeDomain::dt, NewmarkSIM::gamma, MultiStepSIM::linsol, MultiStepSIM::model, prevSol, SIMsolution::solution, NewmarkSIM::solveDisp, tempSol, TimeStep::time, SIMbase::updateConfiguration(), and SIMbase::updateRotations().
|
virtual |
Initializes time integration parameters for the integrand.
Reimplemented from NewmarkSIM.
References NewmarkSIM::alpha1, NewmarkSIM::alpha2, alpha_f, alpha_m, SIMbase::initForMultiStep(), MultiStepSIM::model, SIMbase::setIntegrationPrm(), and NewmarkSIM::solveDisp.
|
virtual |
Initializes primary solution vectors.
Reimplemented from MultiStepSIM.
References MultiStepSIM::initSol(), prevSol, SIMsolution::solution, and tempSol.
|
virtual |
Parses a data section from an XML document.
Reimplemented from NewmarkSIM.
|
virtual |
Parses a data section from an XML document.
Reimplemented from NewmarkSIM.
References alpha_f, alpha_m, NewmarkSIM::beta, NewmarkSIM::gamma, NewmarkSIM::inputContext, and NewmarkSIM::parse().
|
protectedvirtual |
Calculates predicted velocities and accelerations.
Reimplemented from NewmarkSIM.
References alpha_f, alpha_m, NewmarkSIM::predictStep(), prevSol, SIMsolution::solution, and tempSol.
|
virtual |
Modifies the current solution vector (used by sub-iterations only).
Reimplemented from SIMsolution.
References SIMsolution::solution, and tempSol.