ProductionWell

This ActionComponent creates a production well, composed of the following components:

The user provides the surface point via "surface_point", the junction points with "junction_points", and then an optional end point with "end_point" (if omitted, there is no channel after the last junction).

If "multi_app" is provided, it is passed to VolumeJunctionCoupledFlux1Phase (see its documentation for more information).

The flow channels use Closures1PhaseSimple with the friction factor provided by "friction_factor".

The outlet pressure is specified by "outlet_pressure".

Input Parameters

  • areaCross-sectional flow area function of the well [m^2]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Cross-sectional flow area function of the well [m^2]

  • fluid_propertiesFluid properties object

    C++ Type:UserObjectName

    Controllable:No

    Description:Fluid properties object

  • fracture_directionDirection to fracture

    C++ Type:libMesh::VectorValue<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Direction to fracture

  • initial_pressureInitial pressure function [Pa]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial pressure function [Pa]

  • initial_temperatureInitial temperature function [K]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial temperature function [K]

  • junction_coupling_areasFlow surface area for each junction point [m^2]

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Flow surface area for each junction point [m^2]

  • junction_pointsJunction points [m]

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

    Controllable:No

    Description:Junction points [m]

  • junction_volumeVolume of each junction [m^3]

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Volume of each junction [m^3]

  • outlet_pressureOutlet pressure function [Pa]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Outlet pressure function [Pa]

  • section_n_elemsNumber of elements in each well section

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Number of elements in each well section

  • surface_pointSurface point [m]

    C++ Type:libMesh::Point

    Controllable:No

    Description:Surface point [m]

Required Parameters

  • end_pointEnd point [m]. If not provided, the well ends at the final volume junction

    C++ Type:libMesh::Point

    Controllable:No

    Description:End point [m]. If not provided, the well ends at the final volume junction

  • friction_factor0.0Darcy friction factor function

    Default:0.0

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Darcy friction factor function

  • multi_appIf provided, transfers occur with this MultiApp. The following would be transferred: mass flow rate, energy flow rate, temperature, and pressure at each junction.

    C++ Type:MultiAppName

    Controllable:No

    Description:If provided, transfers occur with this MultiApp. The following would be transferred: mass flow rate, energy flow rate, temperature, and pressure at each junction.

  • verboseFalseWhether the component setup should be verbose

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether the component setup should be verbose

Optional Parameters

  • 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.

Advanced Parameters