Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations
DynamicAnalysis.hpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // Seismo Virtual Laboratory
4 // Module for Serial and Parallel Analysis of seismic
5 // wave propagation and soil-structure interaction simulation
6 // Copyright (C) 2018-2021, The California Institute of Technology
7 // All Rights Reserved.
8 //
9 // Commercial use of this program without express permission of the California
10 // Institute of Technology, is strictly prohibited. See file "COPYRIGHT" in
11 // main directory for information on usage and redistribution, and for a
12 // DISCLAIMER OF ALL WARRANTIES.
13 //
14 //==============================================================================
15 //
16 // Written by:
17 // Danilo S. Kusanovic (dkusanov@caltech.edu)
18 // Elnaz E. Seylabi (elnaze@unr.edu)
19 //
20 // Supervised by:
21 // Domniki M. Asimaki (domniki@caltech.edu)
22 //
23 // References :
24 // [1]
25 //
26 // Description:
30 //------------------------------------------------------------------------------
31 
32 #ifndef _DYNAMICANALYSIS_HPP_
33 #define _DYNAMICANALYSIS_HPP_
34 
35 #include <memory>
36 #include <Eigen/Dense>
37 
38 #include "Mesh.hpp"
39 #include "Analysis.hpp"
40 #include "Algorithm.hpp"
41 #include "Integrator.hpp"
42 #include "LoadCombo.hpp"
43 
51 class DynamicAnalysis : public Analysis{
52 
53  public:
62  DynamicAnalysis(std::shared_ptr<Mesh> &mesh, std::shared_ptr<Algorithm> &algorithm, std::shared_ptr<Integrator> &integrator, std::shared_ptr<LoadCombo> &loadcombo, unsigned int nSteps=0);
63 
66 
70  bool Analyze();
71 
75  void UpdateDomain(unsigned int k);
76 
77  private:
79  unsigned int NumberOfTimeSteps;
80 
82  std::shared_ptr<Mesh> theMesh;
83 
85  std::shared_ptr<Algorithm> theAlgorithm;
86 
88  std::shared_ptr<Integrator> theIntegrator;
89 };
90 
91 #endif
bool Analyze()
Analyze the current incremental step.
~DynamicAnalysis()
Destroys this DynamicAnalysis object.
std::shared_ptr< Mesh > theMesh
The finite element mesh:
Definition: DynamicAnalysis.hpp:82
DynamicAnalysis(std::shared_ptr< Mesh > &mesh, std::shared_ptr< Algorithm > &algorithm, std::shared_ptr< Integrator > &integrator, std::shared_ptr< LoadCombo > &loadcombo, unsigned int nSteps=0)
Creates a DynamicAnalysis object.
std::shared_ptr< Integrator > theIntegrator
The dynamic integrator method.
Definition: DynamicAnalysis.hpp:88
This file contains the "Load Combination" class declarations, which defines how the loads are going t...
std::shared_ptr< Algorithm > theAlgorithm
The linear system algorithm.
Definition: DynamicAnalysis.hpp:85
Class for creating a dynamic analysis and updating the states variables in mesh.
Definition: DynamicAnalysis.hpp:51
This file contains the pure virtual "Analysis object" declarations, so far, static and dynamic analys...
Virtual class for defining the analysis type to be performed.
Definition: Analysis.hpp:52
This file contains the "Integrator object" declarations, and defines how the dynamic solution between...
unsigned int NumberOfTimeSteps
Total number of time increments.
Definition: DynamicAnalysis.hpp:79
This file contains the "Mesh object" declarations, which stores nodes, materials, elements...
void UpdateDomain(unsigned int k)
Performs changes in mesh.