OGS
GMatrixPolicy.h
Go to the documentation of this file.
1 
11 #pragma once
12 
14 
15 namespace ProcessLib
16 {
19 template <typename ShapeFunction, int DisplacementDim>
21 {
22 private:
24  template <int N>
25  using VectorType =
26  typename ShapeMatrixPolicyType<ShapeFunction,
27  DisplacementDim>::template VectorType<N>;
28 
30  template <int N, int M>
32  ShapeFunction, DisplacementDim>::template MatrixType<N, M>;
33 
34  // Dimensions of specific b-matrix for n-points and displacement dimension.
35  static int const _number_of_dof = ShapeFunction::NPOINTS * DisplacementDim;
36 
37 public:
38  // For the 2D case the 33-component is needed (and the four entries
39  // of the non-symmetric matrix); In 3d there are nine entries.
40  using GradientMatrixType = MatrixType<DisplacementDim * DisplacementDim +
41  (DisplacementDim == 2 ? 1 : 0),
43  using GradientVectorType = VectorType<DisplacementDim * DisplacementDim +
44  (DisplacementDim == 2 ? 1 : 0)>;
45 };
46 } // namespace ProcessLib
MatrixType< DisplacementDim *DisplacementDim+(DisplacementDim==2 ? 1 :0), _number_of_dof > GradientMatrixType
Definition: GMatrixPolicy.h:42
static int const _number_of_dof
Definition: GMatrixPolicy.h:35
typename ShapeMatrixPolicyType< ShapeFunction, DisplacementDim >::template MatrixType< N, M > MatrixType
Reusing the ShapeMatrixPolicy matrix type.
Definition: GMatrixPolicy.h:32
typename ShapeMatrixPolicyType< ShapeFunction, DisplacementDim >::template VectorType< N > VectorType
Reusing the ShapeMatrixPolicy vector type.
Definition: GMatrixPolicy.h:27
VectorType< DisplacementDim *DisplacementDim+(DisplacementDim==2 ? 1 :0)> GradientVectorType
Definition: GMatrixPolicy.h:44