Class DiscreteOrdinatesKEigenAcceleration
Nested Relationships
Nested Types
Inheritance Relationships
Derived Types
public opensn::SCDSAAcceleration
(Class SCDSAAcceleration)public opensn::SMMAcceleration
(Class SMMAcceleration)
Class Documentation
-
class DiscreteOrdinatesKEigenAcceleration
Base class for LBS acceleration methods.
Subclassed by opensn::SCDSAAcceleration, opensn::SMMAcceleration
Public Functions
-
explicit DiscreteOrdinatesKEigenAcceleration(const InputParameters ¶ms)
-
virtual ~DiscreteOrdinatesKEigenAcceleration() = default
-
void Initialize(PowerIterationKEigenSolver &solver)
Public initialize method, to be called by the power iteration solver using this acceleration scheme.
Calls the internal Initialize() method.
-
virtual void Initialize() = 0
Initialization method for derived classes. Must be overridden.
Called by the other Initialize() method that takes a solver.
-
virtual void PreExecute() = 0
Pre-execute method for derived classes. Must be overridden.
Called by the owning solver at the beginning of its Execute().
-
virtual void PrePowerIteration() = 0
Pre-power iteration method for derived classes. Must be overridden.
Called by the owning solver at the beginning of the power iteration loop after the fission source is set and the local moments are scaled.
-
virtual double PostPowerIteration() = 0
Post-power iteration method for derived classes. Must be overridden.
Called by the owning solver at the end of the power iteration loop after transport is solved.
Returns the k-eigenvalue from the acceleration solve.
-
inline const std::string &GetName() const
Public Static Functions
-
static InputParameters GetInputParameters()
Protected Functions
-
void NodallyAveragedPWLDVector(const std::vector<double> &input, std::vector<double> &output) const
Takes an input vector that is the local version of a PWLD discrete space and then makes it continuous by applying nodal averages.
-
void CopyOnlyPhi0(const std::vector<double> &phi_in, std::vector<double> &phi_local)
Copies only the scalar moments from an lbs primary flux moments vector.
-
void ProjectBackPhi0(const std::vector<double> &input, std::vector<double> &output) const
Copies back only the scalar moments to a lbs primary flux vector.
Protected Attributes
-
DiscreteOrdinatesProblem &do_problem_
The associated DiscreteOrdinatesProblem problem.
-
const double l_abs_tol_
Absolute residual tolerance from parameters.
-
const int max_iters_
Maximum allowable iterations from parameters.
-
const bool verbose_
Verbosity flag from parameters.
-
const std::string petsc_options_
PETSc options from parameters.
-
const int pi_max_its_
Maximum inner power iteration count, from parameters.
-
const double pi_k_tol_
k-eigenvalue tolerance for inner power iterations, from parameters
-
std::vector<LBSGroupset> &groupsets_
Groupsets from the LBSProblem.
-
LBSGroupset &front_gs_
Front groupset from the LBSProblem.
-
std::vector<double> &q_moments_local_
Source moments vector from the LBSProblem.
-
std::vector<double> &phi_old_local_
Last updated flux vector from the LBSProblem.
-
std::vector<double> &phi_new_local_
Newest updated flux vector from the LBSProblem.
-
PowerIterationKEigenSolver *solver_
Associated PI solver, filled during Initialize()
-
std::shared_ptr<SpatialDiscretization> pwlc_ptr_ = nullptr
Underlying continuous discretization, if needed.
-
std::shared_ptr<DiffusionSolver> diffusion_solver_ = nullptr
Underlying diffusion solver.
Protected Static Functions
-
static std::vector<int64_t> MakePWLDGhostIndices(const SpatialDiscretization &pwld, const UnknownManager &uk_man)
-
static GhostInfo MakePWLDGhostInfo(const SpatialDiscretization &pwld, const UnknownManager &uk_man)
-
struct GhostInfo
Public Members
-
std::shared_ptr<VectorGhostCommunicator> vector_ghost_communicator = nullptr
-
std::map<int64_t, int64_t> ghost_global_id_2_local_map
-
std::shared_ptr<VectorGhostCommunicator> vector_ghost_communicator = nullptr
-
explicit DiscreteOrdinatesKEigenAcceleration(const InputParameters ¶ms)