Quckstart

To setup a finite element you can do the following with a 8 node hexahedral element with a first order quadrature rule (8 integration points) used as an example below

julia> using ReferenceFiniteElements

julia> re = ReferenceFE(Hex{Lagrange, 1}(), GaussLobattoLegendre(2))
ReferenceFE
  Element type      = Hex{Lagrange, 1}()
  Polynomial type   = Lagrange
  Polynomial degree = 1


To do something useful with our finite element we can look at the quadrature points. To get a specific quadrature point, say the first point, we can use an analogous method as follows

julia> cell_quadrature_point(re, 1)
3-element StaticArraysCore.SVector{3, Float64} with indices SOneTo(3):
 -0.5773502691896258
 -0.5773502691896258
 -0.5773502691896258

There are similar methods for the quadrature weights. See below.

julia> cell_quadrature_weight(re, 1)
1.0

For the shape function values we can access these via the following methods

julia> cell_shape_function_value(re, 1)
8-element StaticArraysCore.SVector{8, Float64} with indices SOneTo(8):
 0.4905626121623441
 0.13144585576580212
 0.035220810900864506
 0.13144585576580212
 0.13144585576580212
 0.035220810900864506
 0.009437387837655926
 0.035220810900864506

For shape function gradients, one can use the methods shape_function_gradients or shape_function_gradient respectively. This example is ommitted for brevity.

For shape function hessians, one can use the methods shape_function_hessians or shape_function_hessian respectively. This example is ommitted for brevity.