symfem.polynomials

Polynomials.

Submodules

Package Contents

Functions

l2_dual(→ List[symfem.functions.ScalarFunction])

Compute the L2 dual of a set of polynomials.

orthogonal_basis(...)

Create a basis of orthogonal polynomials.

orthonormal_basis(...)

Create a basis of orthonormal polynomials.

lobatto_basis(→ List[symfem.functions.ScalarFunction])

Get Lobatto polynomials.

lobatto_dual_basis(→ List[symfem.functions.ScalarFunction])

Get L2 dual of Lobatto polynomials.

Hcurl_polynomials(→ List[symfem.functions.VectorFunction])

Hcurl conforming polynomial set.

Hcurl_quolynomials(→ List[symfem.functions.VectorFunction])

Hcurl conforming quolynomial set.

Hcurl_serendipity(→ List[symfem.functions.VectorFunction])

Hcurl conforming serendipity set.

Hdiv_polynomials(→ List[symfem.functions.VectorFunction])

Hdiv conforming polynomial set.

Hdiv_quolynomials(→ List[symfem.functions.VectorFunction])

Hdiv conforming quolynomial set.

Hdiv_serendipity(→ List[symfem.functions.VectorFunction])

Hdiv conforming serendipity set.

polynomial_set_1d(→ List[symfem.functions.ScalarFunction])

One dimensional polynomial set.

polynomial_set_vector(...)

Polynomial set.

prism_polynomial_set_1d(...)

One dimensional polynomial set.

prism_polynomial_set_vector(...)

Polynomial set for a prism.

pyramid_polynomial_set_1d(...)

One dimensional polynomial set.

pyramid_polynomial_set_vector(...)

Polynomial set for a pyramid.

quolynomial_set_1d(→ List[symfem.functions.ScalarFunction])

One dimensional quolynomial set.

quolynomial_set_vector(...)

Quolynomial set.

serendipity_indices(→ List[List[int]])

Get the set indices for a serendipity polynomial set.

serendipity_set_1d(→ List[symfem.functions.ScalarFunction])

One dimensional serendipity set.

serendipity_set_vector(...)

Serendipity set.

symfem.polynomials.l2_dual(cell: str, poly: List[symfem.functions.ScalarFunction]) List[symfem.functions.ScalarFunction]

Compute the L2 dual of a set of polynomials.

Parameters:
  • cell – The cell type

  • poly – The set of polynomial

Returns:

The L2 dual polynomials

symfem.polynomials.orthogonal_basis(cell: str, order: int, derivs: int, variables: symfem.symbols.AxisVariablesNotSingle | None = None) List[List[symfem.functions.ScalarFunction]]

Create a basis of orthogonal polynomials.

Parameters:
  • cell – The cell type

  • order – The maximum polynomial degree

  • derivs – The number of derivatives to include

  • variables – The variables to use

Returns:

A set of orthogonal polynomials

symfem.polynomials.orthonormal_basis(cell: str, order: int, derivs: int, variables: symfem.symbols.AxisVariablesNotSingle | None = None) List[List[symfem.functions.ScalarFunction]]

Create a basis of orthonormal polynomials.

Parameters:
  • cell – The cell type

  • order – The maximum polynomial degree

  • derivs – The number of derivatives to include

  • variables – The variables to use

Returns:

A set of orthonormal polynomials

symfem.polynomials.lobatto_basis(cell: str, order: int, include_endpoints: bool = True) List[symfem.functions.ScalarFunction]

Get Lobatto polynomials.

Parameters:
  • cell – The cell type

  • order – The maximum polynomial degree

  • include_endpoint – should polynomials that are non-zero on the boundary be included?

Returns:

Lobatto polynomials

symfem.polynomials.lobatto_dual_basis(cell: str, order: int, include_endpoints: bool = True) List[symfem.functions.ScalarFunction]

Get L2 dual of Lobatto polynomials.

Parameters:
  • cell – The cell type

  • order – The maximum polynomial degree

  • include_endpoint – should polynomials that are non-zero on the boundary be included?

Returns:

Lobatto polynomials

symfem.polynomials.Hcurl_polynomials(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Hcurl conforming polynomial set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.Hcurl_quolynomials(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Hcurl conforming quolynomial set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.Hcurl_serendipity(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Hcurl conforming serendipity set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.Hdiv_polynomials(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Hdiv conforming polynomial set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.Hdiv_quolynomials(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Hdiv conforming quolynomial set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.Hdiv_serendipity(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Hdiv conforming serendipity set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.polynomial_set_1d(dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.ScalarFunction]

One dimensional polynomial set.

Parameters:
  • dim – The number of variables

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.polynomial_set_vector(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Polynomial set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.prism_polynomial_set_1d(dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.ScalarFunction]

One dimensional polynomial set.

Parameters:
  • dim – The number of variables

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.prism_polynomial_set_vector(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Polynomial set for a prism.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.pyramid_polynomial_set_1d(dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.ScalarFunction]

One dimensional polynomial set.

Parameters:
  • dim – The number of variables

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.pyramid_polynomial_set_vector(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Polynomial set for a pyramid.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.quolynomial_set_1d(dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.ScalarFunction]

One dimensional quolynomial set.

Parameters:
  • dim – The number of variables

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.quolynomial_set_vector(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Quolynomial set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.serendipity_indices(total: int, linear: int, dim: int, done: List[int] | None = None) List[List[int]]

Get the set indices for a serendipity polynomial set.

Parameters:
  • dim – The number of variables

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.serendipity_set_1d(dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.ScalarFunction]

One dimensional serendipity set.

Parameters:
  • dim – The number of variables

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials

symfem.polynomials.serendipity_set_vector(domain_dim: int, range_dim: int, order: int, variables: symfem.symbols.AxisVariablesNotSingle = x) List[symfem.functions.VectorFunction]

Serendipity set.

Parameters:
  • domain_dim – The number of variables

  • range_dim – The dimension of the output vector

  • order – The maximum polynomial degree

  • variables – The variables to use

Returns:

A set of polynomials