Home Installation Demos C++ docs Python docs
basix.ufl¶
Functions to directly wrap Basix elements in UFL.
Functions
| 
 | Compute a signature of a custom element. | 
| 
 | Convert an enum to a UFL pull back. | 
| 
 | Convert a Basix Sobolev space enum to a UFL Sobolev space. | 
| 
 | Create a UFL compatible blocked element. | 
| 
 | Create a UFL compatible custom Basix element. | 
| 
 | Create a UFL compatible element using Basix. | 
| 
 | Create an UFL compatible enriched element from a list of elements. | 
| 
 | Create a UFL compatible mixed element from a list of elements. | 
| 
 | Create a quadrature element. | 
| 
 | Create a real element. | 
| 
 | Wrap a Basix element as a Basix UFL element. | 
Classes
| 
 | A wrapper allowing Basix elements to be used directly with UFL. | 
| 
 | Element with a block size that contains multiple copies of a sub element. | 
| 
 | An element representing one component of a _BasixElement. | 
| 
 | A base wrapper to allow elements to be used with UFL. | 
| 
 | A mixed element that combines two or more elements. | 
| 
 | A quadrature element. | 
| 
 | A real element. | 
- basix.ufl.blocked_element(sub_element: _ElementBase, shape: tuple[int, ...], symmetry: bool | None = None) _ElementBase¶
- Create a UFL compatible blocked element. - Parameters:
- sub_element – Element used for each block. 
- shape – Value shape of the element. For scalar-valued families, this can be used to create vector and tensor elements. 
- symmetry – Set to - Trueif the tensor is symmetric. Valid for rank 2 elements only.
 
- Returns:
- A blocked finite element. 
 
- basix.ufl.custom_element(cell_type: CellType, reference_value_shape: list[int] | tuple[int, ...], wcoeffs: ndarray[Any, dtype[float64]], x: list[list[numpy.ndarray[Any, numpy.dtype[numpy.float64]]]], M: list[list[numpy.ndarray[Any, numpy.dtype[numpy.float64]]]], interpolation_nderivs: int, map_type: MapType, sobolev_space: SobolevSpace, discontinuous: bool, embedded_subdegree: int, embedded_superdegree: int, polyset_type: PolysetType = PolysetType.standard) _ElementBase¶
- Create a UFL compatible custom Basix element. - Parameters:
- cell_type – The cell type 
- reference_value_shape – The reference value shape of the element 
- wcoeffs – Matrices for the kth value index containing the expansion coefficients defining a polynomial basis spanning the polynomial space for this element. Shape is - (dim(finite element polyset), dim(Legenre polynomials)).
- x – Interpolation points. Indices are - (tdim, entity index, point index, dim).
- M – The interpolation matrices. Indices are - (tdim, entity index, dof, vs, point_index, derivative).
- interpolation_nderivs – The number of derivatives that need to be used during interpolation. 
- map_type – The type of map to be used to map values from the reference to a cell. 
- sobolev_space – Underlying Sobolev space for the element. 
- discontinuous – Indicates whether or not this is the discontinuous version of the element. 
- embedded_subdegree – The highest degree - nsuch that a Lagrange (or vector Lagrange) element of degree- nis a subspace of this element.
- embedded_superdegree – The highest degree of a polynomial in this element’s polyset. 
- polyset_type – Polyset type for the element. 
 
- Returns:
- A custom finite element. 
 
- basix.ufl.element(family: ~basix.finite_element.ElementFamily | str, cell: ~basix.cell.CellType | str, degree: int, lagrange_variant: ~basix.finite_element.LagrangeVariant = LagrangeVariant.unset, dpc_variant: ~basix.finite_element.DPCVariant = DPCVariant.unset, discontinuous: bool = False, shape: tuple[int, ...] | None = None, symmetry: bool | None = None, dtype: ~numpy.dtype[~typing.Any] | None | ~typing.Type[~typing.Any] | ~numpy._typing._dtype_like._SupportsDType[~numpy.dtype[~typing.Any]] | str | ~typing.Tuple[~typing.Any, int] | ~typing.Tuple[~typing.Any, ~typing.SupportsIndex | ~typing.Sequence[~typing.SupportsIndex]] | ~typing.List[~typing.Any] | ~numpy._typing._dtype_like._DTypeDict | ~typing.Tuple[~typing.Any, ~typing.Any] = <class 'numpy.float64'>) _ElementBase¶
- Create a UFL compatible element using Basix. - Parameters:
- family – Element family/type. 
- cell – Element cell type. 
- degree – Degree of the finite element. 
- lagrange_variant – Variant of Lagrange to be used. 
- dpc_variant – Variant of DPC to be used. 
- discontinuous – If - True, the discontinuous version of the element is created.
- shape – Value shape of the element. For scalar-valued families, this can be used to create vector and tensor elements. 
- symmetry – Set to - Trueif the tensor is symmetric. Valid for rank 2 elements only.
- dtype – Floating point data type. 
 
- Returns:
- A finite element. 
 
- basix.ufl.enriched_element(elements: list[basix.ufl._ElementBase], map_type: MapType | None = None) _ElementBase¶
- Create an UFL compatible enriched element from a list of elements. - Parameters:
- elements – The list of elements 
- map_type – The map type for the enriched element. 
 
- Returns:
- An enriched finite element. 
 
- basix.ufl.mixed_element(elements: list[basix.ufl._ElementBase]) _ElementBase¶
- Create a UFL compatible mixed element from a list of elements. - Parameters:
- elements – The list of elements 
- Returns:
- A mixed finite element. 
 
- basix.ufl.quadrature_element(cell: str | CellType, value_shape: tuple[int, ...] = (), scheme: str | None = None, degree: int | None = None, points: ndarray[Any, dtype[float64]] | None = None, weights: ndarray[Any, dtype[float64]] | None = None, pullback: AbstractPullback = IdentityPullback()) _ElementBase¶
- Create a quadrature element. - When creating this element, either the quadrature scheme and degree must be input or the quadrature points and weights must be. - Parameters:
- cell – Cell to create the element on. 
- value_shape – Value shape of the element. 
- scheme – Quadrature scheme. 
- degree – Quadrature degree. 
- points – Quadrature points. 
- weights – Quadrature weights. 
- pullback – Map name. 
 
- Returns:
- A ‘quadrature’ finite element. 
 
- basix.ufl.real_element(cell: CellType | str, value_shape: tuple[int, ...]) _ElementBase¶
- Create a real element. - Parameters:
- cell – Cell to create the element on. 
- value_shape – Value shape of the element. 
 
- Returns:
- A ‘real’ finite element. 
 
- basix.ufl.wrap_element(element: FiniteElement) _ElementBase¶
- Wrap a Basix element as a Basix UFL element. 
