33 Real standard_area, rod_area, wire_area, additional_area;
39 auto r_ref = rod_diameter / 2.0 + gap;
43 auto theta = std::acos(wire_lead_length /
44 std::sqrt(std::pow(wire_lead_length, 2) +
45 std::pow(
libMesh::pi * (rod_diameter + wire_diameter), 2)));
53 standard_area = std::pow(pitch, 2) * std::sqrt(3.0) / 4.0;
54 rod_area =
libMesh::pi * std::pow(rod_diameter, 2.0) / 8.0;
55 additional_area = 0.0;
56 wire_area =
libMesh::pi * std::pow(wire_diameter, 2.0) / 8.0 / std::cos(theta);
60 auto gamma = std::acos(1 - 0.5 * std::pow(pitch / r_ref, 2.0));
63 auto triangle_height = std::sqrt(std::pow(r_ref, 2.0) - std::pow(pitch / 2.0, 2.0));
64 auto sector = 0.5 * sector_angle * std::pow(r_ref, 2.0);
65 auto triangle = 0.5 * pitch * triangle_height;
66 standard_area = 2.0 * sector + triangle;
67 rod_area =
libMesh::pi * std::pow(rod_diameter, 2.0) / 8.0;
68 additional_area = 0.0;
69 wire_area =
libMesh::pi * std::pow(wire_diameter, 2.0) / 8.0 / std::cos(theta);
73 standard_area = (
libMesh::pi / 6.0) * std::pow(r_ref, 2.0);
74 rod_area =
libMesh::pi * std::pow(rod_diameter, 2.0) / 24.0;
75 additional_area = 0.0;
76 wire_area =
libMesh::pi * std::pow(wire_diameter, 2.0) / 24.0 / std::cos(theta);
80 auto subchannel_area = standard_area + additional_area - rod_area - wire_area;
84 for (
const auto & i_blockage : index_blockage)
86 if (i == i_blockage && (
p(2) >= z_blockage.front() &&
p(2) <= z_blockage.back()))
88 return reduction_blockage[index] * subchannel_area;
93 return subchannel_area;