https://mooseframework.inl.gov
MFEMNLConvectiveHeatFluxBC.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef MOOSE_MFEM_ENABLED
11 
14 #include "MFEMProblem.h"
15 
17 
20 {
22  params.addClassDescription(
23  "Convective heat transfer boundary condition with temperature and heat "
24  "transfer coefficent given by material properties to add to MFEM problems.");
25  params.addParam<MFEMScalarCoefficientName>(
26  "T_infinity", "0.", "Name of a coefficient specifying the far-field temperature");
27  params.addParam<MFEMScalarCoefficientName>(
28  "heat_transfer_coefficient",
29  "1.",
30  "Name of the coefficient specifying the heat transfer coefficient");
31  params.addParam<MFEMScalarCoefficientName>(
32  "d_heat_transfer_dT_coefficient",
33  "0.",
34  "Name of the coefficient specifying the derivative of the heat transfer coefficient with "
35  "respect to temperature");
36  params.addParam<MFEMScalarCoefficientName>(
37  "d_T_infinity_dT_coefficient",
38  "0.",
39  "Name of the coefficient specifying the derivative of the far-field temperature with "
40  "respect to temperature");
41  return params;
42 }
43 
45  : MFEMIntegratedBC(parameters),
46  _heat_transfer_coef(getScalarCoefficient("heat_transfer_coefficient")),
47  _d_heat_transfer_dT_coef(getScalarCoefficient("d_heat_transfer_dT_coefficient")),
48  _T_inf_coef(getScalarCoefficient("T_infinity")),
49  _d_T_inf_dT_coef(getScalarCoefficient("d_T_infinity_dT_coefficient")),
50  _T_coef(getScalarCoefficientByName((getTrialVariableName())))
51 {
52 }
53 
54 // Create a new MFEM integrator to apply to LHS of the weak form. Ownership managed by the caller.
55 mfem::NonlinearFormIntegrator *
57 {
60 }
61 
62 #endif
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
MFEMNLConvectiveHeatFluxBC(const InputParameters &parameters)
Construct the nonlinear convective heat flux boundary condition.
static InputParameters validParams()
virtual mfem::NonlinearFormIntegrator * createNLIntegrator() override
Create MFEM non-linear integrator to apply to the LHS of the weak form. Ownership managed by the call...
mfem::Coefficient & _heat_transfer_coef
Heat transfer coefficient h(T).
mfem::Coefficient & _d_T_inf_dT_coef
Derivative dT_inf/dT of the far-field temperature coefficient.
registerMooseObject("MooseApp", MFEMNLConvectiveHeatFluxBC)
mfem::Coefficient & _d_heat_transfer_dT_coef
Derivative dh/dT of the heat transfer coefficient.
mfem::Coefficient & _T_coef
Trial variable temperature T.
mfem::Coefficient & _T_inf_coef
Far-field temperature T_inf(T).
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object...
static InputParameters validParams()