| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(kind=c_char, len=MEF90MXSTRLEN), | public, | parameter, dimension(4) | :: | MEF90ElementFamily | = | ["Lagrange ", "MEF90ElementFamily ", "prefix_ ", c_null_char//" "] | |
| character(len=MEF90MXSTRLEN), | protected, | dimension(4) | :: | MEF90ElementFamilyList | |||
| type(MEF90ElementType), | public, | parameter | :: | MEF90P0Lagrange2D | = | MEF90ElementType("MEF90P0Lagrange2D", [0, 0, 1, 0], 1, 2, 0, 0) |
P0 pseudo-elements. These are used for creating sections only |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P0Lagrange2DBoundary | = | MEF90ElementType("MEF90P0Lagrange2DBoundary", [0, 1, 0, 0], 1, 2, 0, 0) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P0Lagrange3D | = | MEF90ElementType("MEF90P0Lagrange3D", [0, 0, 0, 1], 1, 3, 0, 0) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P0Lagrange3DBoundary | = | MEF90ElementType("MEF90P0Lagrange3DBoundary", [0, 0, 1, 0], 1, 3, 0, 0) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P1Lagrange2D | = | MEF90ElementType("MEF90P1Lagrange2D", [1, 0, 0, 0], 3, 2, 0, 1) |
P1 Simplicial Lagrange elements |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P1Lagrange2DBoundary | = | MEF90ElementType("MEF90P1Lagrange2DBoundary", [1, 0, 0, 0], 2, 2, 1, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P1Lagrange3D | = | MEF90ElementType("MEF90P1Lagrange3D", [1, 0, 0, 0], 4, 3, 0, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P1Lagrange3DBoundary | = | MEF90ElementType("MEF90P1Lagrange3DBoundary", [1, 0, 0, 0], 3, 3, 1, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P2Lagrange2D | = | MEF90ElementType("MEF90P2Lagrange2D", [1, 1, 0, 0], 6, 2, 0, 2) |
P2 Simplicial Lagrange elements |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P2Lagrange2DBoundary | = | MEF90ElementType("MEF90P2Lagrange2DBoundary", [1, 1, 0, 0], 3, 2, 1, 2) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P2Lagrange3D | = | MEF90ElementType("MEF90P2Lagrange3D", [1, 1, 0, 0], 10, 3, 0, 2) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90P2Lagrange3DBoundary | = | MEF90ElementType("MEF90P2Lagrange3DBoundary", [1, 1, 0, 0], 6, 3, 1, 2) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q1Lagrange2D | = | MEF90ElementType("MEF90Q1Lagrange2D", [1, 0, 0, 0], 4, 2, 0, 1) |
Q1 tensor product Lagrange elements |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q1Lagrange2DBoundary | = | MEF90ElementType("MEF90Q1Lagrange2DBoundary", [1, 0, 0, 0], 2, 2, 1, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q1Lagrange3D | = | MEF90ElementType("MEF90Q1Lagrange3D", [1, 0, 0, 0], 8, 3, 0, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q1Lagrange3DBoundary | = | MEF90ElementType("MEF90Q1Lagrange3DBoundary", [1, 0, 0, 0], 4, 3, 1, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q2Lagrange2D | = | MEF90ElementType("MEF90Q2Lagrange2D", [1, 1, 0, 1], 9, 2, 0, 1) |
Q2 tensor product Lagrange elements |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q2Lagrange2DBoundary | = | MEF90ElementType("MEF90Q2Lagrange2DBoundary", [1, 1, 0, 0], 3, 2, 1, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q2Lagrange3D | = | MEF90ElementType("MEF90Q2Lagrange3D", [1, 1, 1, 1], 27, 3, 0, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90Q2Lagrange3DBoundary | = | MEF90ElementType("MEF90Q2Lagrange3DBoundary", [1, 1, 0, 1], 9, 3, 1, 1) | |
| type(MEF90ElementType), | public, | parameter | :: | MEF90_NULL_ELEMENT | = | MEF90ElementType("NULL", [0, 0, 0, 0], 0, 0, 0, 0) |
| enumerator | :: | MEF90ElementFamilyLagrange | = | 0 |
Element2DScalInitSet:
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element2DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element2DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element3DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element3DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DScal), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DVect), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DScal), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DVect), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(Vect2D), | public, | dimension(:, :), pointer | :: | BF | => | null() | |
| real(kind=C_DOUBLE), | public, | dimension(:), pointer | :: | Gauss_C | => | null() | |
| type(MatS2D), | public, | dimension(:, :), pointer | :: | GradS_BF | => | null() | |
| type(Mat2D), | public, | dimension(:, :), pointer | :: | Grad_BF | => | null() | |
| type(Vect2D), | public | :: | outerNormal |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(Vect3D), | public, | dimension(:, :), pointer | :: | BF | => | null() | |
| real(kind=C_DOUBLE), | public, | dimension(:), pointer | :: | Gauss_C | => | null() | |
| type(MatS3D), | public, | dimension(:, :), pointer | :: | GradS_BF | => | null() | |
| type(Mat3D), | public, | dimension(:, :), pointer | :: | Grad_BF | => | null() | |
| type(Vect3D), | public | :: | outerNormal |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=MEF90MXSTRLEN), | public | :: | Name | ||||
| integer(kind=C_INT32_T), | public | :: | coDim |
The dimension of the cell associated with the element |
|||
| integer(kind=C_INT32_T), | public | :: | dim |
numDof = numVertexDof * numVertex + numEdgeDof * numEdge + numFaceDof * numFace + numCellDof |
|||
| integer(kind=C_INT32_T), | public | :: | numDoF | ||||
| integer(kind=C_INT32_T), | public, | dimension(4) | :: | numDofs |
Number of dof at each vertex edge face cell in 3D, vertex edge cell in 2D (last value is unused, i.e. always use depth to locate DoF) i.e. point depth -1 |
||
| integer(kind=C_INT32_T), | public | :: | order |
The co-dimension of the cell associated with the element |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DScal), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
Element2DScalInitSet:
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element2DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DVect), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element2DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DScal), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element3DScal), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DVect), | intent(inout) | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(tDM), | intent(in) | :: | dm | |||
| type(tIS), | intent(in) | :: | cellIS | |||
| type(MEF90Element3DVect), | dimension(:), pointer | :: | dElem | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| type(MEF90ElementType), | intent(in) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DScal), | intent(inout) | :: | dElem | |||
| real(kind=C_DOUBLE), | intent(in) | :: | l | |||
| type(Vect2D), | intent(in) | :: | outerNormal | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dPolynomialOrder | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DVect), | intent(inout) | :: | dElem | |||
| real(kind=C_DOUBLE), | intent(in) | :: | length | |||
| type(Vect2D), | intent(in) | :: | outerNormal | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dPolynomialOrder | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DScal), | intent(inout) | :: | dElem | |||
| type(Mat2D), | intent(in) | :: | Bt | |||
| real(kind=C_DOUBLE), | intent(in) | :: | DetBinv | |||
| integer(kind=C_INT32_T) | :: | dPolynomialOrder | ||||
| integer(kind=C_INT32_T) | :: | dQuadratureOrder | ||||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element2DVect), | intent(inout) | :: | dElem | |||
| type(Mat2D), | intent(in) | :: | Bt | |||
| real(kind=C_DOUBLE), | intent(in) | :: | DetBinv | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dPolynomialOrder | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DScal), | intent(inout) | :: | dElem | |||
| real(kind=C_DOUBLE), | intent(in) | :: | area | |||
| type(Vect3D), | intent(in) | :: | outerNormal | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dPolynomialOrder | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DVect), | intent(inout) | :: | dElem | |||
| real(kind=C_DOUBLE), | intent(in) | :: | area | |||
| type(Vect3D), | intent(in) | :: | outerNormal | |||
| integer(kind=C_INT32_T) | :: | dPolynomialOrder | ||||
| integer(kind=C_INT32_T) | :: | dQuadratureOrder | ||||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DScal), | intent(inout) | :: | dElem | |||
| type(Mat3D), | intent(in) | :: | Bt | |||
| real(kind=C_DOUBLE), | intent(in) | :: | DetBinv | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dPolynomialOrder | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MEF90Element3DVect), | intent(inout) | :: | dElem | |||
| type(Mat3D), | intent(in) | :: | Bt | |||
| real(kind=C_DOUBLE), | intent(in) | :: | detBinv | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dPolynomialOrder | |||
| integer(kind=C_INT32_T), | intent(in) | :: | dQuadratureOrder | |||
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |
MEF90ElementGetType: Return an element given a family and order
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT32_T), | intent(in) | :: | elemFamily | |||
| integer(kind=C_INT32_T), | intent(in) | :: | order | |||
| type(eDMPolytopeType), | intent(in) | :: | cellType | |||
| type(MEF90ElementType), | intent(out) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(inout) | :: | ierr |
MEF90ElementGetTypeBoundary: Return an element given a family and order
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT32_T), | intent(in) | :: | elemFamily | |||
| integer(kind=C_INT32_T), | intent(in) | :: | order | |||
| type(eDMPolytopeType), | intent(in) | :: | cellType | |||
| type(MEF90ElementType), | intent(out) | :: | elemType | |||
| integer(kind=C_INT32_T), | intent(inout) | :: | ierr |
MEF90ElementsInitialize_Private:
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=C_INT32_T), | intent(out) | :: | ierr |