NuTo
Numerics Tool
IntegrationTypeTensorProduct.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
8 
9 namespace NuTo
10 {
11 
13 {
14  GAUSS,
15  LOBATTO
16 };
17 
21 
22 template <int TDim>
24 {
25 public:
30 
34  Eigen::VectorXd GetLocalIntegrationPointCoordinates(int rIpNum) const override;
35 
38  int GetNumIntegrationPoints() const override;
39 
43  double GetIntegrationPointWeight(int rIpNum) const override;
44 
45  const Shape& GetShape() const override
46  {
47  return mShape;
48  }
49 
50 private:
52  std::vector<double> mIPts1D;
54  std::vector<Eigen::Matrix<double, TDim, 1>> mIPts;
56  std::vector<double> mWeights;
57 
58  using ShapeType =
59  typename std::conditional<TDim == 1, Line,
60  typename std::conditional<TDim == 2, Quadrilateral, Hexahedron>::type>::type;
61 
62  ShapeType mShape;
63 };
64 } // namespace
integration types in 1,2,3D; tensor product of 1D Lobatto or Gauss
Definition: IntegrationTypeTensorProduct.h:23
const Shape & GetShape() const override
Determines the shape of the integration type.
Definition: IntegrationTypeTensorProduct.h:45
eIntegrationMethod
Definition: IntegrationTypeTensorProduct.h:12
standard abstract class for all integration types
Definition: IntegrationTypeBase.h:14
Definition: Shape.h:20
Definition: Exception.h:6