19 "Base class for caching heat flux between flow channels and heat structures.");
26 _mesh_alignment(*getParam<
MeshAlignment *>(
"_mesh_alignment")),
27 _P_hf(coupledValue(
"P_hf"))
40 unsigned int n_qpts =
_qrule->n_points();
54 _heat_flux[nearest_elem_id][nearest_qp] = q_wall;
84 for (
auto & it : uo._heated_perimeter)
86 for (
auto & it : uo._heat_flux)
88 for (
auto & it : uo._heat_flux_jacobian)
92 const std::vector<Real> &
95 Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
101 name(),
": Requested heated perimeter for element ", element_id,
" was not computed.");
104 const std::vector<Real> &
107 Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
112 mooseError(
name(),
": Requested heat flux for element ", element_id,
" was not computed.");
115 const std::vector<DenseVector<Real>> &
118 Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
124 name(),
": Requested heat flux jacobian for element ", element_id,
" was not computed.");
virtual void threadJoin(const UserObject &y) override
static InputParameters validParams()
virtual void execute() override
const std::vector< Real > & getHeatedPerimeter(dof_id_type element_id) const
virtual void finalize() override
Builds mapping between two aligned subdomains/boundaries.
const std::vector< double > y
virtual void initialize() override
virtual const std::string & name() const
std::map< dof_id_type, std::vector< Real > > _heat_flux
Cached heat flux.
Base class for caching heat flux between a flow channel and a heat structure.
HeatFluxFromHeatStructureBaseUserObject(const InputParameters ¶meters)
const dof_id_type & getCoupledElemID(const dof_id_type &elem_id) const
Gets the coupled element ID for a given element ID.
std::map< dof_id_type, std::vector< DenseVector< Real > > > _heat_flux_jacobian
Cached heat flux jacobians.
std::map< dof_id_type, std::vector< Real > > _heated_perimeter
Cached heated perimeter.
void buildCoupledElemQpIndexMap(Assembly &assembly)
Builds the map used for getting the coupled quadrature point index.
const std::vector< Real > & getHeatFlux(dof_id_type element_id) const
unsigned int _qp
Quadrature point index.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const QBase *const & _qrule
const Elem *const & _current_elem
FEProblemBase & _fe_problem
const VariableValue & _P_hf
Coupled heated perimeter variable.
MeshAlignment & _mesh_alignment
Mesh alignment object.
void mooseError(Args &&... args) const
virtual Real computeQpHeatFlux()=0
virtual DenseVector< Real > computeQpHeatFluxJacobian()=0
static InputParameters validParams()
const bool & currentlyComputingJacobian() const
unsigned int getCoupledElemQpIndex(const dof_id_type &elem_id, const unsigned int &qp) const
Gets the quadrature point index on the coupled element corresponding to the quadrature point index on...
const std::vector< DenseVector< Real > > & getHeatFluxJacobian(dof_id_type element_id) const