Chi-Tech
lbs::SourceFunction Class Reference

#include <source_function.h>

Inheritance diagram for lbs::SourceFunction:
lbs::AdjointSourceFunction lbs::TransientSourceFunction

Public Types

typedef std::vector< chi_physics::MultiGroupXS::PrecursorPrecursorList
 

Public Member Functions

 SourceFunction (const LBSSolver &lbs_solver)
 
virtual ~SourceFunction ()=default
 
virtual void operator() (LBSGroupset &groupset, std::vector< double > &destination_q, const std::vector< double > &phi, SourceFlags source_flags)
 
virtual double AddSourceMoments () const
 
virtual double AddDelayedFission (const PrecursorList &precursors, const std::vector< double > &nu_delayed_sigma_f, const double *phi) const
 
virtual void AddAdditionalSources (LBSGroupset &groupset, std::vector< double > &destination_q, const std::vector< double > &phi, SourceFlags source_flags)
 
void AddPointSources (LBSGroupset &groupset, std::vector< double > &destination_q, const std::vector< double > &phi, SourceFlags source_flags)
 

Protected Attributes

const LBSSolverlbs_solver_
 
bool apply_fixed_src_ = false
 
bool apply_wgs_scatter_src_ = false
 
bool apply_ags_scatter_src_ = false
 
bool apply_wgs_fission_src_ = false
 
bool apply_ags_fission_src_ = false
 
bool suppress_wg_scatter_src_ = false
 
size_t gs_i_ = 0
 
size_t gs_f_ = 0
 
size_t first_grp_ = 0
 
size_t last_grp_ = 0
 
double cell_volume_ = 0.0
 
size_t g_ = 0
 
const double * fixed_src_moments_ = nullptr
 
std::vector< double > default_zero_src_
 

Detailed Description

Implements a customizable source function using virtual methods. This base class will function well for steady simulations and kEigenvalue simulations. It needs some customization for adjoint and transient.

Definition at line 20 of file source_function.h.

Member Typedef Documentation

◆ PrecursorList

Constructor & Destructor Documentation

◆ SourceFunction()

lbs::SourceFunction::SourceFunction ( const LBSSolver lbs_solver)
explicit

Constructor.

Definition at line 14 of file source_function.cc.

◆ ~SourceFunction()

virtual lbs::SourceFunction::~SourceFunction ( )
virtualdefault

Member Function Documentation

◆ AddAdditionalSources()

virtual void lbs::SourceFunction::AddAdditionalSources ( LBSGroupset groupset,
std::vector< double > &  destination_q,
const std::vector< double > &  phi,
SourceFlags  source_flags 
)
inlinevirtual

Reimplemented in lbs::AdjointSourceFunction.

Definition at line 60 of file source_function.h.

◆ AddDelayedFission()

double lbs::SourceFunction::AddDelayedFission ( const PrecursorList precursors,
const std::vector< double > &  nu_delayed_sigma_f,
const double *  phi 
) const
virtual

Adds delayed particle precursor sources.

Reimplemented in lbs::TransientSourceFunction.

Definition at line 179 of file source_function.cc.

◆ AddPointSources()

void lbs::SourceFunction::AddPointSources ( LBSGroupset groupset,
std::vector< double > &  destination_q,
const std::vector< double > &  phi,
SourceFlags  source_flags 
)

Adds point sources to the source moments.

Definition at line 206 of file source_function.cc.

◆ AddSourceMoments()

double lbs::SourceFunction::AddSourceMoments ( ) const
virtual

Reimplemented in lbs::AdjointSourceFunction.

Definition at line 171 of file source_function.cc.

◆ operator()()

void lbs::SourceFunction::operator() ( LBSGroupset groupset,
std::vector< double > &  destination_q,
const std::vector< double > &  phi_local,
SourceFlags  source_flags 
)
virtual

Sets the source moments for the groups in the current group set.

Parameters
groupsetThe groupset the under consideration.
destination_qA vector to contribute the source to.
phi_localThe primary STL vector to operate off.
source_flagsFlags for adding specific terms into the destination vector. Available flags are for applying the material source, across/within-group scattering, and across/within-groups fission.

Definition at line 31 of file source_function.cc.

Field Documentation

◆ apply_ags_fission_src_

bool lbs::SourceFunction::apply_ags_fission_src_ = false
protected

Definition at line 29 of file source_function.h.

◆ apply_ags_scatter_src_

bool lbs::SourceFunction::apply_ags_scatter_src_ = false
protected

Definition at line 27 of file source_function.h.

◆ apply_fixed_src_

bool lbs::SourceFunction::apply_fixed_src_ = false
protected

Definition at line 25 of file source_function.h.

◆ apply_wgs_fission_src_

bool lbs::SourceFunction::apply_wgs_fission_src_ = false
protected

Definition at line 28 of file source_function.h.

◆ apply_wgs_scatter_src_

bool lbs::SourceFunction::apply_wgs_scatter_src_ = false
protected

Definition at line 26 of file source_function.h.

◆ cell_volume_

double lbs::SourceFunction::cell_volume_ = 0.0
protected

Definition at line 37 of file source_function.h.

◆ default_zero_src_

std::vector<double> lbs::SourceFunction::default_zero_src_
protected

Definition at line 40 of file source_function.h.

◆ first_grp_

size_t lbs::SourceFunction::first_grp_ = 0
protected

Definition at line 34 of file source_function.h.

◆ fixed_src_moments_

const double* lbs::SourceFunction::fixed_src_moments_ = nullptr
protected

Definition at line 39 of file source_function.h.

◆ g_

size_t lbs::SourceFunction::g_ = 0
protected

Definition at line 38 of file source_function.h.

◆ gs_f_

size_t lbs::SourceFunction::gs_f_ = 0
protected

Definition at line 33 of file source_function.h.

◆ gs_i_

size_t lbs::SourceFunction::gs_i_ = 0
protected

Definition at line 32 of file source_function.h.

◆ last_grp_

size_t lbs::SourceFunction::last_grp_ = 0
protected

Definition at line 35 of file source_function.h.

◆ lbs_solver_

const LBSSolver& lbs::SourceFunction::lbs_solver_
protected

Definition at line 23 of file source_function.h.

◆ suppress_wg_scatter_src_

bool lbs::SourceFunction::suppress_wg_scatter_src_ = false
protected

Definition at line 30 of file source_function.h.


The documentation for this class was generated from the following files: