Line data Source code
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 : #include "INSADHeatConductionTimeDerivative.h" 11 : #include "INSADObjectTracker.h" 12 : #include "FEProblemBase.h" 13 : 14 : registerMooseObject("NavierStokesApp", INSADHeatConductionTimeDerivative); 15 : 16 : InputParameters 17 471 : INSADHeatConductionTimeDerivative::validParams() 18 : { 19 471 : InputParameters params = ADTimeDerivative::validParams(); 20 471 : params.addClassDescription( 21 : "AD Time derivative term $\\rho c_p \\frac{\\partial T}{\\partial t}$ of " 22 : "the heat equation for quasi-constant specific heat $c_p$ and the density $\\rho$."); 23 471 : return params; 24 0 : } 25 : 26 255 : INSADHeatConductionTimeDerivative::INSADHeatConductionTimeDerivative( 27 255 : const InputParameters & parameters) 28 : : ADTimeDerivative(parameters), 29 510 : _temperature_td_strong_residual(getADMaterialProperty<Real>("temperature_td_strong_residual")) 30 : { 31 : // Bypass the UserObjectInterface method because it requires a UserObjectName param which we 32 : // don't need 33 : auto & obj_tracker = const_cast<INSADObjectTracker &>( 34 255 : _fe_problem.getUserObject<INSADObjectTracker>("ins_ad_object_tracker")); 35 532 : for (const auto block_id : blockIDs()) 36 554 : obj_tracker.set("has_energy_transient", true, block_id); 37 255 : } 38 : 39 : ADReal 40 4493345 : INSADHeatConductionTimeDerivative::precomputeQpResidual() 41 : { 42 4493345 : return _temperature_td_strong_residual[_qp]; 43 : }