|
IFEM
90A354
|
Class with support for assembly of modal linear equation systems. More...
#include <SIMmodal.h>

Public Member Functions | |
| virtual const Vectors & | expandSolution (const Vectors &, bool=false)=0 |
| Expands and returns the current dynamic solution. | |
| const Vectors & | expandedSolution () const |
| Returns the current expanded dynamic solution. | |
| const Vector & | expandedSolution (int idx) const |
| Returns the current expanded dynamic solution. More... | |
| size_t | numExpSolution () const |
| Returns the number of expanded dynamic solution vectors. | |
| virtual bool | projectModes (Matrices &, std::vector< std::string > &, SIMoptions::ProjectionMethod) |
| Projects the secondary solution associated with the eigenmodes. | |
Protected Member Functions | |
| SIMmodal (std::vector< Mode > &modes) | |
| The constructor initializes the reference to the eigenmodes. | |
| virtual | ~SIMmodal () |
| The destructor deletes the dynamically allocated members. | |
| bool | parseParams (const tinyxml2::XMLElement *elem) |
| Parses structural damping parameters from an XML element. | |
| const Vectors & | expandSolution (const Vectors &mSol) |
| Calculates the dynamic solution from the previous modal solution. More... | |
| bool | assembleModalSystem (const TimeDomain &time, const Vectors &mSol, double beta, double gamma) |
| Administers assembly of the modal equation system. More... | |
| bool | swapSystem (AlgEqSystem *&sys, SAM *&sam) |
| Swaps the modal equation system before/after load vector assembly. | |
| bool | saveModes (std::map< std::string, std::string > &data) const |
| Writes the eigenmodes to a serialization container. | |
| bool | restoreModes (const std::map< std::string, std::string > &data) |
| Restores the eigenmodes from a serialization container. | |
Protected Attributes | |
| std::vector< Mode > & | myModes |
| Array of eigenmodes. | |
| Vector | Rhs |
| Current right-hand-side load vector of the dynamic system. | |
| Vectors | sol |
| Expanded solution vectors from the modal solution. | |
| bool | parsed |
| Set to true after the model has been initialized. | |
| double | alpha1 |
| Mass-proportional damping parameter. | |
| double | alpha2 |
| Stiffness-proportional damping parameter. | |
Private Attributes | |
| AlgEqSystem * | modalSys |
| The modal equation system. | |
| SAM * | modalSam |
| Auxiliary data for FE assembly management. | |
| ElmMats * | myElmMat |
| Nodal (single-DOF) element matrices. | |
Class with support for assembly of modal linear equation systems.
This class contains a separate AlgEqSystem object and an associated SAM object, used for assembling the modal system of equations.
|
protected |
Administers assembly of the modal equation system.
| [in] | time | Parameters for time-dependent simulations |
| [in] | mSol | Previous modal solution |
| [in] | beta | Newmark time integration parameter |
| [in] | gamma | Newmark time integration parameter |
This method assembles the diagonal modal equation system of the dynamic problem, integrated by the Newmark HHT-method. If beta is set to zero, a quasi-static solution is calculated instead, in which the modal mass and damping is ignored and only the modal stiffness (i.e., the angular eigenfrequencies squared) enter the equation system.
References ElmMats::A, alpha1, alpha2, AlgEqSystem::assemble(), ElmMats::b, LinAlg::DIAG, TimeDomain::dt, AlgEqSystem::finalize(), TimeDomain::first, AlgEqSystem::init(), AlgEqSystem::initialize(), TimeDomain::it, modalSam, modalSys, myElmMat, myModes, ElmMats::redim(), ElmMats::resize(), Rhs, ElmMats::setStepSize(), and LocalIntegral::vec.
| const Vector & SIMmodal::expandedSolution | ( | int | idx | ) | const |
Returns the current expanded dynamic solution.
| [in] | idx | Solution vector index |
References sol.