mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
Making volume retrieval consistent in Python API
This commit is contained in:
parent
70869a0d97
commit
f10d9ac7b6
1 changed files with 50 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue