https://mooseframework.inl.gov
Loading...
Searching...
No Matches
JunctionParallelChannels1Phase.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
12
14
17{
19
20 params.addClassDescription("Junction between 1-phase flow channels that are parallel");
21
22 return params;
23}
24
29
30void
32{
35
36 {
37 const std::string class_name = "ADJunctionParallelChannels1PhaseUserObject";
38 InputParameters params = _factory.getValidParams(class_name);
39 params.set<bool>("use_scalar_variables") = false;
40 params.set<subdomain_id_type>("junction_subdomain_id") = _junction_subdomain_id;
41 params.set<std::vector<BoundaryName>>("boundary") = _boundary_names;
42 params.set<std::vector<Real>>("normals") = _normals;
43 params.set<std::vector<processor_id_type>>("processor_ids") = getConnectedProcessorIDs();
44 params.set<std::vector<UserObjectName>>("numerical_flux_names") = _numerical_flux_names;
45 params.set<Real>("volume") = _volume;
46 params.set<std::string>("component_name") = name();
47 params.set<std::vector<VariableName>>("A") = {FlowModel::AREA};
48 params.set<std::vector<VariableName>>("rhoA") = {FlowModelSinglePhase::RHOA};
49 params.set<std::vector<VariableName>>("rhouA") = {FlowModelSinglePhase::RHOUA};
50 params.set<std::vector<VariableName>>("rhoEA") = {FlowModelSinglePhase::RHOEA};
51 params.set<std::vector<VariableName>>("rhoV") = {_rhoV_var_name};
52 params.set<std::vector<VariableName>>("rhouV") = {_rhouV_var_name};
53 params.set<std::vector<VariableName>>("rhovV") = {_rhovV_var_name};
54 params.set<std::vector<VariableName>>("rhowV") = {_rhowV_var_name};
55 params.set<std::vector<VariableName>>("rhoEV") = {_rhoEV_var_name};
56 params.set<RealVectorValue>("dir_c0") = _directions[0];
57 params.set<Real>("K") = _K;
58 params.set<Real>("A_ref") = _A_ref;
59 params.set<UserObjectName>("fp") = _fp_name;
60 params.set<bool>("apply_velocity_scaling") = getParam<bool>("apply_velocity_scaling");
61 params.set<ExecFlagEnum>("execute_on") = execute_on;
62 getTHMProblem().addUserObject(class_name, _junction_uo_name, params);
63 connectObject(params, _junction_uo_name, "K");
64 }
65}
registerMooseObject("ThermalHydraulicsApp", JunctionParallelChannels1Phase)
const ExecFlagType EXEC_INITIAL
const ExecFlagType EXEC_LINEAR
const ExecFlagType EXEC_NONLINEAR
const std::string name
Definition Setup.h:21
std::vector< Real > _normals
Outward normals associated with connected components.
std::vector< RealVectorValue > _directions
Directions of 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 addClassDescription(const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
Junction between 1-phase flow channels that are parallel.
JunctionParallelChannels1Phase(const InputParameters &params)
virtual void buildVolumeJunctionUserObject() override
Builds user object for computing and storing the fluxes.
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 Real & _K
Form loss coefficient.
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
const Real & _A_ref
Reference area.
ExecFlagEnum getDefaultExecFlagEnum()