IFEM 90A354
SIMmodal.h
Go to the documentation of this file.
1// $Id$
2//==============================================================================
12//==============================================================================
13
14#ifndef _SIM_MODAL_H
15#define _SIM_MODAL_H
16
17#include "SIMbase.h"
18
19class ElmMats;
20
21
29{
30protected:
32 SIMmodal(std::vector<Mode>& modes);
34 virtual ~SIMmodal();
35
37 bool parseParams(const tinyxml2::XMLElement* elem);
38
41 const Vectors& expandSolution(const Vectors& mSol);
42
48 bool assembleModalSystem(const TimeDomain& time, const Vectors& mSol,
49 double beta, double gamma);
50
52 bool swapSystem(AlgEqSystem*& sys, SAM*& sam);
53
55 bool saveModes(std::map<std::string,std::string>& data) const;
57 bool restoreModes(const std::map<std::string,std::string>& data);
58
59public:
61 virtual const Vectors& expandSolution(const Vectors&, bool = false) = 0;
63 const Vectors& expandedSolution() const { return sol; }
66 const Vector& expandedSolution(int idx) const;
68 size_t numExpSolution() const { return sol.size(); }
69
71 virtual bool projectModes(Matrices&, std::vector<std::string>&,
72 SIMoptions::ProjectionMethod) { return false; }
73
74protected:
75 std::vector<Mode>& myModes;
76
79
80 bool parsed;
81 double alpha1;
82 double alpha2;
83
84private:
88};
89
90#endif
std::vector< Vector > Vectors
An array of real-valued vectors with algebraic operations.
Definition MatVec.h:37
std::vector< Matrix > Matrices
An array of real-valued matrices with algebraic operations.
Definition MatVec.h:39
Base class for NURBS-based FEM simulators.
Class for storage of general algebraic system of equations.
Definition AlgEqSystem.h:33
Class collecting the element matrices associated with a FEM problem.
Definition ElmMats.h:34
This class contains data and functions for the assembly of FE matrices.
Definition SAM.h:39
Class with support for assembly of modal linear equation systems.
Definition SIMmodal.h:29
SAM * modalSam
Auxiliary data for FE assembly management.
Definition SIMmodal.h:86
ElmMats * myElmMat
Nodal (single-DOF) element matrices.
Definition SIMmodal.h:87
double alpha2
Stiffness-proportional damping parameter.
Definition SIMmodal.h:82
bool saveModes(std::map< std::string, std::string > &data) const
Writes the eigenmodes to a serialization container.
Definition SIMmodal.C:258
double alpha1
Mass-proportional damping parameter.
Definition SIMmodal.h:81
Vector Rhs
Current right-hand-side load vector of the dynamic system.
Definition SIMmodal.h:77
bool parseParams(const tinyxml2::XMLElement *elem)
Parses structural damping parameters from an XML element.
Definition SIMmodal.C:76
bool restoreModes(const std::map< std::string, std::string > &data)
Restores the eigenmodes from a serialization container.
Definition SIMmodal.C:280
bool parsed
Set to true after the model has been initialized.
Definition SIMmodal.h:80
Vectors sol
Expanded solution vectors from the modal solution.
Definition SIMmodal.h:78
virtual const Vectors & expandSolution(const Vectors &, bool=false)=0
Expands and returns the current dynamic solution.
std::vector< Mode > & myModes
Array of eigenmodes.
Definition SIMmodal.h:75
const Vectors & expandSolution(const Vectors &mSol)
Calculates the dynamic solution from the previous modal solution.
Definition SIMmodal.C:103
virtual bool projectModes(Matrices &, std::vector< std::string > &, SIMoptions::ProjectionMethod)
Projects the secondary solution associated with the eigenmodes.
Definition SIMmodal.h:71
bool assembleModalSystem(const TimeDomain &time, const Vectors &mSol, double beta, double gamma)
Administers assembly of the modal equation system.
Definition SIMmodal.C:165
bool swapSystem(AlgEqSystem *&sys, SAM *&sam)
Swaps the modal equation system before/after load vector assembly.
Definition SIMmodal.C:92
const Vectors & expandedSolution() const
Returns the current expanded dynamic solution.
Definition SIMmodal.h:63
size_t numExpSolution() const
Returns the number of expanded dynamic solution vectors.
Definition SIMmodal.h:68
AlgEqSystem * modalSys
The modal equation system.
Definition SIMmodal.h:85
virtual ~SIMmodal()
The destructor deletes the dynamically allocated members.
Definition SIMmodal.C:68
ProjectionMethod
Enum defining the available projection methods.
Definition SIMoptions.h:107
A vector class with some added algebraic operations.
Definition matrix.h:64
Struct representing the time domain.
Definition TimeDomain.h:23