pyopensn.solver.PowerIterationKEigenSolver

class pyopensn.solver.PowerIterationKEigenSolver

Power iteration k-eigenvalue solver.

Wrapper of opensn::PowerIterationKEigenSolver.

Advance(self: pyopensn.solver.Solver) None

Advance time values function.

ComputeBalanceTable(self: pyopensn.solver.PowerIterationKEigenSolver) dict

Compute and return the global balance table using the solver’s normalization. This is a collective operation and must be called on all ranks.

Returns:

Dictionary with the following entries:

  • absorption_rate: Global absorption rate, approximately integral sigma_a * phi dV summed over groups and the full domain.

  • production_rate: Global volumetric production/source rate used by the solver, approximately integral Q dV summed over groups and the full domain.

  • inflow_rate: Global incoming boundary contribution integrated over incoming angular flux on boundaries.

  • outflow_rate: Global outgoing boundary contribution accumulated from face outflow tallies.

  • balance: Rate balance, production_rate + inflow_rate - absorption_rate - outflow_rate.

Return type:

dict

Notes

For k-eigenvalue balance reporting, this solver scales the production term by 1 / k_eff before forming both production_rate and balance.

Execute(self: pyopensn.solver.Solver) None

Execute the solver.

GetEigenvalue(self: pyopensn.solver.PowerIterationKEigenSolver) float

Return the current k-eigenvalue.

Initialize(self: pyopensn.solver.Solver) None

Initialize the solver.

__init__(self: pyopensn.solver.PowerIterationKEigenSolver, **kwargs) None

Construct a power iteration k-eigen solver.

Parameters:
  • problem (pyopensn.solver.LBSProblem) – Existing DiscreteOrdinatesProblem instance.

  • acceleration (pyopensn.solver.DiscreteOrdinatesKEigenAcceleration) – Optional DiscreteOrdinatesKEigenAcceleration instance for acceleration.

  • max_iters (int, default = 1000) – Maximum power iterations allowed.

  • k_tol (float, default = 1.0e-10) – Tolerance on the k-eigenvalue.

  • reset_solution (bool, default=True) – If true, initialize flux moments to 1.0.

  • reset_phi0 (bool, default=True) – If true, reinitializes scalar fluxes to 1.0.