Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations
GaussQuadrature.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:
29 //------------------------------------------------------------------------------
30 
31 #ifndef _GAUSSQUADRATURE_HPP_
32 #define _GAUSSQUADRATURE_HPP_
33 
34 #include <string>
35 #include <Eigen/Dense>
36 
37 #include "QuadratureRule.hpp"
38 
47 
48  public:
54  GaussQuadrature(std::string name, unsigned int nQp);
55 
58 
61  unsigned int GetNumberOfQuadraturePoints();
62 
67  void GetQuadraturePoints(std::string name, Eigen::VectorXd &wi, Eigen::MatrixXd &xi);
68 
69  private:
71  unsigned int nQuadraturePoints;
72 
74  unsigned int nOrderQuadrature;
75 
80  void SetLineQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi);
81 
86  void SetTriaQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi);
87 
92  void SetQuadQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi);
93 
98  void SetTetraQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi);
99 
104  void SetHexaQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi);
105 };
106 
107 #endif
unsigned int GetNumberOfQuadraturePoints()
Gets Number of Gauss Integration Points.
Virtual class for defining a Quadrature Rule to integrate quantities in the iso-parametric elements...
Definition: QuadratureRule.hpp:44
unsigned int nQuadraturePoints
Number of Quadrature Points.
Definition: GaussQuadrature.hpp:71
void SetTetraQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi)
Sets Gauss Quadrature for Tetrahedron Elements.
Class for creating a Gauss Quadrature declarations to integrate quantities in the iso-parametric elem...
Definition: GaussQuadrature.hpp:46
void SetHexaQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi)
Sets Gauss Quadrature for Hexahedron Elements.
GaussQuadrature(std::string name, unsigned int nQp)
Creates a GaussQuadrature for Element integration.
void SetTriaQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi)
Sets Gauss Quadrature for Triangular Elements.
void SetLineQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi)
Sets Gauss Quadrature for Line Elements.
~GaussQuadrature()
Destroys this GaussQuadrature object.
unsigned int nOrderQuadrature
Number of Surface Quadrature Points.
Definition: GaussQuadrature.hpp:74
void GetQuadraturePoints(std::string name, Eigen::VectorXd &wi, Eigen::MatrixXd &xi)
Gets Gauss Integration Points.
This file contains the abstract "Quadrature Rule" declarations to integrate quantities in the iso-par...
void SetQuadQuadraturePoints(Eigen::VectorXd &wi, Eigen::MatrixXd &xi)
Sets Gauss Quadrature for Quadrilateral Elements.