Source code for festim.meshing.mesh
import fenics as f
[docs]
class Mesh:
"""
Mesh class
Args:
mesh (fenics.Mesh, optional): the mesh. Defaults to None.
volume_markers (fenics.MeshFunction, optional): markers of the mesh cells. Defaults to None.
surface_markers (fenics.MeshFunction, optional): markers of the mesh facets. Defaults to None.
type (str, optional): "cartesian", "cylindrical" or "spherical". Defaults to "cartesian".
Attributes:
mesh (fenics.Mesh): the mesh
volume_markers (fenics.MeshFunction): markers of the mesh cells
surface_markers (fenics.MeshFunction): markers of the mesh facets
dx (fenics.Measure):
ds (fenics.Measure):
"""
def __init__(
self, mesh=None, volume_markers=None, surface_markers=None, type="cartesian"
) -> None:
self.mesh = mesh
self.volume_markers = volume_markers
self.surface_markers = surface_markers
self.type = type
self.dx = None
self.ds = None
[docs]
def define_measures(self):
"""Creates the fenics.Measure objects for self.dx and self.ds"""
self.ds = f.Measure("ds", domain=self.mesh, subdomain_data=self.surface_markers)
self.dx = f.Measure("dx", domain=self.mesh, subdomain_data=self.volume_markers)