IFEM  90A354
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
SIMmodal Class Referenceabstract

Class with support for assembly of modal linear equation systems. More...

#include <SIMmodal.h>

Collaboration diagram for SIMmodal:
Collaboration graph
[legend]

Public Member Functions

virtual const VectorsexpandSolution (const Vectors &, bool=false)=0
 Expands and returns the current dynamic solution.
 
const VectorsexpandedSolution () const
 Returns the current expanded dynamic solution.
 
const VectorexpandedSolution (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 VectorsexpandSolution (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

AlgEqSystemmodalSys
 The modal equation system.
 
SAMmodalSam
 Auxiliary data for FE assembly management.
 
ElmMatsmyElmMat
 Nodal (single-DOF) element matrices.
 

Detailed Description

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.

Member Function Documentation

◆ assembleModalSystem()

bool SIMmodal::assembleModalSystem ( const TimeDomain time,
const Vectors mSol,
double  beta,
double  gamma 
)
protected

Administers assembly of the modal equation system.

Parameters
[in]timeParameters for time-dependent simulations
[in]mSolPrevious modal solution
[in]betaNewmark time integration parameter
[in]gammaNewmark 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.

◆ expandedSolution()

const Vector & SIMmodal::expandedSolution ( int  idx) const

Returns the current expanded dynamic solution.

Parameters
[in]idxSolution vector index

References sol.

◆ expandSolution()

const Vectors & SIMmodal::expandSolution ( const Vectors mSol)
protected

Calculates the dynamic solution from the previous modal solution.

Parameters
[in]mSolPrevious modal solution

References myModes, and sol.


The documentation for this class was generated from the following files: