symfem.elements.bernstein

Bernstein elements on simplices.

This element’s definition appears in https://doi.org/10.1007/s00211-010-0327-2 (Kirby, 2011) and https://doi.org/10.1137/11082539X (Ainsworth, Andriamaro, Davydov, 2011)

Module Contents

Classes

BernsteinFunctional

Functional for a Bernstein element.

Bernstein

Bernstein finite element.

Functions

single_choose(→ sympy.core.expr.Expr)

Calculate choose function of a set of powers.

choose(→ sympy.core.expr.Expr)

Calculate choose function of a set of powers.

bernstein_polynomials(→ List[sympy.core.expr.Expr])

Return a list of Bernstein polynomials.

symfem.elements.bernstein.single_choose(n: int, k: int) sympy.core.expr.Expr

Calculate choose function of a set of powers.

Parameters:
  • n – Number of items

  • k – Number to select

Returns:

Number of ways to pick k items from n items (ie n choose k)

symfem.elements.bernstein.choose(n: int, powers: List[int]) sympy.core.expr.Expr

Calculate choose function of a set of powers.

Parameters:
  • n – Number of items

  • k – Numbers to select

Returns:

A multichoose function

symfem.elements.bernstein.bernstein_polynomials(n: int, d: int, vars: symfem.symbols.AxisVariablesNotSingle = x) List[sympy.core.expr.Expr]

Return a list of Bernstein polynomials.

Parameters:
  • n – The polynomial order

  • d – The topological dimension

  • vars – The variables to use

Returns:

Bernstein polynomials

class symfem.elements.bernstein.BernsteinFunctional(reference: symfem.references.Reference, integral_domain: symfem.references.Reference, index: int, degree: int, entity: Tuple[int, int])

Bases: symfem.functionals.BaseFunctional

Functional for a Bernstein element.

dof_point() symfem.geometry.PointType

Get the location of the DOF in the cell.

Returns:

Location of the DOF

_eval_symbolic(function: symfem.functions.AnyFunction) symfem.functions.AnyFunction

Apply the functional to a function.

Parameters:

function – The function

Returns:

Evaluation of the functional

get_tex() Tuple[str, List[str]]

Get a representation of the functional as TeX, and list of terms involved.

Returns:

TeX representation

class symfem.elements.bernstein.Bernstein(reference: symfem.references.Reference, order: int)

Bases: symfem.finite_element.CiarletElement

Bernstein finite element.

names = ['Bernstein', 'Bernstein-Bezier']
references = ['interval', 'triangle', 'tetrahedron']
min_order = 0
continuity = 'C0'
last_updated = '2023.05'