mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 14:15:42 -04:00
centre to origin
This commit is contained in:
parent
27e3bb427a
commit
76fbdf7fbf
3 changed files with 36 additions and 36 deletions
|
|
@ -359,7 +359,7 @@ public:
|
|||
void to_hdf5(hid_t group) const override;
|
||||
|
||||
array<vector<double>, 3> grid_;
|
||||
array<double, 3> centre_;
|
||||
array<double, 3> origin;
|
||||
|
||||
|
||||
int set_grid();
|
||||
|
|
@ -415,7 +415,7 @@ public:
|
|||
void to_hdf5(hid_t group) const override;
|
||||
|
||||
array<vector<double>, 3> grid_;
|
||||
array<double, 3> centre_;
|
||||
array<double, 3> origin_;
|
||||
|
||||
int set_grid();
|
||||
|
||||
|
|
|
|||
|
|
@ -1052,7 +1052,7 @@ class CylindricalMesh(StructuredMesh):
|
|||
self._r_grid = None
|
||||
self._phi_grid = [0.0, 2*pi]
|
||||
self._z_grid = None
|
||||
self._centre = [0., 0., 0.]
|
||||
self._origin = [0., 0., 0.]
|
||||
|
||||
@property
|
||||
def dimension(self):
|
||||
|
|
@ -1065,8 +1065,8 @@ class CylindricalMesh(StructuredMesh):
|
|||
return 3
|
||||
|
||||
@property
|
||||
def centre(self):
|
||||
return self._centre
|
||||
def origin(self):
|
||||
return self._origin
|
||||
|
||||
@property
|
||||
def r_grid(self):
|
||||
|
|
@ -1094,10 +1094,10 @@ class CylindricalMesh(StructuredMesh):
|
|||
for p in range(1, np + 1)
|
||||
for r in range(1, nr + 1))
|
||||
|
||||
@centre.setter
|
||||
def centre(self, coords):
|
||||
@origin.setter
|
||||
def origin(self, coords):
|
||||
cv.check_type('mesh r_grid', coords, Iterable, Real)
|
||||
self._centre = np.asarray(coords)
|
||||
self._origin = np.asarray(coords)
|
||||
|
||||
@r_grid.setter
|
||||
def r_grid(self, grid):
|
||||
|
|
@ -1240,8 +1240,8 @@ class CylindricalMesh(StructuredMesh):
|
|||
subelement = ET.SubElement(element, "z_grid")
|
||||
subelement.text = ' '.join(map(str, self.z_grid))
|
||||
|
||||
subelement = ET.SubElement(element, "centre")
|
||||
subelement.text = ' '.join(map(str, self.centre))
|
||||
subelement = ET.SubElement(element, "origin")
|
||||
subelement.text = ' '.join(map(str, self.origin))
|
||||
|
||||
return element
|
||||
|
||||
|
|
@ -1266,7 +1266,7 @@ class CylindricalMesh(StructuredMesh):
|
|||
mesh.r_grid = [float(x) for x in get_text(elem, "r_grid").split()]
|
||||
mesh.phi_grid = [float(x) for x in get_text(elem, "phi_grid").split()]
|
||||
mesh.z_grid = [float(x) for x in get_text(elem, "z_grid").split()]
|
||||
mesh.centre = [float(x) for x in get_text(elem, "centre").split()]
|
||||
mesh.origin = [float(x) for x in get_text(elem, "origin").split()]
|
||||
|
||||
return mesh
|
||||
|
||||
|
|
@ -1321,10 +1321,10 @@ class CylindricalMesh(StructuredMesh):
|
|||
pts_cartesian[:, 0] = r * np.cos(phi)
|
||||
pts_cartesian[:, 1] = r * np.sin(phi)
|
||||
|
||||
# offset with centre
|
||||
pts_cartesian[:, 0] = pts_cartesian[:, 0] + self.centre[0]
|
||||
pts_cartesian[:, 1] = pts_cartesian[:, 1] + self.centre[1]
|
||||
pts_cartesian[:, 2] = pts_cartesian[:, 2] + self.centre[2]
|
||||
# offset with origin
|
||||
pts_cartesian[:, 0] = pts_cartesian[:, 0] + self.origin[0]
|
||||
pts_cartesian[:, 1] = pts_cartesian[:, 1] + self.origin[1]
|
||||
pts_cartesian[:, 2] = pts_cartesian[:, 2] + self.origin[2]
|
||||
|
||||
return super().write_data_to_vtk(
|
||||
points=pts_cartesian,
|
||||
|
|
@ -1374,7 +1374,7 @@ class SphericalMesh(StructuredMesh):
|
|||
self._r_grid = None
|
||||
self._theta_grid = [0, pi]
|
||||
self._phi_grid = [0, 2*pi]
|
||||
self._centre = [0., 0., 0.]
|
||||
self._origin = [0., 0., 0.]
|
||||
|
||||
@property
|
||||
def dimension(self):
|
||||
|
|
@ -1387,8 +1387,8 @@ class SphericalMesh(StructuredMesh):
|
|||
return 3
|
||||
|
||||
@property
|
||||
def centre(self):
|
||||
return self._centre
|
||||
def origin(self):
|
||||
return self._origin
|
||||
|
||||
@property
|
||||
def r_grid(self):
|
||||
|
|
@ -1416,10 +1416,10 @@ class SphericalMesh(StructuredMesh):
|
|||
for t in range(1, nt + 1)
|
||||
for r in range(1, nr + 1))
|
||||
|
||||
@centre.setter
|
||||
def centre(self, coords):
|
||||
@origin.setter
|
||||
def origin(self, coords):
|
||||
cv.check_type('mesh r_grid', coords, Iterable, Real)
|
||||
self._centre = np.asarray(coords)
|
||||
self._origin = np.asarray(coords)
|
||||
|
||||
@r_grid.setter
|
||||
def r_grid(self, grid):
|
||||
|
|
@ -1492,8 +1492,8 @@ class SphericalMesh(StructuredMesh):
|
|||
subelement = ET.SubElement(element, "phi_grid")
|
||||
subelement.text = ' '.join(map(str, self.phi_grid))
|
||||
|
||||
subelement = ET.SubElement(element, "centre")
|
||||
subelement.text = ' '.join(map(str, self.centre))
|
||||
subelement = ET.SubElement(element, "origin")
|
||||
subelement.text = ' '.join(map(str, self.origin))
|
||||
|
||||
return element
|
||||
|
||||
|
|
@ -1518,7 +1518,7 @@ class SphericalMesh(StructuredMesh):
|
|||
mesh.r_grid = [float(x) for x in get_text(elem, "r_grid").split()]
|
||||
mesh.theta_grid = [float(x) for x in get_text(elem, "theta_grid").split()]
|
||||
mesh.phi_grid = [float(x) for x in get_text(elem, "phi_grid").split()]
|
||||
mesh.centre = [float(x) for x in get_text(elem, "centre").split()]
|
||||
mesh.origin = [float(x) for x in get_text(elem, "origin").split()]
|
||||
|
||||
return mesh
|
||||
|
||||
|
|
@ -1575,10 +1575,10 @@ class SphericalMesh(StructuredMesh):
|
|||
pts_cartesian[:, 1] = r * np.sin(phi) * np.sin(theta)
|
||||
pts_cartesian[:, 2] = r * np.cos(phi)
|
||||
|
||||
# offset with centre
|
||||
pts_cartesian[:, 0] = pts_cartesian[:, 0] + self.centre[0]
|
||||
pts_cartesian[:, 1] = pts_cartesian[:, 1] + self.centre[1]
|
||||
pts_cartesian[:, 2] = pts_cartesian[:, 2] + self.centre[2]
|
||||
# offset with origin
|
||||
pts_cartesian[:, 0] = pts_cartesian[:, 0] + self.origin[0]
|
||||
pts_cartesian[:, 1] = pts_cartesian[:, 1] + self.origin[1]
|
||||
pts_cartesian[:, 2] = pts_cartesian[:, 2] + self.origin[2]
|
||||
|
||||
return super().write_data_to_vtk(
|
||||
points=pts_cartesian,
|
||||
|
|
|
|||
16
src/mesh.cpp
16
src/mesh.cpp
|
|
@ -955,7 +955,7 @@ CylindricalMesh::CylindricalMesh(pugi::xml_node node) : StructuredMesh {node}
|
|||
grid_[0] = get_node_array<double>(node, "r_grid");
|
||||
grid_[1] = get_node_array<double>(node, "phi_grid");
|
||||
grid_[2] = get_node_array<double>(node, "z_grid");
|
||||
centre_ = get_node_array<double>(node, "centre");
|
||||
origin_ = get_node_array<double>(node, "origin");
|
||||
|
||||
if (int err = set_grid()) {
|
||||
fatal_error(openmc_err_msg);
|
||||
|
|
@ -977,9 +977,9 @@ StructuredMesh::MeshIndex CylindricalMesh::get_indices(
|
|||
mapped_r[0] = std::hypot(r.x, r.y);
|
||||
mapped_r[2] = r[2];
|
||||
|
||||
mapped_r[0] += centre_[0];
|
||||
mapped_r[1] += centre_[1];
|
||||
mapped_r[2] += centre_[2];
|
||||
mapped_r[0] += origin_[0];
|
||||
mapped_r[1] += origin_[1];
|
||||
mapped_r[2] += origin_[2];
|
||||
|
||||
if (mapped_r[0] < FP_PRECISION) {
|
||||
mapped_r[1] = 0.0;
|
||||
|
|
@ -1193,7 +1193,7 @@ SphericalMesh::SphericalMesh(pugi::xml_node node) : StructuredMesh {node}
|
|||
grid_[0] = get_node_array<double>(node, "r_grid");
|
||||
grid_[1] = get_node_array<double>(node, "theta_grid");
|
||||
grid_[2] = get_node_array<double>(node, "phi_grid");
|
||||
centre_ = get_node_array<double>(node, "centre");
|
||||
origin_ = get_node_array<double>(node, "origin");
|
||||
|
||||
if (int err = set_grid()) {
|
||||
fatal_error(openmc_err_msg);
|
||||
|
|
@ -1214,9 +1214,9 @@ StructuredMesh::MeshIndex SphericalMesh::get_indices(
|
|||
|
||||
mapped_r[0] = r.norm();
|
||||
|
||||
mapped_r[0] += centre_[0];
|
||||
mapped_r[1] += centre_[1];
|
||||
mapped_r[2] += centre_[2];
|
||||
mapped_r[0] += origin_[0];
|
||||
mapped_r[1] += origin_[1];
|
||||
mapped_r[2] += origin_[2];
|
||||
|
||||
if (mapped_r[0] < FP_PRECISION) {
|
||||
mapped_r[1] = 0.0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue