Compute finite element mass and structure matrices
Usage
fm_fem(mesh, order = 2, ...)
# S3 method for class 'fm_mesh_1d'
fm_fem(mesh, order = 2, ...)
# S3 method for class 'fm_mesh_2d'
fm_fem(mesh, order = 2, aniso = NULL, ...)
# S3 method for class 'fm_tensor'
fm_fem(mesh, order = 2, ...)
# S3 method for class 'fm_collect'
fm_fem(mesh, order = 2, ...)
# S3 method for class 'fm_mesh_3d'
fm_fem(mesh, order = 2, ...)Arguments
- mesh
fm_mesh_1d(),fm_mesh_2d(), or other supported mesh class object- order
integer; the maximum operator order
- ...
Currently unused
- aniso
If non-NULL, a
list(gamma, v). Calculates anisotropic structure matrices (in addition to the regular) for \(\gamma\) and \(v\) for an anisotropic operator \(\nabla\cdot H \nabla\), where \(H=\gamma I + v v^\top\). Currently (2023-08-05) the fields need to be given per vertex.
Value
fm_fem.fm_mesh_1d: A list with elements c0, c1, g1, g2,
etc.
When mesh$degree == 2, also g01, g02, and g12.
fm_fem.fm_mesh_2d: A list with elements c0, c1, g1, va,
ta, and more if order > 1. When aniso is non-NULL, also g1aniso
matrices, etc.
fm_fem.fm_tensor: A list with elements cc, g1, g2.
fm_fem.fm_collect: A list with elements c0, c1,
g1, g2, etc, and cc (c0 for every model except fm_mesh_1d with
degree=2, for which it is c1). If the base type for the collection
provides va and ta values, those are also returned.
fm_fem.fm_mesh_3d: A list with elements c0, c1, g1, g2,
va, ta, and more if order > 2.
Examples
names(fm_fem(fm_mesh_1d(1:4), order = 3))
#> [1] "c0" "c1" "g1" "g2" "g3"
names(fm_fem(fmexample$mesh, order = 3))
#> [1] "b1" "c0" "c1" "g1" "g2" "g3" "k1" "k2" "k3" "ta" "va"