22 params.
addRequiredParam<std::vector<Point>>(
"injection_points",
"List of injection points [m]");
23 params.
addRequiredParam<std::vector<Point>>(
"production_points",
"List of production points [m]");
24 params.
addParam<MultiAppName>(
"multi_app",
"MultiApp to transfer to and from");
27 "Adds objects to perform hydrodynamic coupling at injection and production points.");
35 _injection_points(getParam<
std::vector<Point>>(
"injection_points")),
36 _production_points(getParam<
std::vector<Point>>(
"production_points"))
42 _labels.push_back(
"inj" + std::to_string(i + 1));
44 _labels.push_back(
"pro" + std::to_string(i + 1));
84 const NonlinearVariableName & var,
85 const PostprocessorName & pp_name)
87 const std::string class_name =
"PorousFlowPointSourceFromPostprocessor";
89 params.
set<NonlinearVariableName>(
"variable") = var;
90 params.set<Point>(
"point") = point;
91 params.set<PostprocessorName>(
"mass_flux") = pp_name;
98 const std::string class_name =
"Receiver";
106 const PostprocessorName & pp_name)
108 const std::string class_name =
"PointValue";
110 params.
set<VariableName>(
"variable") = var;
111 params.set<Point>(
"point") = point;
120 const std::string class_name =
"MultiAppPostprocessorTransfer";
123 params.
set<MultiAppName>(
"from_multi_app") = getParam<MultiAppName>(
"multi_app");
125 params.set<MultiAppName>(
"to_multi_app") = getParam<MultiAppName>(
"multi_app");
126 params.set<PostprocessorName>(
"from_postprocessor") = pp_name;
127 params.set<PostprocessorName>(
"to_postprocessor") = pp_name;
128 params.set<
MooseEnum>(
"reduction_type") =
"average";
std::vector< std::string > _labels
Label for each point.
virtual void addTransfer(const std::string &transfer_name, const std::string &name, InputParameters ¶meters)
const std::vector< Point > & _injection_points
Injection points.
CoupledInjectionProductionPhysics(const InputParameters ¶meters)
InputParameters getValidParams(const std::string &name) const
const ExecFlagType EXEC_TIMESTEP_END
void addDiracKernels() override
Adds objects to perform hydrodynamic coupling at injection and production points. ...
void addPointValuePostprocessor(const VariableName &var, const Point &point, const PostprocessorName &pp_name)
Adds a PointValue.
void addReceiverPostprocessor(const PostprocessorName &pp_name)
Adds a Receiver.
virtual FEProblemBase & getProblem()
virtual void addPostprocessor(const std::string &pp_name, const std::string &name, InputParameters ¶meters)
static InputParameters validParams()
void addPostprocessorTransfer(const PostprocessorName &pp_name, bool from_multi_app)
Adds a MultiAppPostprocessorTransfer.
std::vector< Point > _points
Injection and production points.
registerPhysicsBaseTasks("PorousFlowApp", CoupledInjectionProductionPhysics)
const std::vector< Point > & _production_points
Production points.
void addPPSourceDiracKernel(const Point &point, const NonlinearVariableName &var, const PostprocessorName &pp_name)
Adds a PorousFlowPointSourceFromPostprocessor.
static InputParameters validParams()
void addTransfers() override
bool isParamValid(const std::string &name) const
void addPostprocessors() override
registerMooseAction("PorousFlowApp", CoupledInjectionProductionPhysics, "add_dirac_kernel")
auto index_range(const T &sizable)
virtual void addDiracKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
const ExecFlagType EXEC_INITIAL