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 "NavierStokesStressIPHDGAssemblyHelper.h" 11 : #include "MooseTypes.h" 12 : #include "MooseVariableDependencyInterface.h" 13 : #include "MooseVariableScalar.h" 14 : #include "SystemBase.h" 15 : #include "MooseMesh.h" 16 : #include "MooseObject.h" 17 : #include "MaterialPropertyInterface.h" 18 : #include "Assembly.h" 19 : #include "MooseMesh.h" 20 : 21 : using namespace libMesh; 22 : 23 : InputParameters 24 5043 : NavierStokesStressIPHDGAssemblyHelper::validParams() 25 : { 26 5043 : auto params = DiffusionIPHDGAssemblyHelper::validParams(); 27 10086 : params.addRequiredParam<NonlinearVariableName>( 28 : "pressure_variable", "The pressure variable that lives on element interiors."); 29 10086 : params.addRequiredParam<NonlinearVariableName>( 30 : "pressure_face_variable", "The pressure variable that lives on element faces."); 31 10086 : params.addRequiredParam<unsigned int>("component", "number of component (0 = x, 1 = y, 2 = z)"); 32 5043 : return params; 33 0 : } 34 : 35 2534 : NavierStokesStressIPHDGAssemblyHelper::NavierStokesStressIPHDGAssemblyHelper( 36 : const MooseObject * const moose_obj, 37 : MooseVariableDependencyInterface * const mvdi, 38 : const TransientInterface * const ti, 39 : const MooseMesh & mesh, 40 : SystemBase & sys, 41 : const Assembly & assembly, 42 : const THREAD_ID tid, 43 : const std::set<SubdomainID> & block_ids, 44 2534 : const std::set<BoundaryID> & boundary_ids) 45 : : DiffusionIPHDGAssemblyHelper(moose_obj, mvdi, ti, sys, assembly, tid, block_ids, boundary_ids), 46 2534 : _pressure_var(sys.getFieldVariable<Real>( 47 5068 : tid, moose_obj->getParam<NonlinearVariableName>("pressure_variable"))), 48 2534 : _pressure_face_var(sys.getFieldVariable<Real>( 49 2534 : tid, moose_obj->getParam<NonlinearVariableName>("pressure_face_variable"))), 50 2534 : _pressure_sol(_pressure_var.adSln()), 51 2534 : _pressure_face_sol(_pressure_face_var.adSln()), 52 2534 : _coord_sys(assembly.coordSystem()), 53 2534 : _rz_radial_coord(mesh.getAxisymmetricRadialCoord()), 54 7602 : _component(moose_obj->getParam<unsigned int>("component")) 55 : { 56 2534 : } 57 : 58 : void 59 3790420 : NavierStokesStressIPHDGAssemblyHelper::scalarVolume() 60 : { 61 3790420 : DiffusionIPHDGAssemblyHelper::scalarVolume(); 62 : 63 22795260 : for (const auto qp : make_range(_ip_qrule->n_points())) 64 102942152 : for (const auto i : index_range(_scalar_re)) 65 : { 66 251811936 : _scalar_re(i) -= _ip_JxW[qp] * (_grad_scalar_phi[i][qp](_component) * _pressure_sol[qp]); 67 83937312 : if (_coord_sys == Moose::COORD_RZ && (_rz_radial_coord == _component)) 68 0 : _scalar_re(i) -= _pressure_sol[qp] / _ip_q_point[qp](_rz_radial_coord) * _scalar_phi[i][qp]; 69 : } 70 3790420 : } 71 : 72 : void 73 11196588 : NavierStokesStressIPHDGAssemblyHelper::scalarFace() 74 : { 75 11196588 : DiffusionIPHDGAssemblyHelper::scalarFace(); 76 : 77 56019540 : for (const auto i : index_range(_scalar_re)) 78 156925440 : for (const auto qp : make_range(_ip_qrule_face->n_points())) 79 224204976 : _scalar_re(i) += _ip_JxW_face[qp] * _pressure_face_sol[qp] * _ip_normals[qp](_component) * 80 224204976 : _scalar_phi_face[i][qp]; 81 11196588 : } 82 : 83 : void 84 175760 : NavierStokesStressIPHDGAssemblyHelper::scalarDirichlet(const Moose::Functor<Real> & dirichlet_value) 85 : { 86 175760 : DiffusionIPHDGAssemblyHelper::scalarDirichlet(dirichlet_value); 87 : 88 1009124 : for (const auto i : index_range(_scalar_re)) 89 3108996 : for (const auto qp : make_range(_ip_qrule_face->n_points())) 90 4551264 : _scalar_re(i) += _ip_JxW_face[qp] * _pressure_face_sol[qp] * _ip_normals[qp](_component) * 91 4551264 : _scalar_phi_face[i][qp]; 92 175760 : } 93 : 94 : void 95 11196588 : NavierStokesStressIPHDGAssemblyHelper::lmFace() 96 : { 97 11196588 : DiffusionIPHDGAssemblyHelper::lmFace(); 98 : 99 89609304 : for (const auto i : index_range(_lm_re)) 100 268918128 : for (const auto qp : make_range(_ip_qrule_face->n_points())) 101 381010824 : _lm_re(i) -= _ip_JxW_face[qp] * _pressure_face_sol[qp] * _ip_normals[qp](_component) * 102 381010824 : _lm_phi_face[i][qp]; 103 11196588 : }