IFEM  90A354
EigenModeSIM.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _EIGEN_MODE_SIM_H
15 #define _EIGEN_MODE_SIM_H
16 
17 #include "MultiStepSIM.h"
18 #include "SIMbase.h"
19 
20 
25 class EigenModeSIM : public MultiStepSIM
26 {
27 public:
29  explicit EigenModeSIM(SIMbase& sim);
31  virtual ~EigenModeSIM() {}
32 
33  using MultiStepSIM::parse;
35  virtual bool parse(const tinyxml2::XMLElement* elem);
36 
38  virtual void printProblem(bool stopInputTimer = false) const;
39 
41  virtual void initSol(size_t nSol, size_t nDof);
42 
44  virtual bool advanceStep(TimeStep& param, bool updateTime = true);
45 
51  double zero_tolerance,
52  std::streamsize outPrec);
53 
54 private:
55  double myStart;
56  std::vector<Mode> modes;
57  std::vector<double> amplitude;
58  std::vector<double> omega;
59 };
60 
61 #endif
Base class for multi-step solution drivers.
Base class for NURBS-based FEM simulators.
Driver for computing a time history from a set of eigen mode shapes.
Definition: EigenModeSIM.h:26
virtual void initSol(size_t nSol, size_t nDof)
Initializes primary solution vectors.
Definition: EigenModeSIM.C:113
virtual bool advanceStep(TimeStep &param, bool updateTime=true)
Advances the time step one step forward.
Definition: EigenModeSIM.C:146
virtual ~EigenModeSIM()
Empty destructor.
Definition: EigenModeSIM.h:31
double myStart
The start time of this simulator.
Definition: EigenModeSIM.h:55
virtual SIM::ConvStatus solveStep(TimeStep &param, SIM::SolutionMode, double zero_tolerance, std::streamsize outPrec)
Computes the primary solution at current time step.
Definition: EigenModeSIM.C:153
EigenModeSIM(SIMbase &sim)
The constructor initializes the FE model reference.
Definition: EigenModeSIM.C:22
std::vector< double > omega
Applied angular frequencies.
Definition: EigenModeSIM.h:58
virtual void printProblem(bool stopInputTimer=false) const
Prints out problem-specific data to the log stream.
Definition: EigenModeSIM.C:88
std::vector< double > amplitude
Eigenmode shape amplitudes.
Definition: EigenModeSIM.h:57
std::vector< Mode > modes
Eigenmode shapes and frequencies.
Definition: EigenModeSIM.h:56
virtual bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML document.
Definition: MultiStepSIM.C:44
Base class for multi-step solution drivers.
Definition: MultiStepSIM.h:32
virtual bool parse(char *keyWord, std::istream &is)
Parses a data section from an input stream.
Definition: SIMadmin.C:113
Base class for NURBS-based FEM simulators.
Definition: SIMbase.h:72
Class for encapsulation of general time stepping parameters.
Definition: TimeStep.h:31
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