symfem.basix_interface

Interface to Basix.

Attributes

sobolev_spaces

map_types

Functions

get_embedded_degrees(→ tuple[int, int])

Get embedded degrees of a set of polynomials.

_create_custom_element_args(→ tuple[list[Any], ...)

Generate the arguments to create a Basix custom element.

create_basix_element(...)

Create a Basix element from a Symfem element.

_to_python_string(→ str)

_to_cpp_string(→ tuple[list[str], str])

generate_basix_element_code(→ str)

Generate code to create a Basix custom element.

Module Contents

symfem.basix_interface.sobolev_spaces
symfem.basix_interface.map_types
symfem.basix_interface.get_embedded_degrees(poly, reference) tuple[int, int]

Get embedded degrees of a set of polynomials.

Parameters:
  • poly – Polynomials

  • reference – Reference cell

Returns: Embedded sub- and superdegrees

symfem.basix_interface._create_custom_element_args(element: symfem.finite_element.FiniteElement, dtype: numpy.typing.DTypeLike = np.float64) tuple[list[Any], dict[str, Any]]

Generate the arguments to create a Basix custom element.

Parameters:
  • element – The Symfem element

  • dtype – The dtype of the Basix element

Returns:

A list of args and a dict of kwargs

symfem.basix_interface.create_basix_element(element: symfem.finite_element.FiniteElement, dtype: numpy.typing.DTypeLike = np.float64, ufl: bool = False) basix.finite_element.FiniteElement | basix.ufl._ElementBase

Create a Basix element from a Symfem element.

Parameters:
  • element – The Symfem element

  • dtype – The dtype of the Basix element

  • ufl – If generating Python, a basix.ufl element will be created if this is set to True

Returns:

A Basix element

symfem.basix_interface._to_python_string(item: Any, in_array: bool = False) str
symfem.basix_interface._to_cpp_string(item: Any, in_array: bool = False) tuple[list[str], str]
symfem.basix_interface.generate_basix_element_code(element: symfem.finite_element.FiniteElement, language: str = 'python', dtype: numpy.typing.DTypeLike | str = np.float64, variable_name: str = 'e', *, ufl: bool | None = None, include_imports: bool = True, include_comment: bool = True) str

Generate code to create a Basix custom element.

Parameters:
  • element – The Symfem element

  • language – Programming language to generate (“python” or “c++”)

  • dtype – The dtype of the Basix element

  • variable_name – The variable name to use for the element in the code

  • ufl – If generating Python, a basix.ufl element will be created if this is set to True

  • include_imports – Should imports be included in the generated code?

  • include_comment – Should comment saying what is being created be included in the generated code?

Returns:

A Basix element