CoupledInjectionProduction

This Physics object adds dirac kernels for mass and energy sources at injection and production points within a porous matrix, where the sources are provided by post-processor values transferred from another application.

This object creates the following post-processors:

  • p_inj1, ..., p_inj<n_inj>: Pressure at each injection point, via PointValue.

  • T_inj1, ..., T_inj<n_inj>: Temperature at each injection point, via PointValue.

  • p_pro1, ..., p_pro<n_pro>: Pressure at each production point, via PointValue.

  • T_pro1, ..., T_pro<n_pro>: Temperature at each production point, via PointValue.

  • mass_rate_inj1, ..., mass_rate_inj<n_inj>: Mass source rate at each injection point, to be transferred from the other application using Receiver.

  • energy_rate_inj1, ..., energy_rate_inj<n_inj>: Energy source rate at each injection point, to be transferred from the other application using Receiver.

  • mass_rate_pro1, ..., mass_rate_pro<n_pro>: Mass source rate at each production point, to be transferred from the other application using Receiver.

  • energy_rate_pro1, ..., energy_rate_pro<n_pro>: Energy source rate at each production point, to be transferred from the other application using Receiver.

n_inj is the size of the "injection_points" parameter, and n_pro is the size of the "production_points" parameter.

If the parameter "multi_app" is provided, then the porous flow app is the main application, and MultiAppPostprocessorTransfer objects are created by this object to transfer the post-processors listed above to the sub application; if the parameter is not provided, then the other application is responsible for creating the transfers.

PorousFlowPointSourceFromPostprocessor dirac kernels are added for each injection and production point, using the mass_rate_* and energy_rate_* post-processors listed above.

Input Parameters

  • injection_pointsList of injection points [m]

    C++ Type:std::vector<libMesh::Point>

    Controllable:No

    Description:List of injection points [m]

  • production_pointsList of production points [m]

    C++ Type:std::vector<libMesh::Point>

    Controllable:No

    Description:List of production points [m]

Required Parameters

  • blockBlocks (subdomains) that this Physics is active on.

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:Blocks (subdomains) that this Physics is active on.

  • multi_appMultiApp to transfer to and from

    C++ Type:MultiAppName

    Controllable:No

    Description:MultiApp to transfer to and from

  • transientsame_as_problemWhether the physics is to be solved as a transient

    Default:same_as_problem

    C++ Type:MooseEnum

    Options:true, false, same_as_problem

    Controllable:No

    Description:Whether the physics is to be solved as a transient

  • verboseFalseFlag to facilitate debugging a Physics

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Flag to facilitate debugging a Physics

Optional Parameters

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified only the blocks named will be visited and made active

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified blocks matching these identifiers will be skipped.

Advanced Parameters

  • dont_create_aux_kernelsFalseWhether to skip the 'add_aux_kernel' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_aux_kernel' task

  • dont_create_aux_variablesFalseWhether to skip the 'add_aux_variable' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_aux_variable' task

  • dont_create_bcsFalseWhether to skip the 'add_bc' task for each boundary condition type

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_bc' task for each boundary condition type

  • dont_create_correctorsFalseWhether to skip the 'add_correctors' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_correctors' task

  • dont_create_functionsFalseWhether to skip the 'add_function' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_function' task

  • dont_create_icsFalseWhether to skip the 'add_ic'/'add_fv_ic/add_ics_physics' task(s)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_ic'/'add_fv_ic/add_ics_physics' task(s)

  • dont_create_kernelsFalseWhether to skip the 'add_kernel' task for each kernel type

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_kernel' task for each kernel type

  • dont_create_materialsFalseWhether to skip the 'add_material'/'add_materials_physics' task(s) for each material type

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_material'/'add_materials_physics' task(s) for each material type

  • dont_create_postprocessorsFalseWhether to skip the 'add_postprocessors' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_postprocessors' task

  • dont_create_solver_variablesFalseWhether to skip the 'add_variable'/'add_variables_physics' task(s)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_variable'/'add_variables_physics' task(s)

  • dont_create_user_objectsFalseWhether to skip the 'add_user_object' task. This does not apply to UserObject derived classes being created on a different task (for example: postprocessors, VPPs, correctors)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_user_object' task. This does not apply to UserObject derived classes being created on a different task (for example: postprocessors, VPPs, correctors)

  • dont_create_vectorpostprocessorsFalseWhether to skip the 'add_vectorpostprocessors' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_vectorpostprocessors' task

Reduce Physics Object Creation Parameters

  • initial_from_file_timestepLATESTGives the time step number (or "LATEST") for which to read the Exodus solution

    Default:LATEST

    C++ Type:std::string

    Controllable:No

    Description:Gives the time step number (or "LATEST") for which to read the Exodus solution

  • initialize_variables_from_mesh_fileFalseDetermines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Determines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)

Restart From Exodus Parameters

  • preconditioningdeferWhich preconditioning to use/add for this Physics, or whether to defer to the Preconditioning block, or another Physics

    Default:defer

    C++ Type:MooseEnum

    Options:default, defer

    Controllable:No

    Description:Which preconditioning to use/add for this Physics, or whether to defer to the Preconditioning block, or another Physics

  • system_namesnl0 Name of the solver system(s) for the variables. If a single name is specified, that system is used for all solver variables.

    Default:nl0

    C++ Type:std::vector<SolverSystemName>

    Controllable:No

    Description:Name of the solver system(s) for the variables. If a single name is specified, that system is used for all solver variables.

Numerical Scheme Parameters