21 "Name of volume junction component on which to apply flux");
23 "Direction vector pointing from the junction to the " 24 "coupled volume. This vector will be normalized.");
28 "If provided, transfers occur with this MultiApp. The following would be transferred: mass " 29 "flow rate, energy flow rate, temperature, and pressure at the junction.");
30 params.
addRequiredParam<std::string>(
"pp_suffix",
"Suffix to append to post-processor names");
33 "Applies a flux between a VolumeJunction1Phase component and an external application.");
40 _volume_junction_name(getParam<
std::string>(
"volume_junction")),
41 _normal_from_junction_unnormalized(getParam<
RealVectorValue>(
"normal_from_junction")),
42 _normal_from_junction(_normal_from_junction_unnormalized.unit()),
43 _pp_suffix(getParam<
std::string>(
"pp_suffix"))
56 const std::vector<NonlinearVariableName>
vars = {
"rhoV",
"rhouV",
"rhovV",
"rhowV",
"rhoEV"};
60 const std::vector<std::string> equations = {
"mass",
"energy"};
68 const std::vector<std::string> properties = {
"p",
"T"};
80 const auto & volume_junction =
83 const std::string class_name =
"VolumeJunctionCoupledFlux1PhaseKernel";
85 params.
set<NonlinearVariableName>(
"variable") = var;
87 params.
set<
unsigned int>(
"equation_index") = i;
90 params.
set<
Real>(
"A_coupled") = getParam<Real>(
"A_coupled");
92 params.
set<UserObjectName>(
"volume_junction_uo") =
93 volume_junction.getVolumeJunctionUserObjectName();
94 params.
set<UserObjectName>(
"numerical_flux_uo") = volume_junction.getNumericalFluxName(0);
95 params.
set<UserObjectName>(
"fluid_properties") = volume_junction.getFluidPropertiesName();
96 const std::string obj_name =
genName(
name(), var +
"_kernel");
103 const auto & volume_junction =
106 const std::string quantity = equation +
"_rate";
107 const std::string class_name =
"VolumeJunctionCoupledFlux1PhasePostprocessor";
112 params.
set<
Real>(
"A_coupled") = getParam<Real>(
"A_coupled");
114 params.
set<UserObjectName>(
"volume_junction_uo") =
115 volume_junction.getVolumeJunctionUserObjectName();
116 params.
set<UserObjectName>(
"numerical_flux_uo") = volume_junction.getNumericalFluxName(0);
117 params.
set<UserObjectName>(
"fluid_properties") = volume_junction.getFluidPropertiesName();
125 const std::string class_name =
"Receiver";
134 const std::string quantity = equation +
"_rate";
135 const std::string class_name =
"MultiAppPostprocessorTransfer";
137 params.
set<MultiAppName>(
"to_multi_app") = getParam<MultiAppName>(
"multi_app");
141 const PostprocessorName obj_name =
genName(
name(), quantity +
"_transfer");
148 const std::string class_name =
"MultiAppPostprocessorTransfer";
150 params.
set<MultiAppName>(
"from_multi_app") = getParam<MultiAppName>(
"multi_app");
155 const PostprocessorName obj_name =
genName(
name(), property +
"_transfer");
virtual void addTransfer(const std::string &transfer_name, const std::string &name, InputParameters ¶meters)
void addVolumeJunctionKernel(const std::string &var, unsigned int i)
Adds a VolumeJunctionCoupledFlux1PhaseKernel.
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.
void addFluxPostprocessor(const std::string &equation)
Adds a VolumeJunctionCoupledFlux1PhasePostprocessor.
void addPropertyTransfer(const std::string &property)
Adds a MultiAppPostprocessorTransfer to get a property.
THMProblem & getTHMProblem() const
Gets the THM problem.
void addPropertyPostprocessor(const std::string &property)
Adds a Receiver post-processor.
InputParameters getValidParams(const std::string &name) const
const RealVectorValue _normal_from_junction
Normalized normal vector from junction.
const ExecFlagType EXEC_TIMESTEP_END
virtual void addKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
static InputParameters validParams()
VolumeJunctionCoupledFlux1Phase(const InputParameters ¶ms)
virtual void addPostprocessor(const std::string &pp_name, const std::string &name, InputParameters ¶meters)
const std::string & name() const
static InputParameters validParams()
Applies a flux between a VolumeJunction1Phase component and an external application.
virtual void addMooseObjects() override
virtual void check() const override
Check the component integrity.
const std::string & _volume_junction_name
Volume junction name.
const T & getComponentByName(const std::string &name) const
Get component by its name.
Base class for THM components.
registerMooseObject("ThermalHydraulicsApp", VolumeJunctionCoupledFlux1Phase)
PostprocessorName addPostprocessorSuffix(const std::string &base_name) const
Returns the input with the post-processor suffix.
Junction between 1-phase flow channels that has a non-zero volume.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addFluxTransfer(const std::string &equation)
Adds a MultiAppPostprocessorTransfer for a flux PP.
Factory & _factory
The Factory associated with the MooseApp.
bool isParamValid(const std::string &name) const
auto index_range(const T &sizable)
const std::string & _pp_suffix
Suffix to append to post-processor names.
const ExecFlagType EXEC_INITIAL