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 "PorousFlowSinkBC.h" 11 : 12 : registerMooseObject("PorousFlowApp", PorousFlowSinkBC); 13 : 14 : InputParameters 15 224 : PorousFlowSinkBC::validParamsCommon() 16 : { 17 224 : InputParameters params = emptyInputParameters(); 18 448 : params.addCoupledVar("porepressure_var", "Name of the porepressure variable"); 19 448 : params.addParam<unsigned int>("fluid_phase", 20 : "Evaluate enthalpy at the pressure of this fluid phase."); 21 448 : params.addRequiredParam<UserObjectName>("fp", "The name of the user object for fluid properties"); 22 448 : params.addRequiredParam<Real>("T_in", "Specified inlet temperature (measured in K)"); 23 448 : params.addRequiredParam<FunctionName>( 24 : "flux_function", 25 : "The flux. The flux is OUT of the medium: hence positive values of " 26 : "this function means this BC will act as a SINK, while negative values " 27 : "indicate this flux will be a SOURCE. However, this BC only makes physical sense if " 28 : "flux_function <= 0. This function is measured in kg.m^-2.s^-1."); 29 224 : return params; 30 0 : } 31 : 32 : InputParameters 33 34 : PorousFlowSinkBC::validParams() 34 : { 35 34 : InputParameters params = MooseObject::validParams(); 36 34 : params += PorousFlowSinkBC::validParamsCommon(); 37 68 : params.addRequiredParam<std::vector<BoundaryName>>( 38 : "boundary", "The list of boundary IDs from the mesh where this boundary condition applies"); 39 68 : params.addRequiredParam<UserObjectName>( 40 : "PorousFlowDictator", "The UserObject that holds the list of PorousFlow variable names"); 41 : 42 34 : params.addClassDescription( 43 : "BC corresponding to hot/cold fluid injection. This BC is only valid for " 44 : "single-phase, non-isothermal simulations using (P, T) variables. This BC adds fluid mass " 45 : "and heat energy. It is only meaningful if flux_function <= 0"); 46 : 47 34 : params.registerBase("PorousFlowSinkBC"); 48 : 49 34 : return params; 50 0 : } 51 : 52 0 : PorousFlowSinkBC::PorousFlowSinkBC(const InputParameters & parameters) : MooseObject(parameters) {}