ufl.finiteelement package

Submodules

ufl.finiteelement.brokenelement module

Element.

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

Bases: FiniteElementBase

The discontinuous version of an existing Finite Element space.

mapping()[source]

Doc.

reconstruct(**kwargs)[source]

Doc.

shortstr()[source]

Format as string for pretty printing.

sobolev_space()[source]

Return the underlying Sobolev space.

ufl.finiteelement.elementlist module

Element.

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]

Doc.

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

\[\begin{split}\\textrm{EnrichedElement}(V, Q) = \\{v + q | v \\in V, q \\in Q\\}.\end{split}\]

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.

mapping()[source]

Doc.

reconstruct(**kwargs)[source]

Doc.

sobolev_space()[source]

Return the underlying Sobolev space.

variant()[source]

Doc.

class ufl.finiteelement.enrichedelement.NodalEnrichedElement(*elements)[source]

Bases: EnrichedElementBase

The vector sum of several finite element spaces.

\[\begin{split}\\textrm{EnrichedElement}(V, Q) = \\{v + q | v \\in V, q \\in Q\\}.\end{split}\]

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.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]

Return the mapping type for this element .

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: ABC

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.

abstract mapping()[source]

Return the mapping type for this element.

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.

abstract sobolev_space()[source]

Return the underlying Sobolev space.

sub_elements()[source]

Return list of sub-elements.

symmetry()[source]

Return the symmetry dict.

This 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

Doc.

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]

Doc.

reconstruct(**kwargs)[source]

Doc.

shortstr()[source]

Format as string for pretty printing.

sobolev_space()[source]

Return the underlying Sobolev space.

variant()[source]

Doc.

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]

Doc.

reconstruct(**kwargs)[source]

Doc.

shortstr()[source]

Format as string for pretty printing.

sobolev_space()[source]

Return the underlying Sobolev space.

variant()[source]

Doc.

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]

Doc.

reconstruct(**kwargs)[source]

Doc.

reference_value_shape()[source]

Doc.

shortstr()[source]

Doc.

sobolev_space()[source]

Return the underlying Sobolev space.

value_shape()[source]

Doc.

variant()[source]

Doc.

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]

Doc.

num_sub_elements()[source]

Return number of sub elements.

reconstruct(**kwargs)[source]

Doc.

reconstruct_from_elements(*elements)[source]

Reconstruct a mixed element from new subelements.

shortstr()[source]

Format as string for pretty printing.

sobolev_space()[source]

Doc.

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.

variant()[source]

Doc.

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]

Doc.

mapping()[source]

Doc.

reconstruct(**kwargs)[source]

Doc.

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]

Doc.

reconstruct(**kwargs)[source]

Doc.

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]

Doc.

num_restricted_sub_elements()[source]

Return number of restricted sub elements.

num_sub_elements()[source]

Return number of sub elements.

reconstruct(**kwargs)[source]

Doc.

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.

sobolev_space()[source]

Doc.

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.

variant()[source]

Doc.

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]

Doc.

num_sub_elements()[source]

Return number of subelements.

reconstruct(**kwargs)[source]

Doc.

shortstr()[source]

Short pretty-print.

sobolev_space()[source]

Return the underlying Sobolev space of the TensorProductElement.

sub_elements()[source]

Return subelements (factors).

variant()[source]

Doc.

Module contents

This module defines the UFL finite element classes.