Polar and embedded geometryΒΆ

Geometry belongs to the mesh layer. Numerical methods stay descriptors for discretization, reconstruction, and Riemann solves.

from pops.mesh import CartesianMesh
from pops.mesh.layouts import Uniform
from pops.mesh.geometry import Disc

wall = Disc(center=(0.0, 0.0), radius=0.4)
mesh = CartesianMesh(n=256, L=1.0, periodic=False)
layout = Uniform(mesh, embedded_boundary=wall)

Use the layout in a case:

case = pops.Case(layout=layout).block("plasma", physics=model, spatial=spatial)

Geometry descriptors must declare their compatibility with AMR, MPI, GPU, and field solvers. If a geometry route needs cut cells, masks, or level sets, expose those as typed descriptors under pops.mesh, not as ad hoc runtime flags.