Making volume retrieval consistent in Python API

This commit is contained in:
Patrick Shriwise 2022-02-25 16:56:56 -06:00
parent 70869a0d97
commit f10d9ac7b6

View file

@ -203,6 +203,22 @@ class RegularMesh(MeshBase):
def num_mesh_cells(self):
return np.prod(self._dimension)
@property
def volumes(self):
"""Return Volumes for every mesh cell
Returns
-------
volumes : Iterable of float
Volumes
"""
return np.full(self.dimension, np.prod(self.width))
@property
def total_volume(self):
return np.prod(self.dimension) * np.prod(self.width)
@property
def indices(self):
ndim = len(self._dimension)
@ -575,6 +591,26 @@ class RectilinearMesh(MeshBase):
def z_grid(self):
return self._z_grid
@property
def volumes(self):
"""Return Volumes for every mesh cell
Returns
-------
volumes : Iterable of float
Volumes
"""
V_x = np.diff(self.x_grid)
V_y = np.diff(self.y_grid)
V_z = np.diff(self.z_grid)
return np.multiply.outer(np.outer(V_x, V_y), V_z)
@property
def total_volume(self):
return np.sum(self.volumes)
@property
def indices(self):
nx = len(self.x_grid) - 1
@ -681,6 +717,7 @@ class RectilinearMesh(MeshBase):
return element
class CylindricalMesh(MeshBase):
"""A 3D cylindrical mesh
@ -850,7 +887,8 @@ class CylindricalMesh(MeshBase):
mesh.z_grid = [float(x) for x in get_text(elem, "z_grid").split()]
return mesh
def calc_mesh_volumes(self):
@property
def volumes(self):
"""Return Volumes for every mesh cell
Returns
@ -1037,7 +1075,8 @@ class SphericalMesh(MeshBase):
mesh.phi_grid = [float(x) for x in get_text(elem, "phi_grid").split()]
return mesh
def calc_mesh_volumes(self):
@property
def volumes(self):
"""Return Volumes for every mesh cell
Returns
@ -1150,6 +1189,15 @@ class UnstructuredMesh(MeshBase):
@property
def volumes(self):
"""Return Volumes for every mesh cell if
populated by a StatePoint file
Returns
-------
volumes : Iterable of float
Volumes
"""
return self._volumes
@volumes.setter