Skip to content

Latest commit

 

History

History
253 lines (195 loc) · 9.14 KB

fem.rst

File metadata and controls

253 lines (195 loc) · 9.14 KB

Finite Elements

The Finite Element Method (FEM) is a widely used numerical technique, employed for the solution of partial differential equations (PDEs), arising in structural engineering analysis and more broadly in the field of continuum mechanics.

However, due to their generality and mathematically sound foundation, sections/fem, are often employed in the implementation of other numerical schemes and for various computational operators, e.g. interpolation, integration, etc.

Mint provides basic support for sections/fem that consists:

  1. LagrangeBasis shape functions for commonly employed CellTypes
  2. Corresponding Quadratures (under development)
  3. Routines for forward/inverse IsoparametricMapping, and
  4. Infrastructure to facilitate adding shape functions for new CellTypes, as well as, to AddABasis.

This functionality is collectively exposed to the application through the mint::FiniteElement class. Concrete examples illustrating the usage of the mint::FiniteElement class within an application code are provided in the femTutorial tutorial section.

A Finite Element Basis consists of a family of shape functions corresponding to different CellTypes. Mint currently supports Lagrange isoparametric sections/fem.

Lagrange Basis

The Lagrange basis consists of CellTypes whose shape functions are formed from products of the one-dimensional Lagrange polynomial. This section provides a summary of supported LagrangeBasis CellTypes, their associated shape functions, and summarize the process to AddALagrangeElement.

Note

The shape functions of all Lagrange Cells in Mint, follow the CGNS Numbering Conventions and are defined within a reference coordinate system, on the closed interval ξ̂ ∈ [0, 1].

QUAD: Linear Quadrilateral

Linear Lagrangian Quadrilateral Element

$$\begin{aligned} \begin{array}{r c l c l} N_0 &=& (1 - \xi) &\times& (1 - \eta) \\\ N_1 &=& \xi &\times& (1 - \eta) \\\ N_2 &=& \xi &\times& \eta \\\ N_3 &=& (1 - \xi) &\times& \eta \\\ \end{array} \end{aligned}$$

QUAD9: Quadratic Quadrilateral

Quadratic Lagrangian Quadrilateral Element

$$\begin{aligned} \begin{array}{r c l c l} N_0 &=& (\xi-1)( 2\xi -1) &\times& (\eta-1)(2\eta-1) \\\ N_1 &=& \xi(2\xi-1) &\times& (\eta-1)(2\eta-1) \\\ N_2 &=& \xi(2\xi-1) &\times& \eta(2\eta-1) \\\ N_3 &=& (\xi-1)( 2\xi -1) &\times& \eta(2\eta-1) \\\ \\\ N_4 &=& 4\xi(1-\xi) &\times& (\eta-1)(2\eta-1) \\\ N_5 &=& \xi(2\xi-1) &\times& 4\eta(1-\eta) \\\ N_6 &=& 4\xi(1-\xi) &\times& \eta(2\eta-1) \\\ N_7 &=& (\xi-1)( 2\xi -1) &\times& 4\eta(1-\eta) \\\ \\\ N_8 &=& 4\xi(1-\xi) &\times& 4\eta(1-\eta) \\\ \end{aligned}$$

end{array}

TRIANGLE: Linear Triangle

Linear Lagrangian Triangle Element

$$\begin{aligned} \begin{array}{r c l} N_0 & = & 1 - \xi - \eta \\\ N_1 & = & \xi \\\ N_2 & = & \eta \\\ \end{array} \end{aligned}$$

HEX: Linear Hexahedron

Linear Lagrangian Hexahedron Element

$$\begin{aligned} \begin{array}{r c l c l c l} N_0 &=& (1-\xi) &\times& (1-\eta) &\times& (1-\zeta) \\\ N_1 &=& \xi &\times& (1-\eta) &\times& (1-\zeta) \\\ N_2 &=& \xi &\times& \eta &\times& (1-\zeta) \\\ N_3 &=& (1-\xi) &\times& \eta &\times& (1-\zeta) \\\ \\\ N_4 &=& (1-\xi) &\times& (1-\eta) &\times& \zeta \\\ N_5 &=& \xi &\times& (1-\eta) &\times& \zeta \\\ N_6 &=& \xi &\times& \eta &\times& \zeta \\\ N_7 &=& (1-\xi) &\times& \eta &\times& \zeta \\\ \end{array} \end{aligned}$$

HEX27: Quadratic Hexahedron

Quadratic Lagrangian Hexahedron Element

$$\begin{aligned} \begin{array}{r c l c l c l} N_0 &=& (\xi-1)(2\xi-1) &\times& (\eta-1)(2\eta-1) &\times& (\zeta-1)(2\zeta-1) \\\ N_1 &=& \xi(2\xi-1) &\times& (\eta-1)(2\eta-1) &\times& (\zeta-1)(2\zeta-1) \\\ N_2 &=& \xi(2\xi-1) &\times& \eta(2\eta-1) &\times& (\zeta-1)(2\zeta-1) \\\ N_3 &=& (\xi-1)(2\xi-1) &\times& \eta(2\eta-1) &\times& (\zeta-1)(2\zeta-1) \\\ \\\ N_4 &=& (\xi-1)(2\xi-1) &\times& (\eta-1)(2\eta-1) &\times& \zeta(2\zeta-1) \\\ N_5 &=& \xi(2\xi-1) &\times& (\eta-1)(2\eta-1) &\times& \zeta(2\zeta-1) \\\ N_6 &=& \xi(2\xi-1) &\times& \eta(2\eta-1) &\times& \zeta(2\zeta-1) \\\ N_7 &=& (\xi-1)(2\xi-1) &\times& \eta(2\eta-1) &\times& \zeta(2\zeta-1) \\\ \\\ N_8 &=& 4\xi(1-\xi) &\times& (\eta-1)(2\eta-1) &\times& (\zeta-1)(2\zeta-1) \\\ N_9 &=& \xi(2\xi-1) &\times& 4\eta(1-\eta) &\times& (\zeta-1)(2\zeta-1) \\\ \end{aligned}$$

N{10} &=& 4xi(1-xi) &times& eta(2eta-1) &times& (zeta-1)(2zeta-1) \ N{11} &=& (xi-1)(2xi-1) &times& 4eta(1-eta) &times& (zeta-1)(2zeta-1) \ \ N{12} &=& 4xi(1-xi) &times& (eta-1)(2eta-1) &times& zeta(2zeta-1) \ N{13} &=& xi(2xi-1) &times& 4eta(1-eta) &times& zeta(2zeta-1) \ N{14} &=& 4xi(1-xi) &times& eta(2eta-1) &times& zeta(2zeta-1) \ N{15} &=& (xi-1)(2xi-1) &times& 4eta(1-eta) &times& zeta(2zeta-1) \ \ N{16} &=& (xi-1)(2xi-1) &times& (eta-1)(2eta-1) &times& 4zeta(1-zeta) \ N{17} &=& xi(2xi-1) &times& (eta-1)(2eta-1) &times& 4zeta(1-zeta) \ N{18} &=& xi(2xi-1) &times& eta(2eta-1) &times& 4zeta(1-zeta) \ N{19} &=& (xi-1)(2xi-1) &times& eta(2eta-1) &times& 4zeta(1-zeta) \ \ N{20} &=& (xi-1)(2xi-1) &times& 4eta(1-eta) &times& 4zeta(1-zeta) \ N{21} &=& xi(2xi-1) &times& 4eta(1-eta) &times& 4zeta(1-zeta) \ N{22} &=& 4xi(1-xi) &times& (eta-1)(2eta-1) &times& 4zeta(1-zeta) \ N{23} &=& 4xi(1-xi) &times& eta(2eta-1) &times& 4zeta(1-zeta) \ N{24} &=& 4xi(1-xi) &times& 4eta(1-eta) &times& (zeta-1)(2zeta-1) \ N{25} &=& 4xi(1-xi) &times& 4eta(1-eta) &times& zeta(2zeta-1) \ \ N{26} &=& 4xi(1-xi) &times& 4eta(1-eta) &times& 4zeta(1-zeta) \ end{array}

PYRAMID: Linear Pyramid

Linear Lagrangian Pyramid Element

$$\begin{aligned} \begin{array}{r c l c l c l} N_0 &=& (1-\xi) &\times& (1-\eta) &\times& (1-\zeta) \\\ N_1 &=& \xi &\times& (1-\eta) &\times& (1-\zeta) \\\ N_2 &=& \xi &\times& \eta &\times& (1-\zeta) \\\ N_3 &=& (1-\xi) &\times& \eta &\times& (1-\zeta) \\\ N_4 &=& \zeta \\\ \end{array} \end{aligned}$$

PRISM: Linear Prism/Wedge

Linear Lagrangian Prism Element

$$\begin{aligned} \begin{array}{r c l c l c l} N_0 &=& (1-\xi) - \eta &\times& (1-\zeta) \\\ N_1 &=& \xi &\times& (1-\zeta) \\\ N_2 &=& \eta &\times& (1-\zeta) \\\ N_3 &=& (1-\xi) - \eta &\times& \zeta \\\ N_4 &=& \xi &\times& \zeta \\\ N_5 &=& \eta &\times& \zeta \\\ \end{aligned}$$

end{array}

Add a New Lagrange Element

Warning

This section is under construction.

Isoparametric Mapping

Warning

This section is under construction.

Quadratures

Warning

Support for Quadratures in Mint is under development.

Add a New Finite Element Basis

Warning

This section is under construction.