Class DiscreteOrdinatesSolver

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class DiscreteOrdinatesSolver : public opensn::Solver

Base class for solvers that drive a DiscreteOrdinatesProblem.

Solution and time state remain in the shared problem. A solver restores its temporary settings before returning. Validation is collective.

Subclassed by opensn::NonLinearKEigenSolver, opensn::PowerIterationKEigenSolver, opensn::SteadyStateSourceSolver, opensn::TransientSolver

Public Static Functions

static InputParameters GetInputParameters()

Protected Functions

explicit DiscreteOrdinatesSolver(const InputParameters &params)
virtual void ValidateState() const final

Requires a built problem, validates its configuration, then checks solver requirements.

virtual void CheckRequirements(std::vector<std::string> &errors) const = 0

Appends one message for each solver-specific requirement the problem violates.

Problem-wide rules belong in DiscreteOrdinatesProblem::CheckConfigurationErrors. Requirements based on rank-local state reduce it before appending an error.

void RequireSteadyState(std::vector<std::string> &errors) const

Appends the error for a solver that requires steady-state mode.

void RequireNoExternalSources(std::vector<std::string> &errors) const

Appends an error for each external source (volumetric, point, or incoming-flux boundary).

void RequireFissionableMaterial(std::vector<std::string> &errors) const

Appends an error if no cell has fissionable cross sections. Collective.

void CheckKEigenRequirements(std::vector<std::string> &errors) const

Appends the requirements common to k-eigenvalue solvers. Collective.

Protected Attributes

std::shared_ptr<DiscreteOrdinatesProblem> do_problem_