Basis Module
The basis module provides classes and utilities for working with basis functions in the finite element method. It includes support for linear and bilinear basis functions, as well as tensor product basis functions.
Classes
Basis Classes
TensorProductBasis
Base class for tensor product basis functions.
from ttfemesh.basis import TensorProductBasis
basis = TensorProductBasis(dim, basis_type)
Parameters:
dim(int): The dimension of the basis functionsbasis_type(str): The type of basis functions to use
LinearBasis
Linear basis functions for 1D elements.
from ttfemesh.basis import LinearBasis
basis = LinearBasis()
Methods:
evaluate(x): Evaluate the basis functions at point xderivative(x): Evaluate the derivatives of the basis functions at point x
BilinearBasis
Bilinear basis functions for 2D elements.
from ttfemesh.basis import BilinearBasis
basis = BilinearBasis()
Methods:
evaluate(x, y): Evaluate the basis functions at point (x, y)derivative(x, y): Evaluate the derivatives of the basis functions at point (x, y)
Examples
Using Linear Basis Functions
from ttfemesh.basis import LinearBasis
import numpy as np
# Create a linear basis
basis = LinearBasis()
# Evaluate basis functions at a point
x = 0.5
values = basis.evaluate(x)
print(f"Basis function values at x={x}: {values}")
# Evaluate derivatives at a point
derivatives = basis.derivative(x)
print(f"Basis function derivatives at x={x}: {derivatives}")
Using Bilinear Basis Functions
from ttfemesh.basis import BilinearBasis
import numpy as np
# Create a bilinear basis
basis = BilinearBasis()
# Evaluate basis functions at a point
x, y = 0.5, 0.5
values = basis.evaluate(x, y)
print(f"Basis function values at (x,y)=({x},{y}): {values}")
# Evaluate derivatives at a point
derivatives = basis.derivative(x, y)
print(f"Basis function derivatives at (x,y)=({x},{y}): {derivatives}")
Using Tensor Product Basis Functions
from ttfemesh.basis import TensorProductBasis, BilinearBasis
# Create a tensor product basis using bilinear basis functions
basis = TensorProductBasis(dim=2, basis_type=BilinearBasis)
# The tensor product basis can be used in the same way as the component basis
x, y = 0.5, 0.5
values = basis.evaluate(x, y)
print(f"Tensor product basis function values at (x,y)=({x},{y}): {values}")