ufl.finiteelement package

Submodules

ufl.finiteelement.brokenelement module

class ufl.finiteelement.brokenelement.BrokenElement(element)[source]

Bases: FiniteElementBase

The discontinuous version of an existing Finite Element space.

mapping()[source]

Not implemented.

reconstruct(**kwargs)[source]
shortstr()[source]

Format as string for pretty printing.

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_alias(alias, to)[source]
ufl.finiteelement.elementlist.register_element(family, short_name, value_rank, sobolev_space, mapping, degree_range, cellnames)[source]

Register new finite element family.

ufl.finiteelement.elementlist.register_element2(family, value_rank, sobolev_space, mapping, degree_range, cellnames)[source]

Register new finite element family.

ufl.finiteelement.elementlist.show_elements()[source]

Shows all registered elements.

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.

is_cellwise_constant()[source]

Return whether the basis functions of this element is spatially constant over each cell.

shortstr()[source]

Format as string for pretty printing.

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\}.\]
mapping()[source]

Not implemented.

reconstruct(**kwargs)[source]
sobolev_space()[source]

Return the underlying Sobolev space.

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.

is_cellwise_constant()[source]

Return whether the basis functions of this element is spatially constant over each cell.

shortstr()[source]

Format as string for pretty printing.

ufl.finiteelement.facetelement module

ufl.finiteelement.facetelement.FacetElement(element)[source]

Constructs the restriction of a finite element to the facets of the cell.

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.

mapping()[source]

Not implemented.

reconstruct(family=None, cell=None, degree=None, quad_scheme=None, variant=None)[source]

Construct a new FiniteElement object with some properties replaced with new values.

shortstr()[source]

Format as string for pretty printing.

sobolev_space()[source]

Return the underlying Sobolev space.

variant()[source]

Return the variant used to initialise the element.

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.

cell()[source]

Return cell of finite element.

degree(component=None)[source]

Return polynomial degree of finite element.

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.

family()[source]

Return finite element family.

is_cellwise_constant(component=None)[source]

Return whether the basis functions of this element is spatially constant over each cell.

mapping()[source]

Not implemented.

num_sub_elements()[source]

Return number of sub-elements.

quadrature_scheme()[source]

Return quadrature scheme of finite element.

reference_value_shape()[source]

Return the shape of the value space on the reference cell.

reference_value_size()[source]

Return the integer product of the reference value shape.

sub_elements()[source]

Return list of sub-elements.

symmetry()[source]

Return the symmetry dict, which is a mapping \(c_0 \to c_1\) meaning that component \(c_0\) is represented by component \(c_1\). A component is a tuple of one or more ints.

value_shape()[source]

Return the shape of the value space on the global domain.

value_size()[source]

Return the integer product of the value shape.

variant()[source]

Return the variant used to initialise the element.

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.

mapping()[source]

Not implemented.

reconstruct(**kwargs)[source]
shortstr()[source]

Format as string for pretty printing.

sobolev_space()[source]

Return the underlying Sobolev space.

class ufl.finiteelement.hdivcurl.HDivElement(element)[source]

Bases: FiniteElementBase

A div-conforming version of an outer product element, assuming this makes mathematical sense.

mapping()[source]

Not implemented.

reconstruct(**kwargs)[source]
shortstr()[source]

Format as string for pretty printing.

sobolev_space()[source]

Return the underlying Sobolev space.

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”)

mapping()[source]

Not implemented.

reconstruct(**kwargs)[source]
reference_value_shape()[source]

Return the shape of the value space on the reference cell.

shortstr()[source]
value_shape()[source]

Return the shape of the value space on the global domain.

ufl.finiteelement.interiorelement module

ufl.finiteelement.interiorelement.InteriorElement(element)[source]

Constructs the restriction of a finite element to the interior of the cell.

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.

degree(component=None)[source]

Return polynomial degree of finite element.

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.

is_cellwise_constant(component=None)[source]

Return whether the basis functions of this element is spatially constant over each cell.

mapping()[source]

Not implemented.

num_sub_elements()[source]

Return number of sub elements.

reconstruct(**kwargs)[source]
reconstruct_from_elements(*elements)[source]

Reconstruct a mixed element from new subelements.

shortstr()[source]

Format as string for pretty printing.

sub_elements()[source]

Return list of sub elements.

symmetry()[source]

Return the symmetry dict, which is a mapping \(c_0 \to c_1\) meaning that component \(c_0\) is represented by component \(c_1\). A component is a tuple of one or more ints.

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.

flattened_sub_element_mapping()[source]
mapping()[source]

Not implemented.

reconstruct(**kwargs)[source]
shortstr()[source]

Format as string for pretty printing.

symmetry()[source]

Return the symmetry dict, which is a mapping \(c_0 \to c_1\) meaning that component \(c_0\) is represented by component \(c_1\). A component is a tuple of one or more ints.

variant()[source]

Return the variant used to initialise the element.

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.

mapping()[source]

Not implemented.

reconstruct(**kwargs)[source]
shortstr()[source]

Format as string for pretty printing.

variant()[source]

Return the variant used to initialise the element.

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.

is_cellwise_constant()[source]

Return whether the basis functions of this element is spatially constant over each cell.

mapping()[source]

Not implemented.

num_restricted_sub_elements()[source]

Return number of restricted sub elements.

num_sub_elements()[source]

Return number of sub elements.

reconstruct(**kwargs)[source]
restricted_sub_elements()[source]

Return list of restricted sub elements.

restriction_domain()[source]

Return the domain onto which the element is restricted.

shortstr()[source]

Format as string for pretty printing.

sub_element()[source]

Return the element which is restricted.

sub_elements()[source]

Return list of sub elements.

symmetry()[source]

Return the symmetry dict, which is a mapping \(c_0 \to c_1\) meaning that component \(c_0\) is represented by component \(c_1\). A component is a tuple of one or more ints.

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\).

mapping()[source]

Not implemented.

num_sub_elements()[source]

Return number of subelements.

reconstruct(**kwargs)[source]
shortstr()[source]

Short pretty-print.

sobolev_space()[source]

Return the underlying Sobolev space of the TensorProductElement.

sub_elements()[source]

Return subelements (factors).

Module contents

This module defines the UFL finite element classes.