This class provides an interface for managing conjugate heat transfer (CHT) between fluid and solid domains. More...
#include <CHTHandler.h>
Public Types | |
| typedef DataFileName | DataFileParameterType |
Public Member Functions | |
| CHTHandler (const InputParameters ¶meters) | |
| Constructor with initialization parameters. | |
| void | linkEnergySystems (SystemBase *solid_energy_system, SystemBase *fluid_energy_system, std::vector< SystemBase * > pm_radiation_systems) |
| Link energy systems. | |
| void | setupConjugateHeatTransferContainers () |
| Set up the boundary condition pairs, functor maps, and every other necessary structure for the conjugate heat transfer routines. | |
| void | deduceCHTBoundaryCoupling () |
| Run error checks and make sure everything works. | |
| void | updateCHTBoundaryCouplingFields (const NS::CHTSide side) |
| Update the coupling fields for. | |
| void | initializeCHTCouplingFields () |
| Initialize the coupling fields for the conjugate heat transfer routines. | |
| bool | converged () const |
| Check if CHT iteration converged. | |
| void | resetCHTConvergence () |
| Reset the convergence data. | |
| void | incrementCHTIterators () |
| Increment CHT iterators in the loop. | |
| void | sumIntegratedFluxes () |
| Sum the integrated fluxes over all processors. | |
| void | printIntegratedFluxes () const |
| Print the integrated heat fluxes. | |
| void | resetIntegratedFluxes () |
| Reset the heat fluxes to 0. | |
| virtual bool | enabled () const override final |
| Check if CHT treatment is needed. | |
| std::shared_ptr< MooseObject > | getSharedPtr () |
| std::shared_ptr< const MooseObject > | getSharedPtr () const |
| bool | isKokkosObject () const |
| MooseApp & | getMooseApp () const |
| const std::string & | type () const |
| const std::string & | name () const |
| std::string | typeAndName () const |
| MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
| MooseObjectName | uniqueName () const |
| const InputParameters & | parameters () const |
| const hit::Node * | getHitNode () const |
| bool | hasBase () const |
| const std::string & | getBase () const |
| const T & | getParam (const std::string &name) const |
| std::vector< std::pair< T1, T2 > > | getParam (const std::string ¶m1, const std::string ¶m2) const |
| const T * | queryParam (const std::string &name) const |
| const T & | getRenamedParam (const std::string &old_name, const std::string &new_name) const |
| T | getCheckedPointerParam (const std::string &name, const std::string &error_string="") const |
| bool | isParamValid (const std::string &name) const |
| bool | isParamSetByUser (const std::string &name) const |
| void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const |
| void | paramError (const std::string ¶m, Args... args) const |
| void | paramWarning (const std::string ¶m, Args... args) const |
| void | paramWarning (const std::string ¶m, Args... args) const |
| void | paramInfo (const std::string ¶m, Args... args) const |
| std::string | messagePrefix (const bool hit_prefix=true) const |
| std::string | errorPrefix (const std::string &) const |
| void | mooseError (Args &&... args) const |
| void | mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const |
| void | mooseErrorNonPrefixed (Args &&... args) const |
| void | mooseWarning (Args &&... args) const |
| void | mooseWarning (Args &&... args) const |
| void | mooseWarningNonPrefixed (Args &&... args) const |
| void | mooseWarningNonPrefixed (Args &&... args) const |
| void | mooseDeprecated (Args &&... args) const |
| void | mooseDeprecated (Args &&... args) const |
| void | mooseDeprecatedNoTrace (Args &&... args) const |
| void | mooseInfo (Args &&... args) const |
| void | callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const |
| std::string | getDataFileName (const std::string ¶m) const |
| std::string | getDataFileNameByName (const std::string &relative_path) const |
| std::string | getDataFilePath (const std::string &relative_path) const |
| const Parallel::Communicator & | comm () const |
| processor_id_type | n_processors () const |
| processor_id_type | processor_id () const |
| UserObjectName | getUserObjectName (const std::string ¶m_name) const |
| const T & | getUserObject (const std::string ¶m_name, bool is_dependency=true) const |
| const T & | getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const |
| const UserObjectBase & | getUserObjectBase (const std::string ¶m_name, bool is_dependency=true) const |
| const UserObjectBase & | getUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const |
| bool | hasUserObject (const std::string ¶m_name) const |
| bool | hasUserObject (const std::string ¶m_name) const |
| bool | hasUserObject (const std::string ¶m_name) const |
| bool | hasUserObject (const std::string ¶m_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 |
| const Moose::Functor< Real > * | defaultFunctor (const std::string &name) |
| const Moose::Functor< ADReal > * | defaultFunctor (const std::string &name) |
Static Public Member Functions | |
| static InputParameters | validParams () |
| static void | callMooseError (MooseApp *const app, const InputParameters ¶ms, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true) |
| static std::string | deduceFunctorName (const std::string &name, const InputParameters ¶ms) |
Public Attributes | |
| usingCombinedWarningSolutionWarnings | |
| const ConsoleStream | _console |
Static Public Attributes | |
| static const std::string | type_param |
| static const std::string | name_param |
| static const std::string | unique_name_param |
| static const std::string | app_param |
| static const std::string | moose_base_param |
| static const std::string | kokkos_object_param |
Protected Member Functions | |
| void | flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const |
| InvalidSolutionID | registerInvalidSolutionInternal (const std::string &message, const bool warning) const |
| virtual void | addUserObjectDependencyHelper (const UserObjectBase &) const |
| std::string | deduceFunctorName (const std::string &name) const |
| const Moose::Functor< T > & | getFunctor (const std::string &name) |
| const Moose::Functor< T > & | getFunctor (const std::string &name, THREAD_ID tid) |
| const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem) |
| const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem, THREAD_ID tid) |
| bool | isFunctor (const std::string &name) const |
| bool | isFunctor (const std::string &name, const SubProblem &subproblem) const |
| Moose::ElemArg | makeElemArg (const Elem *elem, bool correct_skewnewss=false) const |
| void | checkFunctorSupportsSideIntegration (const std::string &name, bool qp_integration) |
| const Moose::Functor< T > & | getFunctorByName (const std::string &name) |
Protected Attributes | |
| FEProblemBase & | _problem |
| Reference to FEProblem. | |
| MooseMesh & | _mesh |
| Mesh. | |
| SystemBase * | _energy_system |
| The energy system. | |
| SystemBase * | _solid_energy_system |
| The solid energy system. | |
| std::vector< SystemBase * > | _pm_radiation_systems |
| The solid energy system. | |
| const MooseLinearVariableFVReal * | _fluid_variable = nullptr |
| The fluid-side temperature variable. | |
| const MooseLinearVariableFVReal * | _solid_variable = nullptr |
| The solid-side temperature variable. | |
| std::vector< BoundaryName > | _cht_boundary_names |
| The names of the CHT boundaries. | |
| std::vector< BoundaryID > | _cht_boundary_ids |
| The IDs of the CHT boundaries. | |
| const unsigned int | _max_cht_fpi |
| Maximum number of CHT fixed point iterations. | |
| const Real | _cht_heat_flux_tolerance |
| Tolerance for heat flux at the CHT interfaces. | |
| const GrayLambertSurfaceRadiationBase * | _surface_radiation_uo |
| Optional surface-to-surface radiation model supplying net outward wall heat fluxes. | |
| std::set< BoundaryID > | _surface_radiation_boundary_ids |
| Boundaries represented by the surface-to-surface radiation model. | |
| std::vector< const Moose::Functor< Real > * > | _thermal_resistance |
| Thermal resistance functors, one per CHT interface. | |
| std::vector< std::vector< Real > > | _cht_flux_relaxation_factor |
| The relaxation factors for flux fields for the CHT boundaries first index is solid/fluid second is the interface. | |
| std::vector< std::vector< Real > > | _cht_temperature_relaxation_factor |
| The relaxation factors for temperature fields for the CHT boundaries first index is solid/fluid second is the interface. | |
| std::vector< unsigned int > | _cht_system_numbers |
| The solid (0) and fluid (1) system numbers. | |
| std::vector< unsigned int > | _cht_pm_radiation_system_numbers |
| The participating media radiation system numbers. | |
| std::vector< std::vector< const FaceInfo * > > | _cht_face_info |
| The subset of the FaceInfo objects that belong to the given boundaries. | |
| std::vector< LinearFVFluxKernel * > | _cht_conduction_kernels |
| The conduction kernels from the solid/fluid domains. Can't be const, considering we are updating the inner structures for every face. | |
| std::vector< LinearFVFluxKernel * > | _cht_pm_radiation_kernels |
| The conduction radiation kernels from the fluid domains. | |
| std::vector< std::vector< LinearFVBoundaryCondition * > > | _cht_boundary_conditions |
| Vector of boundary conditions that describe the conjugate heat transfer from each side. | |
| std::vector< std::vector< LinearFVBoundaryCondition * > > | _cht_pm_radiation_boundary_conditions |
| Vector of boundary conditions that describe the radiation pm bcs from each side. | |
| std::vector< std::vector< FaceCenteredMapFunctor< Real, std::unordered_map< dof_id_type, Real > > > > | _boundary_heat_flux |
| Functors describing the heat flux on the conjugate heat transfer interfaces. | |
| std::vector< std::vector< Real > > | _integrated_boundary_heat_flux |
| Integrated source-domain flux for each boundary and solid/fluid transfer direction. | |
| std::vector< Real > | _integrated_boundary_surface_radiation_heat_flux |
| Integrated net outward surface-radiation flux, kept separate for the CHT energy balance. | |
| std::vector< std::vector< FaceCenteredMapFunctor< Real, std::unordered_map< dof_id_type, Real > > > > | _boundary_temperature |
| Functors describing the raw wall temperatures on the conjugate heat transfer interfaces. | |
| std::vector< std::vector< FaceCenteredMapFunctor< Real, std::unordered_map< dof_id_type, Real > > > > | _boundary_effective_temperature |
| Functors describing the effective wall temperatures after applying thermal resistance. | |
| const bool & | _enabled |
| MooseApp & | _app |
| Factory & | _factory |
| ActionFactory & | _action_factory |
| const std::string & | _type |
| const std::string & | _name |
| const InputParameters & | _pars |
| const Parallel::Communicator & | _communicator |
Private Member Functions | |
| const UserObjectBase & | getUserObjectFromFEProblem (const UserObjectName &object_name, const THREAD_ID tid=0) const |
| const T & | castUserObject (const UserObjectBase &uo_base, const std::string ¶m_name="") const |
| void | mooseObjectError (const std::string ¶m_name, std::stringstream &oss) const |
| const std::string & | userObjectType (const UserObjectBase &uo) const |
| const std::string & | userObjectName (const UserObjectBase &uo) const |
| const Moose::Functor< T > * | defaultFunctor (const std::string &name) |
| const Moose::Functor< Real > * | defaultFunctor (const std::string &name) |
| const Moose::Functor< ADReal > * | defaultFunctor (const std::string &name) |
| const Moose::Functor< T > & | getFunctorByName (const std::string &name, SubProblem &subproblem, THREAD_ID tid) |
| virtual bool | isADObject () const override |
Static Private Member Functions | |
| static const hit::Node * | getHitNode (const InputParameters ¶ms) |
| static std::string | messagePrefix (const InputParameters ¶ms, const bool hit_prefix) |
Private Attributes | |
| unsigned int | _fpi_it |
| CHT fixed point iteration counter. | |
| const ParallelParamObject & | _parent |
| const MooseBase & | _si_moose_base |
| const FEProblemBase * | _si_problem |
| const MooseObject & | _uoi_moose_object |
| const FEProblemBase & | _uoi_feproblem |
| const THREAD_ID | _uoi_tid |
| const InputParameters & | _fi_params |
| const std::string | _fi_name |
| SubProblem *const | _fi_subproblem |
| const THREAD_ID | _fi_tid |
| std::vector< std::unique_ptr< Moose::Functor< Real > > > | _default_real_functors |
| std::vector< std::unique_ptr< Moose::Functor< ADReal > > > | _default_ad_real_functors |
This class provides an interface for managing conjugate heat transfer (CHT) between fluid and solid domains.
Definition at line 35 of file CHTHandler.h.
| NS::FV::CHTHandler::CHTHandler | ( | const InputParameters & | parameters | ) |
Constructor with initialization parameters.
Definition at line 91 of file CHTHandler.C.
| bool NS::FV::CHTHandler::converged | ( | ) | const |
Check if CHT iteration converged.
Definition at line 625 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::solve().
| void NS::FV::CHTHandler::deduceCHTBoundaryCoupling | ( | ) |
Run error checks and make sure everything works.
Definition at line 144 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::initialSetup().
|
inlinefinaloverridevirtual |
Check if CHT treatment is needed.
Reimplemented from MooseObject.
Definition at line 182 of file CHTHandler.h.
Referenced by LinearAssemblySegregatedSolve::initialSetup(), LinearAssemblySegregatedSolve::LinearAssemblySegregatedSolve(), and LinearAssemblySegregatedSolve::solve().
|
inline |
Increment CHT iterators in the loop.
Definition at line 194 of file CHTHandler.h.
Referenced by LinearAssemblySegregatedSolve::solve().
| void NS::FV::CHTHandler::initializeCHTCouplingFields | ( | ) |
Initialize the coupling fields for the conjugate heat transfer routines.
Definition at line 436 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::solve().
| void NS::FV::CHTHandler::linkEnergySystems | ( | SystemBase * | solid_energy_system, |
| SystemBase * | fluid_energy_system, | ||
| std::vector< SystemBase * > | pm_radiation_systems | ||
| ) |
Link energy systems.
Definition at line 129 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::LinearAssemblySegregatedSolve().
| void NS::FV::CHTHandler::printIntegratedFluxes | ( | ) | const |
Print the integrated heat fluxes.
Definition at line 598 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::solve().
|
inline |
Reset the convergence data.
Definition at line 188 of file CHTHandler.h.
Referenced by LinearAssemblySegregatedSolve::solve().
| void NS::FV::CHTHandler::resetIntegratedFluxes | ( | ) |
Reset the heat fluxes to 0.
Definition at line 614 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::solve().
| void NS::FV::CHTHandler::setupConjugateHeatTransferContainers | ( | ) |
Set up the boundary condition pairs, functor maps, and every other necessary structure for the conjugate heat transfer routines.
Definition at line 351 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::initialSetup().
| void NS::FV::CHTHandler::sumIntegratedFluxes | ( | ) |
Sum the integrated fluxes over all processors.
Definition at line 585 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::solve().
| void NS::FV::CHTHandler::updateCHTBoundaryCouplingFields | ( | const NS::CHTSide | side | ) |
Update the coupling fields for.
| side |
Definition at line 465 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::solve().
|
static |
Definition at line 26 of file CHTHandler.C.
Referenced by LinearAssemblySegregatedSolve::validParams().
|
protected |
Functors describing the effective wall temperatures after applying thermal resistance.
Two functors per sideset, first is the temperature seen by the solid, second by the fluid.
Definition at line 174 of file CHTHandler.h.
|
protected |
Functors describing the heat flux on the conjugate heat transfer interfaces.
Two functors per sideset, first is solid second is fluid.
Definition at line 157 of file CHTHandler.h.
Referenced by setupConjugateHeatTransferContainers(), and updateCHTBoundaryCouplingFields().
|
protected |
Functors describing the raw wall temperatures on the conjugate heat transfer interfaces.
Two functors per sideset, first is solid second is fluid.
Definition at line 169 of file CHTHandler.h.
Referenced by initializeCHTCouplingFields(), setupConjugateHeatTransferContainers(), and updateCHTBoundaryCouplingFields().
|
protected |
Vector of boundary conditions that describe the conjugate heat transfer from each side.
Definition at line 149 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
The IDs of the CHT boundaries.
Definition at line 108 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), initializeCHTCouplingFields(), setupConjugateHeatTransferContainers(), and updateCHTBoundaryCouplingFields().
|
protected |
The names of the CHT boundaries.
Definition at line 105 of file CHTHandler.h.
Referenced by CHTHandler(), deduceCHTBoundaryCoupling(), enabled(), printIntegratedFluxes(), setupConjugateHeatTransferContainers(), and updateCHTBoundaryCouplingFields().
|
protected |
The conduction kernels from the solid/fluid domains. Can't be const, considering we are updating the inner structures for every face.
Definition at line 143 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
The subset of the FaceInfo objects that belong to the given boundaries.
Definition at line 140 of file CHTHandler.h.
Referenced by initializeCHTCouplingFields(), setupConjugateHeatTransferContainers(), and updateCHTBoundaryCouplingFields().
|
protected |
The relaxation factors for flux fields for the CHT boundaries first index is solid/fluid second is the interface.
Definition at line 127 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
Tolerance for heat flux at the CHT interfaces.
Definition at line 114 of file CHTHandler.h.
Referenced by converged().
|
protected |
Vector of boundary conditions that describe the radiation pm bcs from each side.
Definition at line 152 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
The conduction radiation kernels from the fluid domains.
Definition at line 146 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
The participating media radiation system numbers.
Definition at line 137 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
The solid (0) and fluid (1) system numbers.
Definition at line 134 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
The relaxation factors for temperature fields for the CHT boundaries first index is solid/fluid second is the interface.
Definition at line 131 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
The energy system.
Definition at line 90 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), linkEnergySystems(), and setupConjugateHeatTransferContainers().
|
protected |
The fluid-side temperature variable.
Definition at line 99 of file CHTHandler.h.
Referenced by initializeCHTCouplingFields(), and setupConjugateHeatTransferContainers().
|
private |
CHT fixed point iteration counter.
Definition at line 178 of file CHTHandler.h.
Referenced by converged(), incrementCHTIterators(), printIntegratedFluxes(), and resetCHTConvergence().
|
protected |
Integrated source-domain flux for each boundary and solid/fluid transfer direction.
Definition at line 160 of file CHTHandler.h.
Referenced by converged(), printIntegratedFluxes(), resetIntegratedFluxes(), setupConjugateHeatTransferContainers(), sumIntegratedFluxes(), and updateCHTBoundaryCouplingFields().
|
protected |
Integrated net outward surface-radiation flux, kept separate for the CHT energy balance.
Only populated when a surface-radiation user object is supplied.
Definition at line 164 of file CHTHandler.h.
Referenced by converged(), printIntegratedFluxes(), resetIntegratedFluxes(), setupConjugateHeatTransferContainers(), sumIntegratedFluxes(), and updateCHTBoundaryCouplingFields().
|
protected |
Maximum number of CHT fixed point iterations.
Definition at line 111 of file CHTHandler.h.
Referenced by converged().
|
protected |
Mesh.
Definition at line 87 of file CHTHandler.h.
|
protected |
The solid energy system.
Definition at line 96 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), linkEnergySystems(), and updateCHTBoundaryCouplingFields().
|
protected |
Reference to FEProblem.
Definition at line 84 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), setupConjugateHeatTransferContainers(), and sumIntegratedFluxes().
|
protected |
The solid energy system.
Definition at line 93 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), linkEnergySystems(), and setupConjugateHeatTransferContainers().
|
protected |
The solid-side temperature variable.
Definition at line 102 of file CHTHandler.h.
Referenced by initializeCHTCouplingFields(), and setupConjugateHeatTransferContainers().
|
protected |
Boundaries represented by the surface-to-surface radiation model.
Definition at line 120 of file CHTHandler.h.
Referenced by deduceCHTBoundaryCoupling(), and updateCHTBoundaryCouplingFields().
|
protected |
Optional surface-to-surface radiation model supplying net outward wall heat fluxes.
Definition at line 117 of file CHTHandler.h.
Referenced by converged(), deduceCHTBoundaryCoupling(), printIntegratedFluxes(), resetIntegratedFluxes(), setupConjugateHeatTransferContainers(), sumIntegratedFluxes(), and updateCHTBoundaryCouplingFields().
|
protected |
Thermal resistance functors, one per CHT interface.
Definition at line 123 of file CHTHandler.h.
Referenced by CHTHandler(), and updateCHTBoundaryCouplingFields().