mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-29 06:35:48 -04:00
Adding otf ww adjustment using lower bound ratio.
This commit is contained in:
parent
6450d669cb
commit
9aa6134366
5 changed files with 67 additions and 4 deletions
|
|
@ -309,7 +309,9 @@ private:
|
|||
int n_event_ {0}; // number of events executed in this particle's history
|
||||
|
||||
// Weight window information
|
||||
int n_split_ {0}; // Number of splits this particle has undergone
|
||||
int n_split_ {0}; // Number of times this particle has been split
|
||||
double ww_factor_ {
|
||||
0.0}; // Particle-specific factor for on-the-fly weight window adjustment
|
||||
|
||||
// DagMC state variables
|
||||
#ifdef DAGMC
|
||||
|
|
@ -435,6 +437,9 @@ public:
|
|||
int n_split() const { return n_split_; }
|
||||
int& n_split() { return n_split_; }
|
||||
|
||||
double ww_factor() const { return ww_factor_; }
|
||||
double& ww_factor() { return ww_factor_; }
|
||||
|
||||
#ifdef DAGMC
|
||||
moab::DagMC::RayHistory& history() { return history_; }
|
||||
Direction& last_dir() { return last_dir_; }
|
||||
|
|
|
|||
|
|
@ -52,12 +52,20 @@ extern vector<unique_ptr<WeightWindows>> weight_windows;
|
|||
struct WeightWindow {
|
||||
double lower_weight {-1}; // -1 indicates invalid state
|
||||
double upper_weight {1};
|
||||
double max_lb_ratio {1};
|
||||
double survival_weight {0.5};
|
||||
double weight_cutoff {DEFAULT_WEIGHT_CUTOFF};
|
||||
int max_split {1};
|
||||
|
||||
//! Whether the weight window is in a valid state
|
||||
bool is_valid() const { return lower_weight >= 0.0; }
|
||||
|
||||
//! Adjust the weight window by a constant factor
|
||||
void scale(double factor)
|
||||
{
|
||||
lower_weight *= factor;
|
||||
upper_weight *= factor;
|
||||
}
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -96,6 +104,7 @@ private:
|
|||
vector<double> lower_ww_; //!< Lower weight window bounds
|
||||
vector<double> upper_ww_; //!< Upper weight window bounds
|
||||
double survival_ratio_ {3.0}; //!< Survival weight ratio
|
||||
double max_lb_ratio_ {1.0}; //!< Maximum lower bound to particle weight ratio
|
||||
double weight_cutoff_ {DEFAULT_WEIGHT_CUTOFF}; //!< Weight cutoff
|
||||
int max_split_ {10}; //!< Maximum value for particle splitting
|
||||
int32_t mesh_idx_; //!< index in meshes vector
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue