centre to origin

This commit is contained in:
RemDelaporteMathurin 2022-10-11 15:41:38 +00:00
parent 27e3bb427a
commit 76fbdf7fbf
3 changed files with 36 additions and 36 deletions

View file

@ -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();

View file

@ -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,

View file

@ -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;