ufl.finiteelement package¶
Submodules¶
ufl.finiteelement.brokenelement module¶
ufl.finiteelement.elementlist module¶
This module provides an extensive list of predefined finite element families. Users or, more likely, form compilers, may register new elements by calling the function register_element.
- ufl.finiteelement.elementlist.canonical_element_description(family, cell, order, form_degree)[source]¶
Given basic element information, return corresponding element information on canonical form.
Input: family, cell, (polynomial) order, form_degree Output: family (canonical), short_name (for printing), order, value shape, reference value shape, sobolev_space.
This is used by the FiniteElement constructor to ved input data against the element list and aliases defined in ufl.
- ufl.finiteelement.elementlist.feec_element(family, n, r, k)[source]¶
Finite element exterior calculus notation n = topological dimension of domain r = polynomial order k = form_degree
- ufl.finiteelement.elementlist.feec_element_l2(family, n, r, k)[source]¶
Finite element exterior calculus notation n = topological dimension of domain r = polynomial order k = form_degree
- ufl.finiteelement.elementlist.register_element(family, short_name, value_rank, sobolev_space, mapping, degree_range, cellnames)[source]¶
Register new finite element family.
ufl.finiteelement.enrichedelement module¶
This module defines the UFL finite element classes.
- class ufl.finiteelement.enrichedelement.EnrichedElement(*elements)[source]¶
Bases:
EnrichedElementBase
The vector sum of several finite element spaces:
\[\textrm{EnrichedElement}(V, Q) = \{v + q | v \in V, q \in Q\}.\]Dual basis is a concatenation of subelements dual bases; primal basis is a concatenation of subelements primal bases; resulting element is not nodal even when subelements are. Structured basis may be exploited in form compilers.
- class ufl.finiteelement.enrichedelement.EnrichedElementBase(*elements)[source]¶
Bases:
FiniteElementBase
The vector sum of several finite element spaces:
\[\textrm{EnrichedElement}(V, Q) = \{v + q | v \in V, q \in Q\}.\]
- class ufl.finiteelement.enrichedelement.NodalEnrichedElement(*elements)[source]¶
Bases:
EnrichedElementBase
The vector sum of several finite element spaces:
\[\textrm{EnrichedElement}(V, Q) = \{v + q | v \in V, q \in Q\}.\]Primal basis is reorthogonalized to dual basis which is a concatenation of subelements dual bases; resulting element is nodal.
ufl.finiteelement.facetelement module¶
ufl.finiteelement.finiteelement module¶
This module defines the UFL finite element classes.
- class ufl.finiteelement.finiteelement.FiniteElement(family, cell=None, degree=None, form_degree=None, quad_scheme=None, variant=None)[source]¶
Bases:
FiniteElementBase
The basic finite element class for all simple finite elements.
ufl.finiteelement.finiteelementbase module¶
This module defines the UFL finite element classes.
- class ufl.finiteelement.finiteelementbase.FiniteElementBase(family, cell, degree, quad_scheme, value_shape, reference_value_shape)[source]¶
Bases:
object
Base class for all finite elements.
- extract_component(i)[source]¶
Recursively extract component index relative to a (simple) element and that element for given value component index.
- extract_reference_component(i)[source]¶
Recursively extract reference component index relative to a (simple) element and that element for given reference value component index.
- extract_subelement_component(i)[source]¶
Extract direct subelement index and subelement relative component index for a given component index.
- extract_subelement_reference_component(i)[source]¶
Extract direct subelement index and subelement relative reference component index for a given reference component index.
- is_cellwise_constant(component=None)[source]¶
Return whether the basis functions of this element is spatially constant over each cell.
ufl.finiteelement.hdivcurl module¶
- class ufl.finiteelement.hdivcurl.HCurlElement(element)[source]¶
Bases:
FiniteElementBase
A curl-conforming version of an outer product element, assuming this makes mathematical sense.
- class ufl.finiteelement.hdivcurl.HDivElement(element)[source]¶
Bases:
FiniteElementBase
A div-conforming version of an outer product element, assuming this makes mathematical sense.
- class ufl.finiteelement.hdivcurl.WithMapping(wrapee, mapping)[source]¶
Bases:
FiniteElementBase
Specify an alternative mapping for the wrappee. For example, to use identity mapping instead of Piola map with an element E, write remapped = WithMapping(E, “identity”)
ufl.finiteelement.interiorelement module¶
ufl.finiteelement.mixedelement module¶
This module defines the UFL finite element classes.
- class ufl.finiteelement.mixedelement.MixedElement(*elements, **kwargs)[source]¶
Bases:
FiniteElementBase
A finite element composed of a nested hierarchy of mixed or simple elements.
- extract_component(i)[source]¶
Recursively extract component index relative to a (simple) element and that element for given value component index.
- extract_reference_component(i)[source]¶
Recursively extract reference_component index relative to a (simple) element and that element for given value reference_component index.
- extract_subelement_component(i)[source]¶
Extract direct subelement index and subelement relative component index for a given component index.
- extract_subelement_reference_component(i)[source]¶
Extract direct subelement index and subelement relative reference_component index for a given reference_component index.
- class ufl.finiteelement.mixedelement.TensorElement(family, cell=None, degree=None, shape=None, symmetry=None, quad_scheme=None, variant=None)[source]¶
Bases:
MixedElement
A special case of a mixed finite element where all elements are equal.
- extract_subelement_component(i)[source]¶
Extract direct subelement index and subelement relative component index for a given component index.
- class ufl.finiteelement.mixedelement.VectorElement(family, cell=None, degree=None, dim=None, form_degree=None, quad_scheme=None, variant=None)[source]¶
Bases:
MixedElement
A special case of a mixed finite element where all elements are equal.
ufl.finiteelement.restrictedelement module¶
This module defines the UFL finite element classes.
- class ufl.finiteelement.restrictedelement.RestrictedElement(element, restriction_domain)[source]¶
Bases:
FiniteElementBase
Represents the restriction of a finite element to a type of cell entity.
ufl.finiteelement.tensorproductelement module¶
This module defines the UFL finite element classes.
- class ufl.finiteelement.tensorproductelement.TensorProductElement(*elements, **kwargs)[source]¶
Bases:
FiniteElementBase
The tensor product of \(d\) element spaces:
\[V = V_1 \otimes V_2 \otimes ... \otimes V_d\]Given bases \(\{\phi_{j_i}\}\) of the spaces \(V_i\) for \(i = 1, ...., d\), \(\{ \phi_{j_1} \otimes \phi_{j_2} \otimes \cdots \otimes \phi_{j_d} \}\) forms a basis for \(V\).
Module contents¶
This module defines the UFL finite element classes.