fm_basis {fmesher} | R Documentation |
Compute mapping matrix between mesh function space and points
Description
Computes the basis mapping matrix between a function space on a mesh, and locations.
Usage
fm_basis(x, ..., full = FALSE)
## Default S3 method:
fm_basis(x, ..., full = FALSE)
## S3 method for class 'fm_mesh_1d'
fm_basis(x, loc, weights = NULL, derivatives = NULL, ..., full = FALSE)
## S3 method for class 'fm_mesh_2d'
fm_basis(x, loc, weights = NULL, derivatives = NULL, ..., full = FALSE)
## S3 method for class 'fm_mesh_3d'
fm_basis(x, loc, weights = NULL, ..., full = FALSE)
## S3 method for class 'fm_lattice_2d'
fm_basis(x, loc, weights = NULL, ..., full = FALSE)
## S3 method for class 'fm_lattice_Nd'
fm_basis(x, loc, weights = NULL, ..., full = FALSE)
## S3 method for class 'fm_tensor'
fm_basis(x, loc, weights = NULL, ..., full = FALSE)
## S3 method for class 'fm_collect'
fm_basis(x, loc, weights = NULL, ..., full = FALSE)
## S3 method for class 'matrix'
fm_basis(x, ok = NULL, weights = NULL, ..., full = FALSE)
## S3 method for class 'Matrix'
fm_basis(x, ok = NULL, weights = NULL, ..., full = FALSE)
## S3 method for class 'list'
fm_basis(x, weights = NULL, ..., full = FALSE)
## S3 method for class 'fm_basis'
fm_basis(x, ..., full = FALSE)
## S3 method for class 'fm_evaluator'
fm_basis(x, ..., full = FALSE)
Arguments
x |
An function space object, or other supported object
( |
... |
Passed on to submethods |
full |
logical; if |
loc |
A location/value information object ( |
weights |
Optional weight vector to apply (from the left, one weight for each row of the basis matrix) |
derivatives |
If non-NULL and logical, include derivative matrices
in the output. Forces |
ok |
numerical of length |
Value
A sparseMatrix
object (if full = FALSE
), or a fm_basis
object
(if full = TRUE
or isTRUE(derivatives)
). The fm_basis
object contains
at least the projection matrix A
and logical vector ok
; If x_j
denotes the latent basis coefficient for basis function j
, the field is
defined as u(loc_i)=sum_j A_ij x_j
for all i
where ok[i]
is TRUE
,
and u(loc_i)=0.0
where ok[i]
is FALSE
.
Methods (by class)
-
fm_basis(fm_mesh_1d)
: Ifderivatives=TRUE
, thefm_basis
object contains additional derivative weight matrices,d1A
andd2A
,du/dx(loc_i)=sum_j dx_ij w_i
. -
fm_basis(fm_mesh_2d)
: Ifderivatives=TRUE
, additional derivative weight matrices are included in thefull=TRUE
output: Derivative weight matricesdx
,dy
,dz
;du/dx(loc_i)=sum_j dx_ij w_i
, etc. -
fm_basis(fm_mesh_3d)
:fm_mesh_3d
basis functions. -
fm_basis(fm_lattice_2d)
:fm_lattice_2d
bilinear basis functions. -
fm_basis(fm_lattice_Nd)
:fm_lattice_Nd
multilinear basis functions. -
fm_basis(fm_tensor)
: Evaluates a basis matrix for afm_tensor
function space. -
fm_basis(fm_collect)
: Evaluates a basis matrix for afm_collect
function space. Theloc
argument must be alist
ortibble
with elementsloc
(the locations) andindex
(the indices into the function space collection). -
fm_basis(matrix)
: Creates a newfm_basis
object with elementsA
andok
, from a pre-evaluated basis matrix, including optional additional elements in the...
arguments. If aok
isNULL
, it is inferred asrep(TRUE, NROW(x))
, indicating that all rows correspond to successful basis evaluations. Iffull = FALSE
, returns the matrix unchanged. -
fm_basis(Matrix)
: Creates a newfm_basis
object with elementsA
andok
, from a pre-evaluated basis matrix, including optional additional elements in the...
arguments. If aok
isNULL
, it is inferred asrep(TRUE, NROW(x))
, indicating that all rows correspond to successful basis evaluations. Iffull = FALSE
, returns the matrix unchanged. -
fm_basis(list)
: Creates a newfm_basis
object from a plain list containing at least an elementA
. If anok
element is missing, it is inferred asrep(TRUE, NROW(x$A))
. Iffull = FALSE
, extracts theA
matrix. -
fm_basis(fm_basis)
: Iffull
isTRUE
, returnsx
unchanged, otherwise returns theA
matrix contained inx
. -
fm_basis(fm_evaluator)
: Extractfm_basis
information from anfm_evaluator
object. Iffull = FALSE
, returns theA
matrix contained in thefm_basis
object.
See Also
Examples
# Compute basis mapping matrix
dim(fm_basis(fmexample$mesh, fmexample$loc))
print(fm_basis(fmexample$mesh, fmexample$loc, full = TRUE))
# From precomputed `fm_bary` information:
bary <- fm_bary(fmexample$mesh, fmexample$loc)
print(fm_basis(fmexample$mesh, bary, full = TRUE))