ufl_legacy.finiteelement package¶
Submodules¶
ufl_legacy.finiteelement.brokenelement module¶
ufl_legacy.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_legacy.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_legacy.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_legacy.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_legacy.finiteelement.elementlist.register_element(family, short_name, value_rank, sobolev_space, mapping, degree_range, cellnames)[source]¶
Register new finite element family.
ufl_legacy.finiteelement.enrichedelement module¶
This module defines the UFL finite element classes.
- class ufl_legacy.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_legacy.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_legacy.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_legacy.finiteelement.facetelement module¶
ufl_legacy.finiteelement.finiteelement module¶
This module defines the UFL finite element classes.
- class ufl_legacy.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_legacy.finiteelement.finiteelementbase module¶
This module defines the UFL finite element classes.
- class ufl_legacy.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_legacy.finiteelement.hdivcurl module¶
- class ufl_legacy.finiteelement.hdivcurl.HCurlElement(element)[source]¶
Bases:
FiniteElementBase
A curl-conforming version of an outer product element, assuming this makes mathematical sense.
- class ufl_legacy.finiteelement.hdivcurl.HDivElement(element)[source]¶
Bases:
FiniteElementBase
A div-conforming version of an outer product element, assuming this makes mathematical sense.
- class ufl_legacy.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_legacy.finiteelement.interiorelement module¶
ufl_legacy.finiteelement.mixedelement module¶
This module defines the UFL finite element classes.
- class ufl_legacy.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_legacy.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_legacy.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_legacy.finiteelement.restrictedelement module¶
This module defines the UFL finite element classes.
- class ufl_legacy.finiteelement.restrictedelement.RestrictedElement(element, restriction_domain)[source]¶
Bases:
FiniteElementBase
Represents the restriction of a finite element to a type of cell entity.
ufl_legacy.finiteelement.tensorproductelement module¶
This module defines the UFL finite element classes.
- class ufl_legacy.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.