Skip to content

Commit f70204f

Browse files
committed
Merge branch 'main' of github.com:milliCoulomb/tetraSN
2 parents c08c1dc + 771849e commit f70204f

File tree

9 files changed

+22
-49
lines changed

9 files changed

+22
-49
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ solver_parameters:
157157
max_power_iterations: 500
158158
rays_per_face: 10
159159
max_ray_length: 1000
160+
use_half_hemisphere: false
160161
161162
output:
162163
flux_output_file: "../examples/cube/output/flux.dat"

examples/cow/cow.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ solver_parameters:
2121
max_power_iterations: 5000
2222
rays_per_face: 10
2323
max_ray_length: 1000
24+
use_half_hemisphere: false
2425

2526
output:
2627
flux_output_file: "../examples/cow/output/flux.txt"
2728
k_eff_output_file: "../examples/cow/output/k_eff.txt"
2829

2930
logging:
30-
level: "ERROR"
31-
log_file: "logs/solver.log"
31+
level: "ERROR"

examples/cube/cube.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ solver_parameters:
2121
max_power_iterations: 300
2222
rays_per_face: 10
2323
max_ray_length: 1000
24+
use_half_hemisphere: false
2425

2526
output:
2627
flux_output_file: "../examples/cube/output/flux.txt"
2728
k_eff_output_file: "../examples/cube/output/k_eff.txt"
2829

2930
logging:
30-
level: "RUNNING"
31-
log_file: "logs/solver.log"
31+
level: "RUNNING"

examples/cylinder/cylinder.yaml

Lines changed: 0 additions & 31 deletions
This file was deleted.

examples/sphere/sphere.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ solver_parameters:
2121
max_power_iterations: 500
2222
rays_per_face: 8
2323
max_ray_length: 5000
24+
use_half_hemisphere: false
2425

2526
output:
2627
flux_output_file: "../examples/sphere/output/flux.txt"
2728
k_eff_output_file: "../examples/sphere/output/k_eff.txt"
2829

2930
logging:
30-
level: "ERROR"
31-
log_file: "logs/solver.log"
31+
level: "ERROR"

include/InputDeck.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ struct SolverParameters {
3434
int max_power_iterations;
3535
int rays_per_face;
3636
int max_ray_length;
37+
bool use_half_hemisphere; // use only the upper hemisphere for ray tracing and symmetrize afterwards
3738
};
3839

3940
// Structure to hold output settings
@@ -45,7 +46,6 @@ struct OutputSettings {
4546
// Structure to hold logging settings
4647
struct LoggingSettings {
4748
std::string level;
48-
std::string log_file;
4949
};
5050

5151
// Main structure to hold the entire input deck

src/InputDeck.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ InputDeck InputDeckParser::parse(const std::string& filename) {
4343
deck.solver_parameters.max_power_iterations = sp_node["max_power_iterations"].as<int>();
4444
deck.solver_parameters.rays_per_face = sp_node["rays_per_face"].as<int>();
4545
deck.solver_parameters.max_ray_length = sp_node["max_ray_length"].as<int>();
46+
deck.solver_parameters.use_half_hemisphere = sp_node["use_half_hemisphere"].as<bool>();
4647

4748
// Parse output settings
4849
YAML::Node out_node = config["output"];
@@ -57,7 +58,6 @@ InputDeck InputDeckParser::parse(const std::string& filename) {
5758
YAML::Node log_node = config["logging"];
5859
if (!log_node) throw std::runtime_error("Missing 'logging' section in YAML.");
5960
deck.logging.level = log_node["level"].as<std::string>();
60-
deck.logging.log_file = log_node["log_file"].as<std::string>();
6161

6262
} catch (const YAML::Exception& e) {
6363
std::cerr << "YAML Parsing Error: " << e.what() << std::endl;

src/main.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ int main(int argc, char* argv[]) {
6767
Field field;
6868

6969
bool constant_dir_bool = true;
70-
bool use_half_quadrature_for_constant = false;
70+
bool use_half_quadrature_for_constant = input_deck.solver_parameters.use_half_hemisphere;
7171

7272
// Initialize RayTracerManager and generate tracking data
7373
RayTracerManager ray_tracer_manager(mesh_handler, field, angular_quadrature, constant_dir_bool,
@@ -76,6 +76,10 @@ int main(int argc, char* argv[]) {
7676
int rays_per_face = input_deck.solver_parameters.rays_per_face;
7777
int max_ray_length = input_deck.solver_parameters.max_ray_length;
7878
ray_tracer_manager.generateTrackingData(rays_per_face, max_ray_length);
79+
if (use_half_quadrature_for_constant) {
80+
Logger::info("Using only the upper hemisphere for ray tracing, symmetrizing afterwards.");
81+
ray_tracer_manager.doubleTrackingDataByReversing();
82+
}
7983

8084
Logger::running("Tracking data generated.");
8185

tests/test_InputDeck.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ TEST(InputDeckTest, ParseValidInputDeck) {
4444
max_power_iterations: 100
4545
rays_per_face: 8
4646
max_ray_length: 1000
47+
use_half_hemisphere: false
4748
4849
output:
4950
flux_output_file: "output/flux.dat"
5051
k_eff_output_file: "output/k_eff.dat"
5152
5253
logging:
5354
level: "INFO"
54-
log_file: "logs/solver.log"
5555
)";
5656

5757
ASSERT_TRUE(createTempYAML(filename, yaml_content)) << "Failed to create temporary YAML file.";
@@ -88,7 +88,6 @@ TEST(InputDeckTest, ParseValidInputDeck) {
8888

8989
// Verify logging settings
9090
EXPECT_EQ(deck.logging.level, "INFO");
91-
EXPECT_EQ(deck.logging.log_file, "logs/solver.log");
9291

9392
// Clean up
9493
std::remove(filename.c_str());
@@ -116,14 +115,14 @@ TEST(InputDeckTest, ParseMissingMeshSection) {
116115
max_power_iterations: 100
117116
rays_per_face: 8
118117
max_ray_length: 1000
118+
use_half_hemisphere: false
119119
120120
output:
121121
flux_output_file: "output/flux.dat"
122122
k_eff_output_file: "output/k_eff.dat"
123123
124124
logging:
125125
level: "INFO"
126-
log_file: "logs/solver.log"
127126
)";
128127

129128
ASSERT_TRUE(createTempYAML(filename, yaml_content)) << "Failed to create temporary YAML file.";
@@ -158,14 +157,14 @@ TEST(InputDeckTest, ParseMissingCrossSectionsSection) {
158157
max_power_iterations: 100
159158
rays_per_face: 8
160159
max_ray_length: 1000
160+
use_half_hemisphere: false
161161
162162
output:
163163
flux_output_file: "output/flux.dat"
164164
k_eff_output_file: "output/k_eff.dat"
165165
166166
logging:
167167
level: "INFO"
168-
log_file: "logs/solver.log"
169168
)";
170169

171170
ASSERT_TRUE(createTempYAML(filename, yaml_content)) << "Failed to create temporary YAML file.";
@@ -204,14 +203,14 @@ TEST(InputDeckTest, ParseInvalidAngularQuadratureData) {
204203
max_power_iterations: 100
205204
rays_per_face: 8
206205
max_ray_length: 1000
206+
use_half_hemisphere: false
207207
208208
output:
209209
flux_output_file: "output/flux.dat"
210210
k_eff_output_file: "output/k_eff.dat"
211211
212212
logging:
213213
level: "INFO"
214-
log_file: "logs/solver.log"
215214
)";
216215

217216
ASSERT_TRUE(createTempYAML(filename, yaml_content)) << "Failed to create temporary YAML file.";
@@ -246,7 +245,6 @@ TEST(InputDeckTest, ParseMissingSolverParametersSection) {
246245
247246
logging:
248247
level: "INFO"
249-
log_file: "logs/solver.log"
250248
)";
251249

252250
ASSERT_TRUE(createTempYAML(filename, yaml_content)) << "Failed to create temporary YAML file.";
@@ -285,14 +283,14 @@ TEST(InputDeckTest, ParseInvalidSolverParametersValues) {
285283
max_power_iterations: 100
286284
rays_per_face: 8
287285
max_ray_length: 1000
286+
use_half_hemisphere: false
288287
289288
output:
290289
flux_output_file: "output/flux.dat"
291290
k_eff_output_file: "output/k_eff.dat"
292291
293292
logging:
294293
level: "INFO"
295-
log_file: "logs/solver.log"
296294
)";
297295

298296
ASSERT_TRUE(createTempYAML(filename, yaml_content)) << "Failed to create temporary YAML file.";
@@ -331,10 +329,10 @@ TEST(InputDeckTest, ParseMissingOutputSection) {
331329
max_power_iterations: 100
332330
rays_per_face: 8
333331
max_ray_length: 1000
332+
use_half_hemisphere: false
334333
335334
logging:
336335
level: "INFO"
337-
log_file: "logs/solver.log"
338336
)";
339337

340338
ASSERT_TRUE(createTempYAML(filename, yaml_content)) << "Failed to create temporary YAML file.";
@@ -373,6 +371,7 @@ TEST(InputDeckTest, ParseMissingLoggingSection) {
373371
max_power_iterations: 100
374372
rays_per_face: 8
375373
max_ray_length: 1000
374+
use_half_hemisphere: false
376375
377376
output:
378377
flux_output_file: "output/flux.dat"
@@ -458,14 +457,14 @@ TEST(InputDeckTest, ParseWithExtraSections) {
458457
max_power_iterations: 100
459458
rays_per_face: 8
460459
max_ray_length: 1000
460+
use_half_hemisphere: false
461461
462462
output:
463463
flux_output_file: "output/flux.dat"
464464
k_eff_output_file: "output/k_eff.dat"
465465
466466
logging:
467467
level: "INFO"
468-
log_file: "logs/solver.log"
469468
470469
extra_section:
471470
key: "value"

0 commit comments

Comments
 (0)