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