38 virtual bool solve()
override;
52 virtual std::pair<unsigned int, Real>
correctVelocity(
const bool subtract_updated_pressure,
53 const bool recompute_face_mass_flux,
66 std::pair<unsigned int, Real>
69 const Real relaxation_factor,
72 const Real field_relaxation = 1.0,
73 const Real min_value_limiter = std::numeric_limits<Real>::min());
const std::vector< LinearSystem * > systemsToSolve() const
Return pointers to the systems which are solved for within this object.
const std::vector< Real > _active_scalar_equation_relaxation
The user-defined relaxation parameter(s) for the active scalar equation(s)
static InputParameters validParams()
User object responsible for determining the face fluxes using the Rhie-Chow interpolation in a segreg...
This class provides an interface for managing conjugate heat transfer (CHT) between fluid and solid d...
Common base class for segregated solvers for the Navier-Stokes equations with linear FV assembly rout...
std::vector< Real > ns_abs_tols
Absolute tolerances matching ns_residuals.
SIMPLESolverConfiguration _active_scalar_linear_control
Options for the linear solver of the active scalar equation(s)
std::pair< unsigned int, Real > solveSolidEnergy()
Solve an equation which contains the solid energy conservation.
std::vector< LinearSystem * > _passive_scalar_systems
Pointer(s) to the system(s) corresponding to the passive scalar equation(s)
std::size_t solid_energy_index
Index of the solid energy equation in ns_residuals.
const bool _should_solve_passive_scalars
LinearSystem * _solid_energy_system
Pointer to the linear system corresponding to the solid energy equation.
std::pair< unsigned int, Real > solveAdvectedSystem(const unsigned int system_num, LinearSystem &system, const Real relaxation_factor, libMesh::SolverConfiguration &solver_config, const Real abs_tol, const Real field_relaxation=1.0, const Real min_value_limiter=std::numeric_limits< Real >::min())
Solve an equation which contains an advection term that depends on the solution of the segregated Nav...
Aggregated storage for residuals, tolerances, and indices used in convergence checks.
const bool _has_active_scalar_systems
Boolean for easy check if a active scalar systems shall be solved or not.
const Real _active_scalar_l_abs_tol
Absolute linear tolerance for the active scalar equation(s).
RhieChowMassFlux * _rc_uo
Pointer to the segregated RhieChow interpolation object.
const bool _should_solve_pm_radiation
virtual std::pair< unsigned int, Real > correctVelocity(const bool subtract_updated_pressure, const bool recompute_face_mass_flux, const SolverParams &solver_params)
Computes new velocity field based on computed pressure gradients.
std::size_t energy_index
Index of the energy equation in ns_residuals.
const unsigned int _solid_energy_sys_number
The number of the system corresponding to the solid energy equation.
std::vector< LinearSystem * > _active_scalar_systems
Pointer(s) to the system(s) corresponding to the active scalar equation(s)
std::vector< std::size_t > turbulence_indices
Indices of turbulence surrogate equations in ns_residuals.
LinearSystem & _pressure_system
Reference to the linear system corresponding to the pressure equation.
std::vector< unsigned int > _momentum_system_numbers
The number(s) of the system(s) corresponding to the momentum equation(s)
LinearSystem * _energy_system
Pointer to the linear system corresponding to the fluid energy equation.
const unsigned int _energy_sys_number
The number of the system corresponding to the energy equation.
const bool _should_solve_energy
ResidualStorage setupResidualStorage() const
Build residual/tolerance vectors and associated indices for all enabled systems.
virtual bool solve() override
Performs the momentum pressure coupling.
std::vector< std::size_t > momentum_indices
Indices of momentum equations in ns_residuals.
virtual void initialSetup() override
virtual void linkRhieChowUserObject() override
Fetch the Rhie Chow user object that is reponsible for determining face velocities and mass flux...
std::vector< LinearSystem * > _turbulence_systems
Pointer(s) to the system(s) corresponding to the turbulence equation(s)
LinearAssemblySegregatedSolve(Executioner &ex)
Solver configuration class used with the linear solvers in a SIMPLE solver.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::vector< SolverSystemName > & _active_scalar_system_names
The names of the active scalar systems.
std::vector< LinearSystem * > _systems_to_solve
Shortcut to every linear system that we solve for here.
virtual std::vector< std::pair< unsigned int, Real > > solveMomentumPredictor() override
Solve a momentum predictor step with a fixed pressure field.
virtual std::pair< unsigned int, Real > solvePressureCorrector() override
Solve a pressure corrector step.
Moose::PetscSupport::PetscOptions _active_scalar_petsc_options
Options which hold the petsc settings for the active scalar equation(s)
Solve class serving as a base class for the two SIMPLE solvers that operate with different assembly a...
const std::vector< Real > _active_scalar_absolute_tolerance
The user-defined absolute tolerance for determining the convergence in active scalars.
std::size_t pressure_index
Index of the pressure equation in ns_residuals.
bool converged
This will be an initial indicator if we have something to solve.
std::vector< unsigned int > _active_scalar_system_numbers
std::vector< LinearSystem * > _momentum_systems
Pointer(s) to the system(s) corresponding to the momentum equation(s)
std::vector< std::size_t > active_scalar_indices
Indices of active scalar equations in ns_residuals.
std::vector< std::size_t > pm_radiation_indices
Indices of participating media radiation equations in ns_residuals.
const bool _should_solve_active_scalars
std::vector< std::pair< unsigned int, Real > > ns_residuals
(linear iterations, normalized residual) entries in the order used by NS::FV::converged() ...
const bool _should_solve_turbulence
const bool _should_solve_momentum
Flags controlling which systems are actively solved (can be used with restart to freeze flow) ...
std::vector< LinearSystem * > _pm_radiation_systems
Pointer(s) to the system(s) corresponding to the participting media radiation equation(s) ...
constexpr std::size_t invalid_size_t
NS::FV::CHTHandler _cht
********************** Conjugate heat transfer variables ************** //
const bool _should_solve_solid_energy
const bool _should_solve_pressure
const unsigned int _pressure_sys_number
The number of the system corresponding to the pressure equation.