https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
SIMPLESolveBase Class Referenceabstract

Solve class serving as a base class for the two SIMPLE solvers that operate with different assembly algorithms. More...

#include <SIMPLESolveBase.h>

Inheritance diagram for SIMPLESolveBase:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 SIMPLESolveBase (Executioner &ex)
 
virtual void setInnerSolve (SolveObject &) override
 
virtual void linkRhieChowUserObject ()=0
 Fetch the Rhie Chow user object that is reponsible for determining face velocities and mass flux. More...
 
void setupPressurePin ()
 Setup pressure pin if there is need for one. More...
 
virtual void checkIntegrity ()
 Check if the user defined time kernels. More...
 
virtual void initialSetup ()
 
virtual bool solve ()=0
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
PerfGraphperfGraph ()
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Public Attributes

const ConsoleStream _console
 

Protected Member Functions

void checkDependentParameterError (const std::string &main_parameter, const std::vector< std::string > &dependent_parameters, const bool should_be_defined)
 
virtual std::vector< std::pair< unsigned int, Real > > solveMomentumPredictor ()=0
 Solve a momentum predictor step with a fixed pressure field. More...
 
virtual std::pair< unsigned int, RealsolvePressureCorrector ()=0
 Solve a pressure corrector step. More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &) const
 
virtual void addUserObjectDependencyHelper (const UserObject &) const
 

Protected Attributes

const std::vector< SolverSystemName > & _momentum_system_names
 The names of the momentum systems. More...
 
SIMPLESolverConfiguration _momentum_linear_control
 Options for the linear solver of the momentum equation. More...
 
const Real _momentum_l_abs_tol
 Absolute linear tolerance for the momentum equation(s). More...
 
Moose::PetscSupport::PetscOptions _momentum_petsc_options
 Options which hold the petsc settings for the momentum equation. More...
 
const Real _momentum_equation_relaxation
 The user-defined relaxation parameter for the momentum equation. More...
 
const SolverSystemName & _pressure_system_name
 The name of the pressure system. More...
 
SIMPLESolverConfiguration _pressure_linear_control
 Options for the linear solver of the pressure equation. More...
 
const Real _pressure_l_abs_tol
 Absolute linear tolerance for the pressure equation. More...
 
Moose::PetscSupport::PetscOptions _pressure_petsc_options
 Options which hold the petsc settings for the pressure equation. More...
 
const Real _pressure_variable_relaxation
 The user-defined relaxation parameter for the pressure variable. More...
 
const bool _pin_pressure
 If the pressure needs to be pinned. More...
 
const Real _pressure_pin_value
 The value we want to enforce for pressure. More...
 
dof_id_type _pressure_pin_dof
 The dof ID where the pressure needs to be pinned. More...
 
const bool _has_energy_system
 Boolean for easy check if a fluid energy system shall be solved or not. More...
 
const Real _energy_equation_relaxation
 The user-defined relaxation parameter for the energy equation. More...
 
Moose::PetscSupport::PetscOptions _energy_petsc_options
 Options which hold the petsc settings for the fluid energy equation. More...
 
SIMPLESolverConfiguration _energy_linear_control
 Options for the linear solver of the energy equation. More...
 
const Real _energy_l_abs_tol
 Absolute linear tolerance for the energy equations. More...
 
const bool _has_solid_energy_system
 Boolean for easy check if a solid energy system shall be solved or not. More...
 
Moose::PetscSupport::PetscOptions _solid_energy_petsc_options
 Options which hold the petsc settings for the fluid energy equation. More...
 
SIMPLESolverConfiguration _solid_energy_linear_control
 Options for the linear solver of the energy equation. More...
 
const Real _solid_energy_l_abs_tol
 Absolute linear tolerance for the energy equations. More...
 
const std::vector< SolverSystemName > & _passive_scalar_system_names
 The names of the passive scalar systems. More...
 
const bool _has_passive_scalar_systems
 Boolean for easy check if a passive scalar systems shall be solved or not. More...
 
std::vector< unsigned int_passive_scalar_system_numbers
 
const std::vector< Real_passive_scalar_equation_relaxation
 The user-defined relaxation parameter(s) for the passive scalar equation(s) More...
 
Moose::PetscSupport::PetscOptions _passive_scalar_petsc_options
 Options which hold the petsc settings for the passive scalar equation(s) More...
 
SIMPLESolverConfiguration _passive_scalar_linear_control
 Options for the linear solver of the passive scalar equation(s) More...
 
const Real _passive_scalar_l_abs_tol
 Absolute linear tolerance for the passive scalar equation(s). More...
 
const Real _momentum_absolute_tolerance
 The user-defined absolute tolerance for determining the convergence in momentum. More...
 
const Real _pressure_absolute_tolerance
 The user-defined absolute tolerance for determining the convergence in pressure. More...
 
const Real _energy_absolute_tolerance
 The user-defined absolute tolerance for determining the convergence in energy. More...
 
const Real _solid_energy_absolute_tolerance
 The user-defined absolute tolerance for determining the convergence in solid energy. More...
 
const std::vector< Real_passive_scalar_absolute_tolerance
 The user-defined absolute tolerance for determining the convergence in passive scalars. More...
 
const unsigned int _num_iterations
 The maximum number of momentum-pressure iterations. More...
 
const bool _continue_on_max_its
 If solve should continue if maximum number of iterations is hit. More...
 
const bool _print_fields
 Debug parameter which allows printing the coupling and solution vectors/matrices. More...
 
Executioner_executioner
 
FEProblemBase_problem
 
DisplacedProblem_displaced_problem
 
MooseMesh_mesh
 
MooseMesh_displaced_mesh
 
SystemBase_solver_sys
 
AuxiliarySystem_aux
 
SolveObject_inner_solve
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
const Parallel::Communicator & _communicator
 

Detailed Description

Solve class serving as a base class for the two SIMPLE solvers that operate with different assembly algorithms.

Includes base routines and variables for the coupling of momentum and pressure.

Definition at line 41 of file SIMPLESolveBase.h.

Constructor & Destructor Documentation

◆ SIMPLESolveBase()

SIMPLESolveBase::SIMPLESolveBase ( Executioner ex)

Definition at line 303 of file SIMPLESolveBase.C.

304  : SolveObject(ex),
305  UserObjectInterface(this),
306  _momentum_system_names(getParam<std::vector<SolverSystemName>>("momentum_systems")),
307  _momentum_l_abs_tol(getParam<Real>("momentum_l_abs_tol")),
308  _momentum_equation_relaxation(getParam<Real>("momentum_equation_relaxation")),
309  _pressure_system_name(getParam<SolverSystemName>("pressure_system")),
310  _pressure_l_abs_tol(getParam<Real>("pressure_l_abs_tol")),
311  _pressure_variable_relaxation(getParam<Real>("pressure_variable_relaxation")),
312  _pin_pressure(getParam<bool>("pin_pressure")),
313  _pressure_pin_value(getParam<Real>("pressure_pin_value")),
315  _has_energy_system(isParamValid("energy_system")),
316  _energy_equation_relaxation(getParam<Real>("energy_equation_relaxation")),
317  _energy_l_abs_tol(getParam<Real>("energy_l_abs_tol")),
318  _has_solid_energy_system(_has_energy_system && isParamValid("solid_energy_system")),
319  _solid_energy_l_abs_tol(getParam<Real>("solid_energy_l_abs_tol")),
320  _passive_scalar_system_names(getParam<std::vector<SolverSystemName>>("passive_scalar_systems")),
323  getParam<std::vector<Real>>("passive_scalar_equation_relaxation")),
324  _passive_scalar_l_abs_tol(getParam<Real>("passive_scalar_l_abs_tol")),
325  _momentum_absolute_tolerance(getParam<Real>("momentum_absolute_tolerance")),
326  _pressure_absolute_tolerance(getParam<Real>("pressure_absolute_tolerance")),
327  _energy_absolute_tolerance(getParam<Real>("energy_absolute_tolerance")),
328  _solid_energy_absolute_tolerance(getParam<Real>("solid_energy_absolute_tolerance")),
330  getParam<std::vector<Real>>("passive_scalar_absolute_tolerance")),
331  _num_iterations(getParam<unsigned int>("num_iterations")),
332  _continue_on_max_its(getParam<bool>("continue_on_max_its")),
333  _print_fields(getParam<bool>("print_fields"))
334 {
335  if (_momentum_system_names.size() != _problem.mesh().dimension())
336  paramError("momentum_systems",
337  "The number of momentum components should be equal to the number of "
338  "spatial dimensions on the mesh.");
339 
340  const auto & momentum_petsc_options = getParam<MultiMooseEnum>("momentum_petsc_options");
341  const auto & momentum_petsc_pair_options = getParam<MooseEnumItem, std::string>(
342  "momentum_petsc_options_iname", "momentum_petsc_options_value");
344  momentum_petsc_options, "-", *this, _momentum_petsc_options);
345  Moose::PetscSupport::addPetscPairsToPetscOptions(momentum_petsc_pair_options,
346  _problem.mesh().dimension(),
347  "-",
348  *this,
350 
351  _momentum_linear_control.real_valued_data["rel_tol"] = getParam<Real>("momentum_l_tol");
352  _momentum_linear_control.real_valued_data["abs_tol"] = getParam<Real>("momentum_l_abs_tol");
354  getParam<unsigned int>("momentum_l_max_its");
355 
356  const auto & pressure_petsc_options = getParam<MultiMooseEnum>("pressure_petsc_options");
357  const auto & pressure_petsc_pair_options = getParam<MooseEnumItem, std::string>(
358  "pressure_petsc_options_iname", "pressure_petsc_options_value");
360  pressure_petsc_options, "-", *this, _pressure_petsc_options);
361  Moose::PetscSupport::addPetscPairsToPetscOptions(pressure_petsc_pair_options,
362  _problem.mesh().dimension(),
363  "-",
364  *this,
366 
367  _pressure_linear_control.real_valued_data["rel_tol"] = getParam<Real>("pressure_l_tol");
368  _pressure_linear_control.real_valued_data["abs_tol"] = getParam<Real>("pressure_l_abs_tol");
370  getParam<unsigned int>("pressure_l_max_its");
371 
372  if (_has_energy_system)
373  {
374  const auto & energy_petsc_options = getParam<MultiMooseEnum>("energy_petsc_options");
375  const auto & energy_petsc_pair_options = getParam<MooseEnumItem, std::string>(
376  "energy_petsc_options_iname", "energy_petsc_options_value");
378  energy_petsc_options, "-", *this, _energy_petsc_options);
380  energy_petsc_pair_options, _problem.mesh().dimension(), "-", *this, _energy_petsc_options);
381 
382  _energy_linear_control.real_valued_data["rel_tol"] = getParam<Real>("energy_l_tol");
383  _energy_linear_control.real_valued_data["abs_tol"] = getParam<Real>("energy_l_abs_tol");
384  _energy_linear_control.int_valued_data["max_its"] = getParam<unsigned int>("energy_l_max_its");
385  }
386  else
387  checkDependentParameterError("energy_system",
388  {"energy_petsc_options",
389  "energy_petsc_options_iname",
390  "energy_petsc_options_value",
391  "energy_l_tol",
392  "energy_l_abs_tol",
393  "energy_l_max_its",
394  "energy_absolute_tolerance",
395  "energy_equation_relaxation"},
396  false);
397 
399  {
400  const auto & solid_energy_petsc_options =
401  getParam<MultiMooseEnum>("solid_energy_petsc_options");
402  const auto & solid_energy_petsc_pair_options = getParam<MooseEnumItem, std::string>(
403  "solid_energy_petsc_options_iname", "solid_energy_petsc_options_value");
405  solid_energy_petsc_options, "-", *this, _solid_energy_petsc_options);
406  Moose::PetscSupport::addPetscPairsToPetscOptions(solid_energy_petsc_pair_options,
407  _problem.mesh().dimension(),
408  "-",
409  *this,
411 
412  _solid_energy_linear_control.real_valued_data["rel_tol"] = getParam<Real>("solid_energy_l_tol");
414  getParam<Real>("solid_energy_l_abs_tol");
416  getParam<unsigned int>("solid_energy_l_max_its");
417  }
418  else
419  checkDependentParameterError("solid_energy_system",
420  {"solid_energy_petsc_options",
421  "solid_energy_petsc_options_iname",
422  "solid_energy_petsc_options_value",
423  "solid_energy_l_tol",
424  "solid_energy_l_abs_tol",
425  "solid_energy_l_max_its",
426  "solid_energy_absolute_tolerance",
427  "solid_energy_equation_relaxation"},
428  false);
429 
430  // We check for input errors with regards to the passive scalar equations. At the same time, we
431  // set up the corresponding system numbers
433  {
435  paramError("passive_scalar_equation_relaxation",
436  "The number of equation relaxation parameters does not match the number of "
437  "passive scalar equations!");
439  paramError("passive_scalar_absolute_tolerance",
440  "The number of absolute tolerances does not match the number of "
441  "passive scalar equations!");
442  }
444  {
445  const auto & passive_scalar_petsc_options =
446  getParam<MultiMooseEnum>("passive_scalar_petsc_options");
447  const auto & passive_scalar_petsc_pair_options = getParam<MooseEnumItem, std::string>(
448  "passive_scalar_petsc_options_iname", "passive_scalar_petsc_options_value");
450  passive_scalar_petsc_options, "-", *this, _passive_scalar_petsc_options);
451  Moose::PetscSupport::addPetscPairsToPetscOptions(passive_scalar_petsc_pair_options,
452  _problem.mesh().dimension(),
453  "-",
454  *this,
456 
458  getParam<Real>("passive_scalar_l_tol");
460  getParam<Real>("passive_scalar_l_abs_tol");
462  getParam<unsigned int>("passive_scalar_l_max_its");
463  }
464  else
465  checkDependentParameterError("passive_scalar_systems",
466  {"passive_scalar_petsc_options",
467  "passive_scalar_petsc_options_iname",
468  "passive_scalar_petsc_options_value",
469  "passive_scalar_l_tol",
470  "passive_scalar_l_abs_tol",
471  "passive_scalar_l_max_its",
472  "passive_scalar_equation_relaxation",
473  "passive_scalar_absolute_tolerance"},
474  false);
475 }
FEProblemBase & _problem
SIMPLESolverConfiguration _momentum_linear_control
Options for the linear solver of the momentum equation.
const Real _energy_absolute_tolerance
The user-defined absolute tolerance for determining the convergence in energy.
const unsigned int _num_iterations
The maximum number of momentum-pressure iterations.
SIMPLESolverConfiguration _energy_linear_control
Options for the linear solver of the energy equation.
const unsigned int invalid_uint
const bool _print_fields
Debug parameter which allows printing the coupling and solution vectors/matrices. ...
const Real _solid_energy_l_abs_tol
Absolute linear tolerance for the energy equations.
const bool _has_energy_system
Boolean for easy check if a fluid energy system shall be solved or not.
const SolverSystemName & _pressure_system_name
The name of the pressure system.
const Real _passive_scalar_l_abs_tol
Absolute linear tolerance for the passive scalar equation(s).
Moose::PetscSupport::PetscOptions _solid_energy_petsc_options
Options which hold the petsc settings for the fluid energy equation.
const Real _momentum_equation_relaxation
The user-defined relaxation parameter for the momentum equation.
void checkDependentParameterError(const std::string &main_parameter, const std::vector< std::string > &dependent_parameters, const bool should_be_defined)
const Real _momentum_l_abs_tol
Absolute linear tolerance for the momentum equation(s).
std::map< std::string, Real > real_valued_data
const Real _pressure_absolute_tolerance
The user-defined absolute tolerance for determining the convergence in pressure.
bool isParamValid(const std::string &name) const
const Real _pressure_variable_relaxation
The user-defined relaxation parameter for the pressure variable.
const Real _momentum_absolute_tolerance
The user-defined absolute tolerance for determining the convergence in momentum.
const std::vector< SolverSystemName > & _passive_scalar_system_names
The names of the passive scalar systems.
SIMPLESolverConfiguration _passive_scalar_linear_control
Options for the linear solver of the passive scalar equation(s)
Moose::PetscSupport::PetscOptions _energy_petsc_options
Options which hold the petsc settings for the fluid energy equation.
SIMPLESolverConfiguration _pressure_linear_control
Options for the linear solver of the pressure equation.
Moose::PetscSupport::PetscOptions _passive_scalar_petsc_options
Options which hold the petsc settings for the passive scalar equation(s)
virtual unsigned int dimension() const
std::map< std::string, int > int_valued_data
Moose::PetscSupport::PetscOptions _momentum_petsc_options
Options which hold the petsc settings for the momentum equation.
const Real _pressure_l_abs_tol
Absolute linear tolerance for the pressure equation.
const std::vector< Real > _passive_scalar_absolute_tolerance
The user-defined absolute tolerance for determining the convergence in passive scalars.
dof_id_type _pressure_pin_dof
The dof ID where the pressure needs to be pinned.
const T & getParam(const std::string &name) const
const bool _pin_pressure
If the pressure needs to be pinned.
void paramError(const std::string &param, Args... args) const
const Real _energy_l_abs_tol
Absolute linear tolerance for the energy equations.
SolveObject(Executioner &ex)
const std::vector< SolverSystemName > & _momentum_system_names
The names of the momentum systems.
const std::vector< Real > _passive_scalar_equation_relaxation
The user-defined relaxation parameter(s) for the passive scalar equation(s)
void addPetscPairsToPetscOptions(const std::vector< std::pair< MooseEnumItem, std::string >> &petsc_pair_options, const unsigned int mesh_dimension, const std::string &prefix, const ParallelParamObject &param_object, PetscOptions &petsc_options)
const Real _energy_equation_relaxation
The user-defined relaxation parameter for the energy equation.
const Real _pressure_pin_value
The value we want to enforce for pressure.
virtual MooseMesh & mesh() override
const bool _has_passive_scalar_systems
Boolean for easy check if a passive scalar systems shall be solved or not.
void addPetscFlagsToPetscOptions(const MultiMooseEnum &petsc_flags, const std::string &prefix, const ParallelParamObject &param_object, PetscOptions &petsc_options)
const Real _solid_energy_absolute_tolerance
The user-defined absolute tolerance for determining the convergence in solid energy.
SIMPLESolverConfiguration _solid_energy_linear_control
Options for the linear solver of the energy equation.
const bool _continue_on_max_its
If solve should continue if maximum number of iterations is hit.
Moose::PetscSupport::PetscOptions _pressure_petsc_options
Options which hold the petsc settings for the pressure equation.
const bool _has_solid_energy_system
Boolean for easy check if a solid energy system shall be solved or not.
UserObjectInterface(const MooseObject *moose_object)

Member Function Documentation

◆ checkDependentParameterError()

void SIMPLESolveBase::checkDependentParameterError ( const std::string &  main_parameter,
const std::vector< std::string > &  dependent_parameters,
const bool  should_be_defined 
)
protected

Definition at line 487 of file SIMPLESolveBase.C.

Referenced by SIMPLESolveBase(), and SIMPLESolveNonlinearAssembly::SIMPLESolveNonlinearAssembly().

490 {
491  for (const auto & param : dependent_parameters)
492  if (parameters().isParamSetByUser(param) == !should_be_defined)
493  paramError(param,
494  "This parameter should " + std::string(should_be_defined ? "" : "not") +
495  " be given by the user with the corresponding " + main_parameter +
496  " setting!");
497 }
void paramError(const std::string &param, Args... args) const
bool isParamSetByUser(const std::string &nm) const
const InputParameters & parameters() const

◆ checkIntegrity()

virtual void SIMPLESolveBase::checkIntegrity ( )
inlinevirtual

Check if the user defined time kernels.

Reimplemented in SIMPLESolve, and SIMPLESolveNonlinearAssembly.

Definition at line 61 of file SIMPLESolveBase.h.

61 {}

◆ linkRhieChowUserObject()

virtual void SIMPLESolveBase::linkRhieChowUserObject ( )
pure virtual

Fetch the Rhie Chow user object that is reponsible for determining face velocities and mass flux.

Implemented in LinearAssemblySegregatedSolve, and SIMPLESolveNonlinearAssembly.

◆ setInnerSolve()

virtual void SIMPLESolveBase::setInnerSolve ( SolveObject )
inlineoverridevirtual

Reimplemented from SolveObject.

Definition at line 48 of file SIMPLESolveBase.h.

49  {
50  mooseError("Cannot set inner solve object for solves that inherit from SIMPLESolveBase");
51  }
void mooseError(Args &&... args) const

◆ setupPressurePin()

void SIMPLESolveBase::setupPressurePin ( )

Setup pressure pin if there is need for one.

Definition at line 478 of file SIMPLESolveBase.C.

Referenced by SIMPLE::init(), PIMPLE::init(), and SIMPLENonlinearAssembly::init().

479 {
480  if (_pin_pressure)
482  _problem.mesh(),
483  getParam<Point>("pressure_pin_point"));
484 }
FEProblemBase & _problem
virtual const MooseVariableFieldBase & getVariable(const THREAD_ID tid, const std::string &var_name, Moose::VarKindType expected_var_type=Moose::VarKindType::VAR_ANY, Moose::VarFieldType expected_var_field_type=Moose::VarFieldType::VAR_FIELD_ANY) const override
dof_id_type _pressure_pin_dof
The dof ID where the pressure needs to be pinned.
const bool _pin_pressure
If the pressure needs to be pinned.
dof_id_type findPointDoFID(const MooseVariableFieldBase &variable, const MooseMesh &mesh, const Point &point)
Find the ID of the degree of freedom which corresponds to the variable and a given point on the mesh...
virtual MooseMesh & mesh() override

◆ solveMomentumPredictor()

virtual std::vector<std::pair<unsigned int, Real> > SIMPLESolveBase::solveMomentumPredictor ( )
protectedpure virtual

Solve a momentum predictor step with a fixed pressure field.

Returns
A vector of (number of linear iterations, normalized residual norm) pairs for the momentum equations. The length of the vector equals the dimensionality of the domain.

Implemented in LinearAssemblySegregatedSolve, and SIMPLESolveNonlinearAssembly.

◆ solvePressureCorrector()

virtual std::pair<unsigned int, Real> SIMPLESolveBase::solvePressureCorrector ( )
protectedpure virtual

Solve a pressure corrector step.

Returns
The number of linear iterations and the normalized residual norm of the pressure equation.

Implemented in LinearAssemblySegregatedSolve, and SIMPLESolveNonlinearAssembly.

◆ validParams()

InputParameters SIMPLESolveBase::validParams ( )
static

Definition at line 15 of file SIMPLESolveBase.C.

Referenced by SIMPLESolveNonlinearAssembly::validParams(), and LinearAssemblySegregatedSolve::validParams().

16 {
18  params.addRequiredParam<UserObjectName>("rhie_chow_user_object", "The rhie-chow user-object");
19 
20  /*
21  * The names of the different systems in the segregated solver
22  */
23  params.addRequiredParam<std::vector<SolverSystemName>>(
24  "momentum_systems", "The solver system(s) for the momentum equation(s).");
25  params.addRequiredParam<SolverSystemName>("pressure_system",
26  "The solver system for the pressure equation.");
27  params.addParam<SolverSystemName>("energy_system", "The solver system for the energy equation.");
28  params.addParam<SolverSystemName>("solid_energy_system",
29  "The solver system for the solid energy equation.");
30  params.addParam<std::vector<SolverSystemName>>(
31  "passive_scalar_systems", {}, "The solver system for each scalar advection equation.");
32 
33  /*
34  * Parameters to control the solution of the momentum equation
35  */
36 
37  params.addRangeCheckedParam<Real>(
38  "momentum_equation_relaxation",
39  1.0,
40  "0.0<momentum_equation_relaxation<=1.0",
41  "The relaxation which should be used for the momentum equation. (=1 for no relaxation, "
42  "diagonal dominance will still be enforced)");
43 
44  params.addParam<MultiMooseEnum>("momentum_petsc_options",
46  "Singleton PETSc options for the momentum equation");
47  params.addParam<MultiMooseEnum>("momentum_petsc_options_iname",
49  "Names of PETSc name/value pairs for the momentum equation");
50  params.addParam<std::vector<std::string>>(
51  "momentum_petsc_options_value",
52  "Values of PETSc name/value pairs (must correspond with \"petsc_options_iname\" for the "
53  "momentum equation");
54 
55  params.addRangeCheckedParam<Real>(
56  "momentum_absolute_tolerance",
57  1e-5,
58  "0.0<momentum_absolute_tolerance",
59  "The absolute tolerance on the normalized residual of the momentum equation.");
60 
61  params.addRangeCheckedParam<Real>("momentum_l_tol",
62  1e-5,
63  "0.0<=momentum_l_tol & momentum_l_tol<1.0",
64  "The relative tolerance on the normalized residual in the "
65  "linear solver of the momentum equation.");
66  params.addRangeCheckedParam<Real>("momentum_l_abs_tol",
67  1e-50,
68  "0.0<momentum_l_abs_tol",
69  "The absolute tolerance on the normalized residual in the "
70  "linear solver of the momentum equation.");
71  params.addParam<unsigned int>(
72  "momentum_l_max_its",
73  10000,
74  "The maximum allowed iterations in the linear solver of the momentum equation.");
75 
76  params.addParamNamesToGroup(
77  "momentum_equation_relaxation momentum_petsc_options momentum_petsc_options_iname "
78  "momentum_petsc_options_value momentum_petsc_options_value momentum_absolute_tolerance "
79  "momentum_l_tol momentum_l_abs_tol momentum_l_max_its momentum_systems",
80  "Momentum Equation");
81 
82  /*
83  * Parameters to control the solution of the pressure equation
84  */
85  params.addRangeCheckedParam<Real>(
86  "pressure_variable_relaxation",
87  1.0,
88  "0.0<pressure_variable_relaxation<=1.0",
89  "The relaxation which should be used for the pressure variable (=1 for no relaxation).");
90 
91  params.addParam<MultiMooseEnum>("pressure_petsc_options",
93  "Singleton PETSc options for the pressure equation");
94  params.addParam<MultiMooseEnum>("pressure_petsc_options_iname",
96  "Names of PETSc name/value pairs for the pressure equation");
97  params.addParam<std::vector<std::string>>(
98  "pressure_petsc_options_value",
99  "Values of PETSc name/value pairs (must correspond with \"petsc_options_iname\" for the "
100  "pressure equation");
101 
102  params.addRangeCheckedParam<Real>(
103  "pressure_absolute_tolerance",
104  1e-5,
105  "0.0<pressure_absolute_tolerance",
106  "The absolute tolerance on the normalized residual of the pressure equation.");
107 
108  params.addRangeCheckedParam<Real>("pressure_l_tol",
109  1e-5,
110  "0.0<=pressure_l_tol & pressure_l_tol<1.0",
111  "The relative tolerance on the normalized residual in the "
112  "linear solver of the pressure equation.");
113  params.addRangeCheckedParam<Real>("pressure_l_abs_tol",
114  1e-10,
115  "0.0<pressure_l_abs_tol",
116  "The absolute tolerance on the normalized residual in the "
117  "linear solver of the pressure equation.");
118  params.addParam<unsigned int>(
119  "pressure_l_max_its",
120  10000,
121  "The maximum allowed iterations in the linear solver of the pressure equation.");
122 
123  params.addParamNamesToGroup(
124  "pressure_variable_relaxation pressure_petsc_options pressure_petsc_options_iname "
125  "pressure_petsc_options_value pressure_petsc_options_value pressure_absolute_tolerance "
126  "pressure_l_tol pressure_l_abs_tol pressure_l_max_its pressure_system",
127  "Pressure Equation");
128 
129  /*
130  * Pressure pin parameters for enclosed flows
131  */
132 
133  params.addParam<bool>(
134  "pin_pressure", false, "If the pressure field needs to be pinned at a point.");
135  params.addParam<Real>(
136  "pressure_pin_value", 0.0, "The value which needs to be enforced for the pressure.");
137  params.addParam<Point>("pressure_pin_point", "The point where the pressure needs to be pinned.");
138 
139  params.addParamNamesToGroup("pin_pressure pressure_pin_value pressure_pin_point", "Pressure Pin");
140 
141  params.addParam<bool>(
142  "print_fields",
143  false,
144  "Use this to print the coupling and solution fields and matrices throughout the iteration.");
145 
146  /*
147  * Parameters to control the solution of the energy equation
148  */
149 
150  params.addRangeCheckedParam<Real>(
151  "energy_equation_relaxation",
152  1.0,
153  "0.0<energy_equation_relaxation<=1.0",
154  "The relaxation which should be used for the energy equation. (=1 for no relaxation, "
155  "diagonal dominance will still be enforced)");
156 
157  params.addParam<MultiMooseEnum>("energy_petsc_options",
159  "Singleton PETSc options for the energy equation");
160  params.addParam<MultiMooseEnum>("energy_petsc_options_iname",
162  "Names of PETSc name/value pairs for the energy equation");
163  params.addParam<std::vector<std::string>>(
164  "energy_petsc_options_value",
165  "Values of PETSc name/value pairs (must correspond with \"petsc_options_iname\" for the "
166  "energy equation");
167 
168  params.addRangeCheckedParam<Real>(
169  "energy_absolute_tolerance",
170  1e-5,
171  "0.0<energy_absolute_tolerance",
172  "The absolute tolerance on the normalized residual of the energy equation.");
173 
174  params.addRangeCheckedParam<Real>("energy_l_tol",
175  1e-5,
176  "0.0<=energy_l_tol & energy_l_tol<1.0",
177  "The relative tolerance on the normalized residual in the "
178  "linear solver of the energy equation.");
179  params.addRangeCheckedParam<Real>("energy_l_abs_tol",
180  1e-10,
181  "0.0<energy_l_abs_tol",
182  "The absolute tolerance on the normalized residual in the "
183  "linear solver of the energy equation.");
184  params.addRangeCheckedParam<unsigned int>(
185  "energy_l_max_its",
186  10000,
187  "0<energy_l_max_its",
188  "The maximum allowed iterations in the linear solver of the energy equation.");
189 
190  params.addParamNamesToGroup(
191  "energy_equation_relaxation energy_petsc_options energy_petsc_options_iname "
192  "energy_petsc_options_value energy_petsc_options_value energy_absolute_tolerance "
193  "energy_l_tol energy_l_abs_tol energy_l_max_its",
194  "Energy Equation");
195 
196  /*
197  * Parameters to control the solution of the solid energy equation
198  */
199 
200  params.addParam<MultiMooseEnum>("solid_energy_petsc_options",
202  "Singleton PETSc options for the solid energy equation");
203  params.addParam<MultiMooseEnum>("solid_energy_petsc_options_iname",
205  "Names of PETSc name/value pairs for the solid energy equation");
206  params.addParam<std::vector<std::string>>(
207  "solid_energy_petsc_options_value",
208  "Values of PETSc name/value pairs (must correspond with \"petsc_options_iname\" for the "
209  "solid energy equation");
210 
211  params.addRangeCheckedParam<Real>(
212  "solid_energy_absolute_tolerance",
213  1e-5,
214  "0.0<solid_energy_absolute_tolerance",
215  "The absolute tolerance on the normalized residual of the solid energy equation.");
216 
217  params.addRangeCheckedParam<Real>("solid_energy_l_tol",
218  1e-5,
219  "0.0<=solid_energy_l_tol & solid_energy_l_tol<1.0",
220  "The relative tolerance on the normalized residual in the "
221  "linear solver of the solid energy equation.");
222 
223  params.addRangeCheckedParam<Real>("solid_energy_l_abs_tol",
224  1e-10,
225  "0.0<solid_energy_l_abs_tol",
226  "The absolute tolerance on the normalized residual in the "
227  "linear solver of the solid energy equation.");
228  params.addRangeCheckedParam<unsigned int>(
229  "solid_energy_l_max_its",
230  10000,
231  "0<solid_energy_l_max_its",
232  "The maximum allowed iterations in the linear solver of the solid energy equation.");
233 
234  params.addParamNamesToGroup("solid_energy_petsc_options solid_energy_petsc_options_iname "
235  "solid_energy_petsc_options_value solid_energy_absolute_tolerance "
236  "solid_energy_l_tol solid_energy_l_abs_tol solid_energy_l_max_its",
237  "Solid Energy Equation");
238 
239  /*
240  * Parameters to control the solution of each scalar advection system
241  */
242  params.addParam<std::vector<Real>>("passive_scalar_equation_relaxation",
243  std::vector<Real>(),
244  "The relaxation which should be used for the passive scalar "
245  "equations. (=1 for no relaxation, "
246  "diagonal dominance will still be enforced)");
247 
248  params.addParam<MultiMooseEnum>("passive_scalar_petsc_options",
250  "Singleton PETSc options for the passive scalar equation(s)");
251  params.addParam<MultiMooseEnum>(
252  "passive_scalar_petsc_options_iname",
254  "Names of PETSc name/value pairs for the passive scalar equation(s)");
255  params.addParam<std::vector<std::string>>(
256  "passive_scalar_petsc_options_value",
257  "Values of PETSc name/value pairs (must correspond with \"petsc_options_iname\" for the "
258  "passive scalar equation(s)");
259  params.addParam<std::vector<Real>>(
260  "passive_scalar_absolute_tolerance",
261  std::vector<Real>(),
262  "The absolute tolerance(s) on the normalized residual(s) of the passive scalar equation(s).");
263  params.addRangeCheckedParam<Real>("passive_scalar_l_tol",
264  1e-5,
265  "0.0<=passive_scalar_l_tol & passive_scalar_l_tol<1.0",
266  "The relative tolerance on the normalized residual in the "
267  "linear solver of the passive scalar equation(s).");
268  params.addRangeCheckedParam<Real>("passive_scalar_l_abs_tol",
269  1e-10,
270  "0.0<passive_scalar_l_abs_tol",
271  "The absolute tolerance on the normalized residual in the "
272  "linear solver of the passive scalar equation(s).");
273  params.addParam<unsigned int>(
274  "passive_scalar_l_max_its",
275  10000,
276  "The maximum allowed iterations in the linear solver of the turbulence equation.");
277 
278  params.addParamNamesToGroup(
279  "passive_scalar_systems passive_scalar_equation_relaxation passive_scalar_petsc_options "
280  "passive_scalar_petsc_options_iname "
281  "passive_scalar_petsc_options_value passive_scalar_petsc_options_value "
282  "passive_scalar_absolute_tolerance "
283  "passive_scalar_l_tol passive_scalar_l_abs_tol passive_scalar_l_max_its",
284  "passive_scalar Equation");
285 
286  /*
287  * SIMPLE iteration control
288  */
289 
290  params.addRangeCheckedParam<unsigned int>(
291  "num_iterations",
292  1000,
293  "0<num_iterations",
294  "The number of momentum-pressure-(other fields) iterations needed.");
295 
296  params.addParam<bool>("continue_on_max_its",
297  false,
298  "If solve should continue if maximum number of iterations is hit.");
299 
300  return params;
301 }
MultiMooseEnum getCommonPetscKeys()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
InputParameters emptyInputParameters()
MultiMooseEnum getCommonPetscFlags()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)
void addParamNamesToGroup(const std::string &space_delim_names, const std::string group_name)

Member Data Documentation

◆ _continue_on_max_its

const bool SIMPLESolveBase::_continue_on_max_its
protected

If solve should continue if maximum number of iterations is hit.

Definition at line 202 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _energy_absolute_tolerance

const Real SIMPLESolveBase::_energy_absolute_tolerance
protected

The user-defined absolute tolerance for determining the convergence in energy.

Definition at line 190 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _energy_equation_relaxation

const Real SIMPLESolveBase::_energy_equation_relaxation
protected

The user-defined relaxation parameter for the energy equation.

Definition at line 130 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _energy_l_abs_tol

const Real SIMPLESolveBase::_energy_l_abs_tol
protected

Absolute linear tolerance for the energy equations.

We need to store this, because it needs to be scaled with a representative flux.

Definition at line 140 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _energy_linear_control

SIMPLESolverConfiguration SIMPLESolveBase::_energy_linear_control
protected

Options for the linear solver of the energy equation.

Definition at line 136 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _energy_petsc_options

Moose::PetscSupport::PetscOptions SIMPLESolveBase::_energy_petsc_options
protected

Options which hold the petsc settings for the fluid energy equation.

Definition at line 133 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _has_energy_system

const bool SIMPLESolveBase::_has_energy_system
protected

◆ _has_passive_scalar_systems

const bool SIMPLESolveBase::_has_passive_scalar_systems
protected

◆ _has_solid_energy_system

const bool SIMPLESolveBase::_has_solid_energy_system
protected

◆ _momentum_absolute_tolerance

const Real SIMPLESolveBase::_momentum_absolute_tolerance
protected

The user-defined absolute tolerance for determining the convergence in momentum.

Definition at line 184 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _momentum_equation_relaxation

const Real SIMPLESolveBase::_momentum_equation_relaxation
protected

The user-defined relaxation parameter for the momentum equation.

Definition at line 95 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveNonlinearAssembly::solveMomentumPredictor(), and LinearAssemblySegregatedSolve::solveMomentumPredictor().

◆ _momentum_l_abs_tol

const Real SIMPLESolveBase::_momentum_l_abs_tol
protected

Absolute linear tolerance for the momentum equation(s).

We need to store this, because it needs to be scaled with a representative flux.

Definition at line 89 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveNonlinearAssembly::solveMomentumPredictor(), and LinearAssemblySegregatedSolve::solveMomentumPredictor().

◆ _momentum_linear_control

SIMPLESolverConfiguration SIMPLESolveBase::_momentum_linear_control
protected

Options for the linear solver of the momentum equation.

Definition at line 85 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), SIMPLESolveNonlinearAssembly::solveMomentumPredictor(), and LinearAssemblySegregatedSolve::solveMomentumPredictor().

◆ _momentum_petsc_options

Moose::PetscSupport::PetscOptions SIMPLESolveBase::_momentum_petsc_options
protected

Options which hold the petsc settings for the momentum equation.

Definition at line 92 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _momentum_system_names

const std::vector<SolverSystemName>& SIMPLESolveBase::_momentum_system_names
protected

◆ _num_iterations

const unsigned int SIMPLESolveBase::_num_iterations
protected

The maximum number of momentum-pressure iterations.

Definition at line 199 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _passive_scalar_absolute_tolerance

const std::vector<Real> SIMPLESolveBase::_passive_scalar_absolute_tolerance
protected

The user-defined absolute tolerance for determining the convergence in passive scalars.

Definition at line 196 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _passive_scalar_equation_relaxation

const std::vector<Real> SIMPLESolveBase::_passive_scalar_equation_relaxation
protected

The user-defined relaxation parameter(s) for the passive scalar equation(s)

Definition at line 169 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _passive_scalar_l_abs_tol

const Real SIMPLESolveBase::_passive_scalar_l_abs_tol
protected

Absolute linear tolerance for the passive scalar equation(s).

We need to store this, because it needs to be scaled with a representative flux.

Definition at line 179 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _passive_scalar_linear_control

SIMPLESolverConfiguration SIMPLESolveBase::_passive_scalar_linear_control
protected

Options for the linear solver of the passive scalar equation(s)

Definition at line 175 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _passive_scalar_petsc_options

Moose::PetscSupport::PetscOptions SIMPLESolveBase::_passive_scalar_petsc_options
protected

Options which hold the petsc settings for the passive scalar equation(s)

Definition at line 172 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _passive_scalar_system_names

const std::vector<SolverSystemName>& SIMPLESolveBase::_passive_scalar_system_names
protected

◆ _passive_scalar_system_numbers

std::vector<unsigned int> SIMPLESolveBase::_passive_scalar_system_numbers
protected

◆ _pin_pressure

const bool SIMPLESolveBase::_pin_pressure
protected

◆ _pressure_absolute_tolerance

const Real SIMPLESolveBase::_pressure_absolute_tolerance
protected

The user-defined absolute tolerance for determining the convergence in pressure.

Definition at line 187 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _pressure_l_abs_tol

const Real SIMPLESolveBase::_pressure_l_abs_tol
protected

Absolute linear tolerance for the pressure equation.

We need to store this, because it needs to be scaled with a representative flux.

Definition at line 107 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveNonlinearAssembly::solvePressureCorrector(), and LinearAssemblySegregatedSolve::solvePressureCorrector().

◆ _pressure_linear_control

SIMPLESolverConfiguration SIMPLESolveBase::_pressure_linear_control
protected

Options for the linear solver of the pressure equation.

Definition at line 103 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), SIMPLESolveNonlinearAssembly::solvePressureCorrector(), and LinearAssemblySegregatedSolve::solvePressureCorrector().

◆ _pressure_petsc_options

Moose::PetscSupport::PetscOptions SIMPLESolveBase::_pressure_petsc_options
protected

Options which hold the petsc settings for the pressure equation.

Definition at line 110 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::correctVelocity(), SIMPLESolveBase(), and SIMPLESolveNonlinearAssembly::solve().

◆ _pressure_pin_dof

dof_id_type SIMPLESolveBase::_pressure_pin_dof
protected

The dof ID where the pressure needs to be pinned.

Definition at line 122 of file SIMPLESolveBase.h.

Referenced by setupPressurePin(), SIMPLESolveNonlinearAssembly::solvePressureCorrector(), and LinearAssemblySegregatedSolve::solvePressureCorrector().

◆ _pressure_pin_value

const Real SIMPLESolveBase::_pressure_pin_value
protected

The value we want to enforce for pressure.

Definition at line 119 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveNonlinearAssembly::solvePressureCorrector(), and LinearAssemblySegregatedSolve::solvePressureCorrector().

◆ _pressure_system_name

const SolverSystemName& SIMPLESolveBase::_pressure_system_name
protected

The name of the pressure system.

Definition at line 100 of file SIMPLESolveBase.h.

◆ _pressure_variable_relaxation

const Real SIMPLESolveBase::_pressure_variable_relaxation
protected

The user-defined relaxation parameter for the pressure variable.

Definition at line 113 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::correctVelocity(), and SIMPLESolveNonlinearAssembly::solve().

◆ _print_fields

const bool SIMPLESolveBase::_print_fields
protected

◆ _solid_energy_absolute_tolerance

const Real SIMPLESolveBase::_solid_energy_absolute_tolerance
protected

The user-defined absolute tolerance for determining the convergence in solid energy.

Definition at line 193 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solve(), and SIMPLESolveNonlinearAssembly::solve().

◆ _solid_energy_l_abs_tol

const Real SIMPLESolveBase::_solid_energy_l_abs_tol
protected

Absolute linear tolerance for the energy equations.

We need to store this, because it needs to be scaled with a representative flux.

Definition at line 155 of file SIMPLESolveBase.h.

Referenced by LinearAssemblySegregatedSolve::solveSolidEnergy(), and SIMPLESolveNonlinearAssembly::solveSolidEnergySystem().

◆ _solid_energy_linear_control

SIMPLESolverConfiguration SIMPLESolveBase::_solid_energy_linear_control
protected

Options for the linear solver of the energy equation.

Definition at line 151 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), LinearAssemblySegregatedSolve::solveSolidEnergy(), and SIMPLESolveNonlinearAssembly::solveSolidEnergySystem().

◆ _solid_energy_petsc_options

Moose::PetscSupport::PetscOptions SIMPLESolveBase::_solid_energy_petsc_options
protected

Options which hold the petsc settings for the fluid energy equation.

Definition at line 148 of file SIMPLESolveBase.h.

Referenced by SIMPLESolveBase(), and LinearAssemblySegregatedSolve::solve().


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