Skip to content

Commit e9f5348

Browse files
committed
implement density multipliers for time-dependent machinery
1 parent c2b9da6 commit e9f5348

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

src/random_ray/flat_source_domain.cpp

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,9 @@ void FlatSourceDomain::update_single_neutron_source(SourceRegionHandle& srh)
144144
nu_sigma_f = nu_sigma_f_[material * negroups_ + g_in];
145145
chi = chi_[material * negroups_ + g_out];
146146
}
147-
nu_sigma_f *= density_mult;
148147
scatter_source += sigma_s * scalar_flux;
149148
if (settings::create_fission_neutrons) {
150-
fission_source += nu_sigma_f * scalar_flux * chi;
149+
fission_source += nu_sigma_f * density_mult * scalar_flux * chi;
151150
}
152151
}
153152
total_source = (scatter_source + fission_source * inverse_k_eff);
@@ -233,6 +232,7 @@ void FlatSourceDomain::set_flux_to_flux_plus_source(
233232
int64_t sr, double volume, int g)
234233
{
235234
int material = source_regions_.material(sr);
235+
double density_mult = source_regions_.density_mult(sr);
236236
if (material == MATERIAL_VOID) {
237237
source_regions_.scalar_flux_new(sr, g) /= volume;
238238
if (settings::run_mode == RunMode::FIXED_SOURCE) {
@@ -241,19 +241,17 @@ void FlatSourceDomain::set_flux_to_flux_plus_source(
241241
source_regions_.volume_sq(sr);
242242
}
243243
} else {
244-
double sigma_t = sigma_t_[material * negroups_ + g] *
245-
source_regions_.density_mult(sr);
244+
double sigma_t = sigma_t_[material * negroups_ + g] * density_mult;
246245
source_regions_.scalar_flux_new(sr, g) /= (sigma_t * volume);
247246
source_regions_.scalar_flux_new(sr, g) += source_regions_.source(sr, g);
248247
}
249248
if (settings::kinetic_simulation && !simulation::is_initial_condition) {
250-
double inverse_vbar =
251-
inverse_vbar_[source_regions_.material(sr) * negroups_ + g];
249+
double inverse_vbar = inverse_vbar_[material * negroups_ + g];
252250
double scalar_flux_rhs_bd = source_regions_.scalar_flux_rhs_bd(sr, g);
253251
double A0 =
254252
(bd_coefficients_first_order_.at(RandomRay::bd_order_))[0] / settings::dt;
255253
// TODO: Add support for expicit void regions
256-
double sigma_t = sigma_t_[material * negroups_ + g];
254+
double sigma_t = sigma_t_[material * negroups_ + g] * density_mult;
257255
source_regions_.scalar_flux_new(sr, g) -=
258256
scalar_flux_rhs_bd * inverse_vbar / sigma_t;
259257
source_regions_.scalar_flux_new(sr, g) /= 1 + A0 * inverse_vbar / sigma_t;
@@ -1469,12 +1467,12 @@ void FlatSourceDomain::set_adjoint_sources()
14691467
#pragma omp parallel for
14701468
for (int64_t sr = 0; sr < n_source_regions(); sr++) {
14711469
int material = source_regions_.material(sr);
1470+
double density_mult = source_regions_.density_mult(sr);
14721471
if (material == MATERIAL_VOID) {
14731472
continue;
14741473
}
14751474
for (int g = 0; g < negroups_; g++) {
1476-
double sigma_t =
1477-
sigma_t_[material * negroups_ + g] * source_regions_.density_mult(sr);
1475+
double sigma_t = sigma_t_[material * negroups_ + g] * density_mult;
14781476
source_regions_.external_source(sr, g) /= sigma_t;
14791477
}
14801478
}
@@ -1951,10 +1949,12 @@ void FlatSourceDomain::compute_single_phi_prime(SourceRegionHandle& srh)
19511949
double A0 =
19521950
(bd_coefficients_first_order_.at(RandomRay::bd_order_))[0] / settings::dt;
19531951
int material = srh.material();
1952+
double density_mult = srh.density_mult();
19541953
for (int g = 0; g < negroups_; g++) {
19551954
double inverse_vbar = inverse_vbar_[material * negroups_ + g];
19561955
// TODO: add support for explicit void
1957-
double sigma_t = sigma_t_[material * negroups_ + g];
1956+
double sigma_t = sigma_t_[material * negroups_ + g] * density_mult;
1957+
;
19581958

19591959
double scalar_flux_time_derivative =
19601960
A0 * srh.scalar_flux_old(g) + srh.scalar_flux_rhs_bd(g);
@@ -1970,10 +1970,11 @@ void FlatSourceDomain::compute_single_T1(SourceRegionHandle& srh)
19701970
double B0 = (bd_coefficients_second_order_.at(RandomRay::bd_order_))[0] /
19711971
(settings::dt * settings::dt);
19721972
int material = srh.material();
1973+
double density_mult = srh.density_mult();
19731974
for (int g = 0; g < negroups_; g++) {
19741975
double inverse_vbar = inverse_vbar_[material * negroups_ + g];
19751976
// TODO: add support for explicit void
1976-
double sigma_t = sigma_t_[material * negroups_ + g];
1977+
double sigma_t = sigma_t_[material * negroups_ + g] * density_mult;
19771978

19781979
// Multiply out sigma_t to correctly compute the derivative term
19791980
float source_time_derivative =
@@ -1999,6 +2000,7 @@ void FlatSourceDomain::compute_single_delayed_fission_source(
19992000
}
20002001

20012002
int material = srh.material();
2003+
double density_mult = srh.density_mult();
20022004
if (material != MATERIAL_VOID) {
20032005
double inverse_k_eff = 1.0 / k_eff_;
20042006
for (int dg = 0; dg < ndgroups_; dg++) {
@@ -2008,7 +2010,8 @@ void FlatSourceDomain::compute_single_delayed_fission_source(
20082010
for (int g = 0; g < negroups_; g++) {
20092011
double scalar_flux = scalar_flux = srh.scalar_flux_new(g);
20102012
double nu_d_sigma_f = nu_d_sigma_f_[material * negroups_ * ndgroups_ +
2011-
dg * negroups_ + g];
2013+
dg * negroups_ + g] *
2014+
density_mult;
20122015
srh.delayed_fission_source(dg) += nu_d_sigma_f * scalar_flux;
20132016
}
20142017
srh.delayed_fission_source(dg) *= inverse_k_eff;
@@ -2158,8 +2161,9 @@ void FlatSourceDomain::store_time_step_quantities(bool increment_not_initialize)
21582161
if (RandomRay::time_method_ == RandomRayTimeMethod::PROPAGATION) {
21592162
// Multiply out sigma_t to store the base source
21602163
int material = source_regions_.material(sr);
2164+
double density_mult = source_regions_.density_mult(sr);
21612165
// TODO: add support for explicit void regions
2162-
double sigma_t = sigma_t_[source_regions_.material(sr) * negroups_ + g];
2166+
double sigma_t = sigma_t_[material * negroups_ + g] * density_mult;
21632167
float source = source_regions_.source_final(sr, g) * sigma_t;
21642168
add_value_to_bd_vector(source_regions_.source_bd(sr, g), source,
21652169
increment_not_initialize, RandomRay::bd_order_);

0 commit comments

Comments
 (0)