Back to Input Deck Cards
Back to SUBSURFACE_FLOW
Back to MODE
WELL_MODEL¶
Defines options for the Well Model.
SIMULATION Options¶
(under SUBSURFACE_FLOW in SIMULATION PROCESS_MODELS block)
- FLOW_COUPLING
- Options:
- FULLY_IMPLICIT
Well model is embedded in the flow Jacobian/residual and fully implicitly coupled.
- QUASI_IMPLICIT
Well model is run during the source/sink calculation for the flow mode, but well primary variables are not solved fully implicitly with the flow mode.
- SEQUENTIAL
Well model is run after flow, as a child process model.
- TYPE
- Options:
- HYDROSTATIC
Well model solves for bottom-hole pressure as a primary variable, and all well segment pressures are computed directly from the bottom-hole pressure through a hydrostatic calculation.
- WIPP_DARCY
Darcy flow is solved throughout the well.
- CLOSED_LOOP_U_SHAPE
Closed-loop heat exchanger (TH mode) in which fluid enters the pipe at one end, circulates along the well trajectory, and exits at the other end. The pipe is closed to the reservoir; only heat is exchanged.
WELLBORE_MODEL¶
(within SUBSURFACE block)
Required Cards:¶
- WELLBORE_MODEL <name>
Specifies the name of the wellbore model and opens the block.
- WELL_GRID
Opens the well grid card. The following is a list of all possible options to specify the well grid. Not all are necessary.
- MATCH_RESERVOIR
Match well segment centers with reservoir cell centers. Can be used instead of NUMBER_OF_SEGMENTS
- NUMBER_OF_SEGMENTS
Number of well segments. Used in conjunction with TOP_OF_HOLE and BOTTOM_OF_HOLE to draw a vertical wellbore.
- TOP_OF_HOLE <float> <float> <float>
<x,y,z> coordinate of the top of the well
- BOTTOM_OF_HOLE <float> <float> <float>
<x,y,z> coordinate of the bottom of the well
- CASING <float>
0 = uncased, 1 = cased
- WELL_TRAJECTORY
Opens the WELL_TRAJECTORY block. This can be used instead of the combination <NUMBER_OF_SEGMENTS, TOP_OF_HOLE, BOTTOM_OF_HOLE> to model a flexible well trajectory. Keywords within the WELL_TRAJECTORY block are read sequentially: sequence matters. Currently, the method used to draw a flexible well trajectory is slow for large problems. A better algorithm is in development.
- SURFACE_ORIGIN <float> <float> <float>
<x,y,z> coordinate of the top of the well. This keyword must come first in the WELL_TRAJECTORY block. After SURFACE_ORIGIN, an arbitrary number of the following keywords can be read.
- SEGMENT_DXYZ <CASED/UNCASED> <float> <float> <float>
When constructing the well, the <dx,dy,dz> of the line segment along which to move from the current location. By default, negative is downward in the vertical dimension. For example, if this comes after the SURFACE_ORIGIN keyword, the well will extend <dx,dy,dz> from the SURFACE_ORIGIN. Keyword CASED or UNCASED is required.
- SEGMENT_RADIUS_TO_HORIZONTAL_X <CASED/UNCASED> <float>
Radius (m) with which to kick off to horizontal from the current location to horizontal in the x-direction. For example, if this comes after the SEGMENT_DXYZ keyword, the well will curve to horizontal starting where SEGMENT_DXYZ ended.
- SEGMENT_RADIUS_TO_HORIZONTAL_X <CASED/UNCASED> <float>
Radius (m) with which to kick off to horizontal from the current location to horizontal in the y-direction. For example, if this comes after the SEGMENT_DXYZ keyword, the well will curve to horizontal starting where SEGMENT_DXYZ ended.
- SEGMENT_RADIUS_TO_HORIZONTAL_ANGLE <CASED/UNCASED> <float> <float>
Radius (m) with which to kick off to horizontal from the current location to horizontal at an angle between the x- and y-axes. For example, if this comes after the SEGMENT_DXYZ keyword, the well will curve to horizontal starting where SEGMENT_DXYZ ended.
- WELL
Opens the WELL block, to specify properties of the well itself.
- DIAMETER <float>
well diameter
- FRICTION_COEFFICIENT <float>
A friction coefficient of 1.0 adds no friction effects to wellbore fluxes.
- SKIN <float>
A skin factor of 0 adds no skin effects to the well fluxes.
- WELL_INDEX_MODEL <keyword string>
- PEACEMAN_ISO
A traditional Peaceman equation, most applicable for modeling one horizontal dimension.
- PEACEMAN_2D
A 2D extension of the Peaceman equation, most applicable for a vertical wellbore in a 3D structured domain.
- PEACEMAN_3D
A 3D generalized Peaceman relationship for a well of arbitrary orientation in a 3D grid.
The following keywords apply only to the CLOSED_LOOP_U_SHAPE well type:
- INLET_TEMPERATURE <float>
Temperature of the fluid entering the pipe [C]. Required.
- PIPE_INNER_DIAMETER <float>
Inner diameter of the pipe [m]. Required.
- PIPE_MASS_FLOW_RATE <float> <optional units>
Mass flow rate of the circulating fluid [kg/s]. Required and must be non-negative. The mass flow rate is constant along the pipe, so mass and energy are conserved as the fluid density changes with temperature. The mean fluid velocity used in the Reynolds number is computed locally from the mass flow rate, the local fluid density, and the pipe cross-sectional area. This keyword replaces the obsolete PIPE_FLOW_VELOCITY keyword, which is no longer supported.
- PIPE_WALL_THICKNESS <float>
Thickness of the pipe wall [m]. Must be specified together with PIPE_WALL_THERMAL_CONDUCTIVITY.
- PIPE_WALL_THERMAL_CONDUCTIVITY <float> <optional units>
Thermal conductivity of the pipe wall [W/m-C]. Must be specified together with PIPE_WALL_THICKNESS.
- INSULATOR_THICKNESS <float>
Thickness of insulation surrounding the pipe wall [m]. Must be specified together with INSULATOR_THERMAL_CONDUCTIVITY.
- INSULATOR_THERMAL_CONDUCTIVITY <float> <optional units>
Thermal conductivity of the insulation [W/m-C]. Must be specified together with INSULATOR_THICKNESS.
- USE_WELL_INDEX
Include a Peaceman-type thermal well index (based on the reservoir thermal conductivity and grid cell dimensions) as an additional thermal resistance between the pipe and the reservoir cell.
- NUSSELT_MODE <keyword string>
Correlation for the Nusselt number used to compute the convective heat transfer coefficient within the pipe. Default is ZHANG_2015.
- ZHANG_2015
Turbulent correlation of Zhang et al. (2015), Nu = 8.7e-5 Re^0.92 Pr^1.89, for Re > 2300; NUSSELT_LAMINAR otherwise.
- LAMINAR
Constant laminar Nusselt number (see NUSSELT_LAMINAR).
- CHEN_2021
Gnielinski-type turbulent correlation for Re > 10000, NUSSELT_LAMINAR for Re < 2300, and linear interpolation between. Supports the optional entrance correction.
- NUSSELT_LAMINAR <float>
Laminar Nusselt number. Default is 4.36.
- USE_NUSSELT_ENTRANCE_FACTOR
Apply the entrance correction 1 + (r/NUSSELT_Z_REF)^(2/3) to the turbulent Nusselt number, where r is the inner pipe radius (CHEN_2021 only).
- NUSSELT_Z_REF <float>
Reference length used in the Nusselt entrance correction [m]. Default is 1.
- WELL_BOUNDARY_CONDITIONS
Opens the WELL_BOUNDARY_CONDITIONS block, for directly specifying well conditions. This is an expert feature. For most users, it is recommended to use the USE_WELL_COUPLER keyword instead.
- USE_WELL_COUPLER
Links the well model to a WELL_COUPLER.
WELL_COUPLER¶
(within SUBSURFACE block)
This card links a particular FLOW_CONDITION and TRANSPORT_CONDITION to the appropriate WELL Model to define a well coupler. It is set up similar to the INITIAL_CONDITION card, by first creating a list of flow and/or transport conditions, and then applying them to appropriate WELLs using this card.
Required Cards:¶
- WELL_COUPLER <optional string>
Opens the WELL_COUPLER block, labeling it with the <optional string>. The label is useful for output purposes.
- FLOW_CONDITION <string>
Name of the associated FLOW_CONDITION
- TRANSPORT_CONDITION <string>
Name of the associated TRANSPORT_CONDITION
- WELL <string>
Name of the associated WELL Model
Examples¶
WELL_COUPLER well1
FLOW_CONDITION injection_well_1
WELL well1
/
WELL_COUPLER well
FLOW_CONDITION Injection
TRANSPORT_CONDITION background
WELL well1
/
WELL_MODEL_OUTPUT¶
(within SUBSURFACE block) Opens a block to insert certain well model information into the output files for the flow mode.
- WELL_LIQ_PRESSURE
Liquid (aqueous) pressure in the well
- WELL_GAS_PRESSURE
Gas pressure in the well
- WELL_LIQ_Q
Liquid flow rate at each segment in the well. Negative is out of the well (into the reservoir).
- WELL_GAS_Q
Gas flow rate at each segment in the well. Negative is out of the well (into the reservoir).
Examples¶
SIMULATION
SIMULATION_TYPE SUBSURFACE
PROCESS_MODELS
SUBSURFACE_FLOW flow
MODE SCO2
END
WELL_MODEL well
OPTIONS
FLOW_COUPLING FULLY_IMPLICIT
TYPE HYDROSTATIC
END
END
END
END
...
WELLBORE_MODEL well1
WELL_GRID
NUMBER_OF_SEGMENTS 4
WELL_TRAJECTORY
# Must start from SURFACE_ORIGIN and proceed sequentially.
# Will populate 1 well segment per reservoir cell occupied
# Must specify if each segment is CASED or UNCASED
SURFACE_ORIGIN 15.d0 5.d0 2.d2
SEGMENT_DXYZ CASED 0.d0 0.d0 -149.d0
SEGMENT_DXYZ UNCASED 0.d0 0.d0 -51.d0
/
/
WELL
DIAMETER 0.16d0
FRICTION_COEFFICIENT 1.d0
SKIN_FACTOR 0.d0
WELL_INDEX_MODEL PEACEMAN_3D
/
USE_WELL_COUPLER
END
WELLBORE_MODEL well2
WELL_GRID
NUMBER_OF_SEGMENTS 4
WELL_TRAJECTORY
# Must start from SURFACE_ORIGIN and proceed sequentially.
# Will populate 1 well segment per reservoir cell occupied
# Must specify if each segment is CASED or UNCASED
SURFACE_ORIGIN 35.d0 5.d0 2.d2
SEGMENT_DXYZ CASED 0.d0 0.d0 -149.d0
SEGMENT_DXYZ UNCASED 0.d0 0.d0 -51.d0
/
/
WELL
DIAMETER 0.16d0
FRICTION_COEFFICIENT 1.d0
SKIN_FACTOR 0.d0
WELL_INDEX_MODEL PEACEMAN_3D
/
USE_WELL_COUPLER
END
...
WELL_COUPLER well1
FLOW_CONDITION injection_well_1
WELL well1
END
WELL_COUPLER well2
FLOW_CONDITION injection_well_2
WELL well2
END
...
Closed-loop U-shaped heat exchanger (TH mode):
SIMULATION
SIMULATION_TYPE SUBSURFACE
PROCESS_MODELS
SUBSURFACE_FLOW flow
MODE TH
/
WELL_MODEL well
TYPE CLOSED_LOOP_U_SHAPE
END
/
END
...
WELLBORE_MODEL well
WELL_GRID
WELL_TRAJECTORY
SURFACE_ORIGIN 1.5 0.5 9.
SEGMENT_DXYZ CASED 0. 0. -7.
SEGMENT_DXYZ UNCASED 2. 0. 0.
SEGMENT_DXYZ CASED 0. 0. 7.
/
/
WELL
INLET_TEMPERATURE 5. # [C]
PIPE_INNER_DIAMETER 0.1 # [m]
PIPE_WALL_THICKNESS 5.d-3 # [m]
PIPE_WALL_THERMAL_CONDUCTIVITY 40. W/m-C
PIPE_MASS_FLOW_RATE 1.818051d-4 kg/s
USE_WELL_INDEX
/
END