Skip to content
Get started

eqiora.fem

← Python API index

Finite-element discretization policies.

View source
python
from eqiora import fem
scalar_method = fem.Q1()
flow_method = fem.MiniP1()
print(scalar_method.space)
print(flow_method.velocity_space, flow_method.pressure_space)

Q1 selects continuous tensor-product elements for Cartesian scalar and elasticity problems. MiniP1 selects the mixed velocity/pressure spaces for triangular Stokes problems. Pass the matching policy as spatial= to eqiora.resolve; complete setups are in modeling.

Mixed MINI velocity and continuous P1 pressure spatial policy.

python
@final
class MiniP1:
def __new__(cls) -> Self: ...
@property
def method(self) -> str: ...
@property
def velocity_space(self) -> str: ...
@property
def pressure_space(self) -> str: ...
def at(self, domain: DomainRef) -> ScopedSpatialPolicy: ...
def __eq__(self, other: object, /) -> bool: ...
def __hash__(self) -> int: ...
def __repr__(self) -> str: ...

Continuous simplex P1 Galerkin spatial policy.

python
@final
class P1:
def __new__(cls) -> Self: ...
@property
def method(self) -> str: ...
@property
def space(self) -> str: ...
def at(self, domain: DomainRef) -> ScopedSpatialPolicy: ...
def __eq__(self, other: object, /) -> bool: ...
def __hash__(self) -> int: ...
def __repr__(self) -> str: ...

Continuous tensor-product Q1 Galerkin spatial policy.

python
@final
class Q1:
def __new__(cls) -> Self: ...
@property
def method(self) -> str: ...
@property
def space(self) -> str: ...
def __eq__(self, other: object, /) -> bool: ...
def __hash__(self) -> int: ...
def __repr__(self) -> str: ...

Spatial policy applied to one Model Domain; create it with at.

python
@final
class ScopedSpatialPolicy:
@property
def domain(self) -> DomainRef: ...
@property
def method(self) -> str: ...
@property
def spaces(self) -> tuple[str, str | None]: ...

Lowest-order edge elements on affine tetrahedra.

For static real or complex vector fields with homogeneous natural boundary conditions. Each coefficient is the oriented tangential integral along an edge, so it includes the edge length and is not a point value.

python
@final
class TetrahedralEdge:
def __new__(cls) -> Self: ...
@property
def method(self) -> str: ...
@property
def space(self) -> str: ...
def __eq__(self, other: object, /) -> bool: ...
def __hash__(self) -> int: ...
def __repr__(self) -> str: ...

Lowest-order face elements on affine tetrahedra.

For static real or complex vector fields with homogeneous natural boundary conditions. Each coefficient is the oriented normal flux through a face, so it includes the face area and is not a point value.

python
@final
class TetrahedralFace:
def __new__(cls) -> Self: ...
@property
def method(self) -> str: ...
@property
def space(self) -> str: ...
def __eq__(self, other: object, /) -> bool: ...
def __hash__(self) -> int: ...
def __repr__(self) -> str: ...