https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Pump1Phase.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#include "Pump1Phase.h"
13#include "Function.h"
14#include "Numerics.h"
15
16registerMooseObject("ThermalHydraulicsApp", Pump1Phase);
17
20{
22
23 params.addRequiredParam<Real>("head", "Pump head [m]");
24 params.makeParamRequired<Real>("A_ref");
25
26 params.declareControllable("head");
27
28 params.addClassDescription("Pump between two 1-phase flow channels that has a non-zero volume");
29
30 return params;
31}
32
34 : VolumeJunction1Phase(params), _head(getParam<Real>("head"))
35{
36}
37
38void
40{
43
44 {
45 const std::string class_name = "ADPump1PhaseUserObject";
46 InputParameters params = _factory.getValidParams(class_name);
47 params.set<bool>("use_scalar_variables") = false;
48 params.set<subdomain_id_type>("junction_subdomain_id") = _junction_subdomain_id;
49 params.set<std::vector<BoundaryName>>("boundary") = _boundary_names;
50 params.set<std::vector<Real>>("normals") = _normals;
51 params.set<std::vector<processor_id_type>>("processor_ids") = getConnectedProcessorIDs();
52 params.set<std::vector<UserObjectName>>("numerical_flux_names") = _numerical_flux_names;
53 params.set<Real>("volume") = _volume;
54 params.set<std::vector<VariableName>>("A") = {FlowModel::AREA};
55 params.set<std::vector<VariableName>>("rhoA") = {FlowModelSinglePhase::RHOA};
56 params.set<std::vector<VariableName>>("rhouA") = {FlowModelSinglePhase::RHOUA};
57 params.set<std::vector<VariableName>>("rhoEA") = {FlowModelSinglePhase::RHOEA};
58 params.set<std::vector<VariableName>>("rhoV") = {_rhoV_var_name};
59 params.set<std::vector<VariableName>>("rhouV") = {_rhouV_var_name};
60 params.set<std::vector<VariableName>>("rhovV") = {_rhovV_var_name};
61 params.set<std::vector<VariableName>>("rhowV") = {_rhowV_var_name};
62 params.set<std::vector<VariableName>>("rhoEV") = {_rhoEV_var_name};
63 params.set<Real>("head") = _head;
64 params.set<Real>("gravity_magnitude") = THM::gravity_const;
65 params.set<Real>("A_ref") = getParam<Real>("A_ref");
66 params.set<Real>("K") = getParam<Real>("K");
67 params.set<UserObjectName>("fp") = _fp_name;
68 params.set<bool>("apply_velocity_scaling") = getParam<bool>("apply_velocity_scaling");
69 params.set<ExecFlagEnum>("execute_on") = execute_on;
70 getTHMProblem().addUserObject(class_name, _junction_uo_name, params);
71 connectObject(params, _junction_uo_name, "head");
72 }
73}
const ExecFlagType EXEC_INITIAL
const ExecFlagType EXEC_LINEAR
const ExecFlagType EXEC_NONLINEAR
registerMooseObject("ThermalHydraulicsApp", Pump1Phase)
std::vector< Real > _normals
Outward normals associated with connected components.
std::vector< BoundaryName > _boundary_names
Boundary names of connected components.
const std::vector< processor_id_type > & getConnectedProcessorIDs()
Gets the processor IDs of the connected 1D components.
subdomain_id_type _junction_subdomain_id
Junction subdomain ID.
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition Component.C:135
Factory & _factory
The Factory associated with the MooseApp.
Definition Component.h:497
void connectObject(const InputParameters &obj_params, const std::string &obj_name, const std::string &param) const
Connects a controllable parameter of the component to a controllable parameter of a constituent objec...
Definition Component.C:98
virtual std::vector< std::shared_ptr< UserObject > > addUserObject(const std::string &user_object_name, const std::string &name, InputParameters &parameters)
InputParameters getValidParams(const std::string &name) const
std::vector< UserObjectName > _numerical_flux_names
const std::string _junction_uo_name
Name of junction user object name, if any.
UserObjectName _fp_name
Fluid property user object name.
static const std::string RHOUA
static const std::string RHOA
static const std::string RHOEA
static const std::string AREA
Definition FlowModel.h:102
void declareControllable(const std::string &name, std::set< ExecFlagType > execute_flags={})
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
void makeParamRequired(const std::string &name)
Pump between 1-phase flow channels that has a non-zero volume.
Definition Pump1Phase.h:18
static InputParameters validParams()
Definition Pump1Phase.C:19
Pump1Phase(const InputParameters &params)
Definition Pump1Phase.C:33
virtual void buildVolumeJunctionUserObject() override
Builds user object for computing and storing the fluxes.
Definition Pump1Phase.C:39
const Real & _head
Pump head [m].
Definition Pump1Phase.h:26
Junction between 1-phase flow channels that has a non-zero volume.
const VariableName _rhovV_var_name
rho*v*V variable name for junction
const Real _volume
Volume of the junction.
const VariableName _rhoEV_var_name
rho*E*V variable name for junction
const VariableName _rhoV_var_name
rho*V variable name for junction
static InputParameters validParams()
const VariableName _rhowV_var_name
rho*w*V variable name for junction
const VariableName _rhouV_var_name
rho*u*V variable name for junction
ExecFlagEnum getDefaultExecFlagEnum()
static const Real gravity_const
Definition Numerics.h:26