Case01 Base Case

 

The present example demonstrates the set up of a Material Earth Model (MEM) simulation encompassing the initialization which is performed in several stages followed by two production stages. Initial values for porosity and pore pressure are defined at element basis via Spatial_grid data structures. The simulation is geomechanical only with all changes in pore pressure being prescribed.

 

The data files for the project are in: MEM_001\Case01\Data. The data comprises:

1.geostatic.set: Settings file with pre-defined Geostatic_control_data sets that can be read from the main problem data file. Generally this file is stored in the PARAGEOHOME directory (directory of ParaGeo executable) and is provided here for reference. Note that if a copy of the file is also stored in the simulation directory this will take precedence over the copy stored in PARAGEOHOME directory.

2.MEM_001_Case01.dat: Main problem data file.

3.MEM_001_Case01.geo: Geometry and mesh for the problem.

4.MEM_001_Case01.geometry: Data file with definition of geometry sets and groups for the problem.

5.MEM_001_Case01.contact: Data file with definition of contact and fault data for the problem.

6.MEM_001.mat: Material file including Material_data for all lithologies.

7.MEM_001_Case01_Porosity.spat: File containing a Spatial_grid with the initial element porosity values for all formations.

8.MEM_001_Case01_PP_Initial.spat: File containing a Spatial_grid with the initial element pore pressure values for all formations.

9.MEM_001_Case01_PP_2021.spat: File containing a Spatial_grid with the element pore pressure values at the end of year 2021 for the reservoir formation.

10.MEM_001_Case01_PP_2022.spat: File containing a Spatial_grid with the element pore pressure values at the end of year 2022 for the reservoir formation.

 

 

The different simulation stages and the operations performed are described below.

 

 

Stage 1: Elastic Gravity Initialization

Gravity is ramped up during the duration of the stage.

Initial porosities for the formations are defined via a spatial grid with element values.

Materials are kept elastic.

Contact is kept elastic.

Horizontal stress increases as a function of vertical stress and Poisson's ratio.

Initial pore pressure distribution is defined via a spatial grid with element values.

Initial temperature distribution is defined according to a surface temperature and a temperature gradient.

 

 

Stage 2: Tectonic Displacement

A tectonic displacement load is applied in order to obtain the in-situ horizontal stress.

Materials are kept elastic.

Contact is kept elastic.

 

 

Stage 3: Contact Release

Materials are kept elastic.

Contact model is switched from "Elastic" to "Standard".

Final stresses at the end of the previous stage are saved and ramped up from zero during the present stage.

Pore pressure is ramped up from zero.

Displacement on geometry is reinitialized to its original state at the beginning of the stage.

 

 

Stage 4: Constitutive Release

Constitutive models are switched from "Elastic" to "Standard".

Final stresses at the end of the previous stage are saved and ramped up from zero during the present stage.

Pore pressure is ramped up from zero.

Displacement on geometry is reinitialized to its original state at the beginning of the stage and displacement values are reinitialized at the end of the stage.

 

 

Stage 5: 1st Year of Production

An homogeneous pore pressure decrease of 10·106 Pa in the reservoir is imposed via a spatial grid with element values and usage of a Spatial_boundary.

 

 

Stage 6: 2nd Year of Production

An homogeneous pore pressure decrease of 8·106 Pa in the reservoir is imposed via a spatial grid with element values and usage of a Spatial_boundary.

 

 

 

Following there is the description of the data file. The first section named "Model Definition Data" describes the data defining the model which is not related to initialisation or production (e.g. geometry, mesh, groups, etc). Subsequently the data relative to each of the stages is described.

 

Model Definition Data

 

Here the data defining the model which is not related to initialisation or production is described. Note that the data may not be described in the same order as it appears in the data file.

 

Geometry and Mesh

The mesh for the model was generated using Gmsh and exported to Abaqus format. Then the Abaqus --> ParaGeo conversion was used to generate the geometry stored in the MEM_001_Case01.geo file.

 

Data File


 

* Geometry_data

! ----------------------------------------

 File_name      MEM_001_Case01.geo

 File_format                   hdf

 

 

* Include

! ----------------------------------------

 Filename      MEM_001_Case01.geometry

 

1.The geometry and mesh for the model is read from the .geo file using the Geometry_data structure.

 

2.An Include data structure is used to incorporate to the main problem data file the data defined in the .geometry file which contains data for the groups and geometry sets.

 

 

 

Data File


 

* Geometry_set                    NUM=1

! ----------------------------------------

 Name                     "Formation02_top"

 Set_type                 "Abaqus NSET"

 Surfaces                         IDM=3

   4    5   10

 

* Geometry_set                     NUM=2

! ----------------------------------------

 Name                     "Base"

 Set_type                 "Abaqus NSET"

 Surfaces                         IDM=2

   29   30

 

 

  (...)

 

 

* Geometry_set                    NUM=20

! ----------------------------------------

 Name                     "Formation07"

 Set_type                 "Group"

 Volumes                          IDM=2

   3    10

 

 

  (...)

 

1.The .geometry file contains 22 Geometry_set data structures defining model boundaries, stratigraphy horizons and groups.

 

 

 

Group data

 

Data File


 

* Group_control_data

! ----------------------------------------

 Group_numbers                    IDM=7

   1    2    3    4    5    6    7

 Active_geomechanical_groups      IDM=7

   1    1    1    1    1    1    1

 

 

* Group_data                       NUM=1

! ----------------------------------------

 Group_name               "Formation01"

 Element_type             "Tet4v"

 Material_name            "Shale_F01"

 Porous_flow_type                    2

 Geometry_set             "Formation01"

 

 

   (...)

 

 

* Group_data                      NUM=4

! ----------------------------------------

 Group_name               "Formation04"

 Element_type             "Tet4v"

 Material_name            "Reservoir"

 Porous_flow_type                    2

 Geometry_set             "Formation04"

 

 

   (...)

 

1.A Group_data data structure is defined for each of the seven formations.

 

2.Group_control_data is used to define geomechanical field active for the seven formations.

 

3.Element_type is set to TET4V (4 node 3D tetrahedral elements with average volume formulation) and each formation is assigned the appropriate material data (which is defined in the included .mat file).

 

4.Porous_flow_type is set to 2 (mechanical analysis with prescribed pore pressure).

 

5.The Geometry_set defining the volumes for the groups are specified.

 

6.Material properties for each formation are assigned.

 

 

 

Materials

 

The materials are defined in a separate file named MEM_001_Case01.mat which is included in the main datafile using the command Include. The properties for the different lithologies are defined so that:

Reservoir (Formation04) is poroelastic.

Shale formations are elastic. Deeper shale formations have higher Young modulus values than shallower shale formations with values ranging from 1000·106 Pa to 2500·106 Pa.

 

 

Data File


 

* Material_data                    

! ----------------------------------------

 Material_name                  "Shale_F07"

! --------------------------------------------------------

 Grain_stiffness                      20000E6   ! Pa

 Grain_density                        2650.00   ! Kg/m3

! --------------------------------------------------------

 Porosity_model_type                        1   ! Constant

 Porosity                                0.30

! --------------------------------------------------------

 Elastic_model_type                         1   ! Isotropic

 Elastic_properties  IDM=2

  /Young's Modulus (E)/             1000.0E6   ! Pa

  /Poisson's Ratio (V)/                 0.35

! --------------------------------------------------------

 Singlephase_fluid_name            "Water"  

 

 

 

* Material_data                    

! ----------------------------------------

 Material_name                  "Reservoir"

! --------------------------------------------------------

 Grain_stiffness                      20000E6 ! Pa

 Grain_density                        2650.00 ! Kg/m3

! --------------------------------------------------------

 Porosity_model_type                        1 ! Constant Porosity

 Porosity                                0.35

! --------------------------------------------------------

 Elastic_model_type                         1 ! Isotropic Elasticity

 Elastic_properties  IDM=2

  /Young's Modulus (E)/             2000.0E6 ! Pa

  /Poisson's Ratio (V)/                 0.20

! --------------------------------------------------------

 Porous_elasticity_type                     1 ! Cam Clay

 Porous_elastic_properties  IDM=2

  /"Reference Bulk Modulus (K0)"/    10.0E+6   ! Pa

  /"Unloading Modulus (Kappa)"/        0.015

! --------------------------------------------------------

 Singlephase_fluid_name              "Water"

 

 

1.Only one shale lithology Material_data is shown here as the different shales only differ in the Young's modulus value which is:

Shale_F01: 2500·106 Pa

Shale_F02: 2300·106 Pa

Shale_F03: 2000·106 Pa

Shale_F05: 1700·106 Pa

Shale_F06: 1500·106 Pa

Shale_F07: 1000·106 Pa

 

2.The Porosity value (reference porosity) in this case is a dummy parameter as it will be overwritten by values prescribed using the Spatial_grid.

 

3.Reservoir material is defined poroelasticity data.

 

 

 

Contact and Fault data

 

Contact and fault data is defined in a separate file named MEM_001_Case01.contact which is included in the main datafile using the command Include.

 

Data File


 

* Contact_global

! ----------------------------------------

 Included_contact_sets            IDM=1

   "All"

 

 

* Contact_set                      NUM=1

! ----------------------------------------

 Name                     "All"

 Contact_surfaces  IDM=2

   "Fault_ftw"

   "Fault_hgw"

 Global_update_frequency          1000

 Property_name                 "Fault"

 Buffer_factor                     1.0    

 Print_search                        1

 

 

* Contact_surface                  NUM=1

! ----------------------------------------

 Name                     "Fault_ftw"

 Property_name            "Fault"

 Set_name                 "All"

 

 

* Contact_surface                  NUM=2

! ----------------------------------------

 Name                     "Fault_hgw"

 Property_name            "Fault"

 Set_name                 "All"

 

 

* Contact_property                 NUM=1

! ----------------------------------------

 Name                     "Fault"    

 Compression_model                   1

 Compression_properties  IDM=1

   10000.0E6    

 Tangential_model                    2

 Tangential_properties  IDM=2

   10000.0E6        0.2    

 

 

* Fault_set                       NUM=1

! ----------------------------------------

 Name                     "Fault"

 Footwall_set             "Fault_ftw"

 Hangingwall_set          "Fault_hgw"

 Contact_sets  IDM=1

   "All"

 Property_name            "Fault"

 

 

1.The data encompasses one Contact_global, one Contact_set, two Contact_surface, one Contact_property and one Fault_set data structures.

 

2.The Contact_set is defined so that:

a.Hangingwall and Footwall fault contact surfaces are included

b.A global contact search is performed every 1000 mech steps

c.The default contact property assigned to the contact surfaces in the set is named "Fault"

d.The buffer factor is set to 1.0 (generally a recommended value of 5.0 should be used but note that no large fault displacements are expected for the present case).

e.The contact search is printed into the .res file.

 

3.Contact_surface for hangingwall and footwall is defined with minimal data (in this case definition of this data would not be necessary as it would be internally generated).

 

4.Contact_property is defined with:

a.Elastic normal model with a normal penalty of 10000·106 Pa.

b.Coulomb tangential model with a tangential penalty of 10000·106 Pa and a friction coefficient of 0.2.

 

5. Fault_set data is defined identifying the hangingwall and footwall contact surfaces, assigning a contact set and assigning a contact property.

 

 

 

Stratigraphy data

 

For MEM applications definition of the complete stratigraphy is not required but only definition of the top surface. This enables to perform geostatic initialization and any depth-based calculation (e.g. output of element depth variable to plot file, definition of initial temperature as a function of depth).

 

Data File


 

* Stratigraphy_definition

! ----------------------------------------

 Top_surface_horizon      "Top"

 

 

* Stratigraphy_horizon             NUM=1

! ----------------------------------------

 Name                     "Top"

 Geometry_set             "Formation07_top"

 

 

* Stratigraphy_surface_load

! ----------------------------------------

 Applied_stress                   2.5E6    

 Time_curve_stress        "Step_scurve"

 

 

* Stratigraphy_smoothing

! ----------------------------------------

 Active_flag                        -1

 

1.Stratigraphy_definition and Stratigraphy_horizon are used to identify the top surface (defined by the geometry set "Formation07_top").

 

2.A stress load of 2.5·106 Pa is applied to the top surface. This is applied in order to add the load corresponding to the water table above the top surface defining the pore pressure applied via the spatial grid (c.a. 200 - 250 m).  The load is ramped up following an S-shape function over the duration of the simulation stage ("Step_scurve").

 

3.Stratigraphy smoothing is off during the simulation (Active_flag set to -1).

 

 

 

Support data

 

Data File


 

* Support_data

! ----------------------------------------

 Displacement_codes  IDM=3   JDM=4

  /Set1/  1  0  0

 /Set2/ 0  1  0

  /Set3/  0  0  1

  /Set4/  1  1  1

 Displacement_code_geom_set  IDM=5

   "East"

   "West"

   "North"

   "South"

   "Base"

 Displacement_code_geom_ass  IDM=5

   1  1  2  2  3

 

1.Displacements are constrained in the normal direction for the Base and side boundaries.

 

 

 

 

Additional Data Output

 

The data used to request additional plot file output defined within Control_data is described here. The additional data output includes:

1.One History_point set with one point at each formation for monitoring initialization.

2.Two History_point sets for monitoring changes in the reservoir (Formation04) and seal (Formation05) during production.

3.Two history line output (History_section_line) to output vertical displacement profile at the top surface.

4.Three history line output (History_section_line) to output results at three notional production well locations.

5.One History_surface to output contact data on the fault.

6.A reference set to request output of change in selected variables during production.

 

 

Initialization Stages

 

Data File


 

* History_point  NUM=1

! ---------------------------

 Name              "Initialization"

 Output_frequency_time        0.01  

 Point_labels   IDM=7

   "Formation01"

   "Formation02"        

     (...)

   "Formation07"

 Point_coordinates  IDM=3  JDM=7

   /Formation01/    4500   6400  1000

   /Formation02/    4500   6400  1900        

     (...)

   /Formation07/    4500   6400  5800

 Displacements  IDM=3

   "Disp_x" "Disp_y" "Disp_z"

 Velocities  IDM=3

   "Veloc_x" "Veloc_y" "Veloc_z"

     (...)  

 Element_data  IDM=2

   "Porosity"  "Elt_pore"

 

 

 

 

 

* History_section_line  NUM=1

! ---------------------------

 Name              "Prod_Well_1"

 Output_frequency_increment   -1  

 Output_formats  IDM=1

   "psect"

 Point_distribution_type       0

 Point_distance              100

 Path_coordinates  IDM=3  JDM=5

   4500   6400  5947

   4300   6600  3600

   4150   6750  3200

   3900   7000  3000

   3500   7400  2800

 Displacements  IDM=3

   "Disp_x"   "Disp_y"  "Disp_z"

 Stresses  IDM=3

   "Strs_xx"  "Strs_yy"  "Strs_zz"

        (...)

 Element_data  IDM=2

   "Porosity"  "Elt_pore"

 

 

 

 

 

* History_surface NUM=1

! ---------------------------------

 Name                     "Fault_hgw"

 Geometry_sets IDM=1

   "Fault_hgw"

 Contact_point_values IDM=5

   C_strsnm

   C_strsne

   C_strstn

   C_qprat

   C_pslip

 Output_frequency_step  -1

 Output_name_flag        1

 Output_topology_flag    1        

 

 

 

 

 

 

 

 

1.A History_point data structure is used to monitor the evolution of the specified variables during initialization.

 

2.There is one point defined for each of the formations which are arbitrarily located at the X and Y coordinates corresponding to the anticline crest.

 

MEM_001_Case01_03

Location of history points for monitoring initialization stages

 

 

 

3.Three History_section_line data structures are defined at three notional production well locations. Those will be used to output results of the specified variables at the end of each simulation stage every 100 m along the well path. Note that those results can be used for calibration purposes but will not be discussed/used for the present case and only are included for setup demonstrative purposes.

 

4.Because the History_section_line data structures are named Prod_Well_X (where X is the production well number) the results will be output to files named MEM_001_Case01_Prod_Well_X_Y.psect where Y is the simulation stage number.

 

 

MEM_001_Case01_02

 

MEM_001_Case01_02b

Location of notional production wells

 

 

 

5.A History_surface data structure is defined in order to output the following contact data variables for the Fault_hgw contact surface at the end of each stage (Output_frequency_step set to -1):

a.C_strsnm: Contact total stress normal

b.C_strsne: Contact effective stress normal

c.C_strstn: Contact tangential stress

d.C_qprat: Contact effective stress ratio

e.C_pslip: Contact plastic slip

 

6.The name of the contact surface (Fault_hgw) will be appended to the file name, so that the output file names will be MEM_001_Case01_Fault_hgw_X.cfs where X is the output number (stage number for the present case as output will only be performed at the end of each stage).

 

7.Output_topology_flag set to 1 is defined to request output of a file describing the contact surface topology. The file will be named MEM_001_Case01_Fault_hgw.topo

 

 

 

 

 

Production Stages

 

Data File


 

* Reference_set_data NUM=1  

! -----------------------------------

 Name       "Production"

 Output_change      1

 Groups  IDM=7

   "Formation01"

   "Formation02"        

     (...)

   "Formation07"

 Nodal_variables  IDM=1

  "Disp"

 Element_variables  IDM=6

  "Porosity"  "Effmean"  "Vonmises"

  "Strs_xx"   "Strs_yy"  "Strs_zz"

 

 

* History_point  NUM=1

! ---------------------------

 Active_flag     -1

 

 

* History_point  NUM=2

! ---------------------------

 Name                 "Reservoir"

 Group_name         "Formation04"

 Output_frequency_time        1.0

    (...)

 

 

* History_point  NUM=3

! ---------------------------

 Name                      "Seal"

 Group_name         "Formation05"

 Output_frequency_time        1.0  

    (...)

 

 

 

* History_section_line  NUM=1

! ---------------------------

 Name                "SubsidenceY"

 Output_frequency_increment   -1  

 Point_distribution_type       0

 Point_distance              100

 Path_coordinates  IDM=3  JDM=3

 4500  10400  5925

 4500   6400  5975

 4500      0  5930        

 Displacements  IDM=1

   "Disp_z"

 

 

* History_section_line  NUM=2

! ---------------------------

 Name                "SubsidenceX"

 Output_frequency_increment   -1  

 Point_distribution_type       0

 Point_distance              100

 Path_coordinates  IDM=3  JDM=3

 0     6400  5955

 4500  6400  5985

 8000  6400  5918        

 Displacements  IDM=1

   "Disp_z"

 

1.A Reference_set_data is defined at the first production stage so that the change in the specified variables is output to the plot file. Because the data is named "Production" the output variables will be named according to the following format: "Production Delta Porosity".

 

2.The history output for the history point set number 1 (defined to monitor initialization) is requested to stop via Active_flag set to -1. This is done to avoid too many outputs resulting from the different duration for production stages (note that Output_frequency_time for history point set was set to 0.01 time units and the production stages have a duration of 365 days each).

 

3.Two History_point set data structures are defined to monitor evolution of selected variables during production. The objective of each History_point set is to monitor evolution of specified properties at six locations in the reservoir and the overlaying seal which are the anticline crest (green point in the figure below) three downdip locations (black points) and two at both sides of the fault (red points). Points in the seal (not shown) are above those for the reservoir.

 

MEM_001_Case01_04

Reservoir history points locations to monitor production stages.

 

 

4.Two History_section_line data structures are defined to output top surface vertical displacement (subsidence) along X and Y axis both crossing point (x, y) = (4500, 6400) located above the anticline crest (see image below). Note that:

a.The data is defined at the last initialization stage so that the initial displacement before production is also output allowing to calculate the true increments due to production.

b.Output is performed at the end of each stage (Output_frequency_increment set to -1).

c.Output is performed every 100 m (Point_distance set to 100).

 

MEM_001_Case01_05

Location of the history section lines.

 

 

 

 

Stage 1: Elastic Gravity Initialization Data

 

Definition of initial Units

 

In the present case definition of Units is relevant as it allows to define gravity as 9.81 m/s2 and the code will perform the corresponding scaling according to the units chosen.

 

Data File


 

* Units

! ----------------------------------------

 Length                   "m"

 Stress                   "Pa"

 Time                     "days"

 Temperature              "Celsius"

 Permeability             "m^2"

 Conductivity             "W"

 

1.The Units for the problem are defined.

 

 

 

 

Gravity data

 

Data File


 

* Gravity_data

! ----------------------------------------

 Gravity_constant              9.81  

 Time_curve           "Step_scurve"

 

 

1.Gravity_data is defined with gravity being applied following a S-shape function over the duration of the simulation stage ("Step_scurve").

 

 

 

Geostatic data and definition of initial porosity

 

The initial porosity distribution for shale and reservoir formations is defined at an element basis via a Spatial_grid and prescribed using Geostatic_data. Geostatic_control_data is used to call the initialization options for the current stage which are defined in the geostatic.set file.

 

Data File


 

* Geostatic_control_data ! As defined in the main data file

! ----------------------------------------

 Include_set_name                "Gravity"

 

 

 

* Geostatic_control_data ! As defined in geostatic.set file

! ----------------------------------------

 Description                          "Gravity"

 Stress_constitutive_model            "Elastic"

 Contact_constitutive_model           "Elastic"

 Stress_initialisation_type          "Standard"

 Displacement_reinit_flag                     0

 State_reinit_flag                            1

 Time_curve                       "Step_scurve"

 

 

 

* Geostatic_data  NUM=1

! ---------------------------------

 Name                "Initialisation"

 Groups  IDM=7

   "Formation01"

   "Formation02"

      (...)

   "Formation07"

 Porosity_spatial_grid   "Porosity"

 

 

* Include ! Include spatial grid

! ---------------------------------

 Filename MEM_001_Case01_Porosity.spat  

 

 

* Spatial_grid                     NUM=4

! ----------------------------------------

 Name                     "Porosity"

 Type                     "Element"

 Element_variables  IDM=1

    "Porosity"

 Element_numbers  IDM=46488

    1     2     ...

    ...   46487     46488

 Element_values  IDM=1  JDM=46488

   0.16071  

   0.15192

    (...)

   0.33351

 

1.In Geostatic_control_data the options for the current initialization stage are defined within the geostatic.set file and those are (only data relevant to the current model is discussed):

a.The materials will be kept elastic (Stress_constitutive_model set to Elastic)

b.The stresses are initialized with gravity (Stress_initialization_type set to Standard)

c.Contact will be kept elastic (Contact_constitutive_model set to Elastic)

d.No displacement re-initialization will be performed (Displacement_reinit_flag = 0)

e.State variable re-initialization is performed after the end of the stage (State_reinit_flag = 1)

 

2.The Spatial_grid defining element porosity values is defined in a separate file named MEM_001_Case01_Porosity.spat which is included by using the data structure Include.

 

3.The Spatial_grid contains values for the element variable "Porosity" for the 46488 elements of the domain. The element numbers and their corresponding porosity values are specified. The porosity curves used to define the grid are shown in the image below.

 

4.Geostatic_data is defined in order to use the values defined in the spatial grid named "Porosity" to prescribe the initial porosity values.

 

5.It should be noted that initial porosity values could also be prescribed using a Spatial_state_set and assigning the porosity grid instead of using Geostatic_data. Nonetheless usage of Geostatic_data is generally preferred because in cases involving plastic materials with hardening, the initial plastic volumetric strain should be evaluated from the initial porosity value and the reference porosity in order to obtain an appropriate initial value for pre-consolidation pressure (this procedure is only invoked when using Geostatic_data).

 

Imp_001_013

Compaction curves used to define the porosity grid

 

 

 

Definition of Initial Pore Pressure

 

The initial pore pressure distribution for the whole domain is defined via a Spatial_grid and prescribed using the Spatial_boundary.

 

Data File


 

* Include

! ---------------------------------

 Filename MEM_001_Case01_PP_Initial.spat

 

 

* Spatial_grid                    NUM=4

! ----------------------------------------

 Name                     "Pore_Pressure_Initial"

 Type                     "Element"

 Element_variables  IDM=1

    "Elt_pore"

 Element_numbers  IDM=46488

    1     2     ...

    ...   46487     46488

 Element_values  IDM=1  JDM=46488

   0.81167E+08

   0.88418E+08

    (...)

   0.11944E+08

 

 

* Spatial_boundary                 NUM=1

! ----------------------------------------

 Name                     "Pore Pressure"

 Boundary_type             "Spatial_grid"

 Value_type                    "Absolute"

 Mapping_entity_flag                    0

 Spatial_grids  IDM=1

   "Pore_Pressure_Initial"

 Prescribed_components  IDM=1  JDM=1

   6

 Time_curve                 "Step_scurve"

 

1.The Spatial_grid defining element pore pressure values is defined in a separate file named MEM_001_Case01_PP_Initial.spat which is included by using the data structure Include.

 

2.The Spatial_grid "Pore_pressure_Initial" contains values for the element variable "Elt_pore" for the 46488 elements of the domain. The element numbers and their corresponding pore pressure values are specified. The pore pressure profiles used to define the grid values are shown in the figure below. The overpressure in the shales start at 2.5 km below mud line and the pore pressure profile follows a trend parallel to the lithostatic whereas the reservoir pore pressure trend is parallel to the hydrostatic gradient with an overpressure of 18 MPa.

 

3.The Spatial_boundary data structure is defined in order to use the values defined within the "Pore_Pressure_Initial" spatial grid to prescribe the initial pore pressure at element basis (Prescribed_components set to 6). Note that the initial pore pressure will be gradually ramped up from zero synchronous to gravity as both are assigned an S-curve over the duration of the simulation stage ("Step_scurve").

 

 

MEM_001_Case01_06

Pore pressure distribution with depth defined via the spatial grid

 

 

 

Temperature Distribution

 

The initial temperature distribution is defined via a Global_loads and a Spatial_variation_definition

 

Data File


 

* Global_loads                     NUM=1

! ----------------------------------------

 Name              "Temperature vs. Depth"

 Prescribed_temperature  IDM=1  JDM=1

   1.0  

 Prescribed_temperature_spatial       1

 Pres_temperature_geom_set  IDM=1

   "All_volumes"

 Pres_temperature_geom_ass  IDM=1

   1

 

 

* Spatial_variation_definition     NUM=1

! ----------------------------------------

 Description              "Temperature vs. Depth"

 Type                     "Absolute"

 Distribution             "Depth_dependent"

 Variation_assignment                1

 

 

* Spatial_variation_values        NUM=1

! ----------------------------------------

 Description         "Temp. vs. Depth"

 Time                             0.0    

 Values_vs_depth  IDM=2  JDM=2

  /Depth (m)/  0.0      20960.5    

  /Temp (Cº)/ 10.0      534.013    

 

 

* Time_curve_data                  NUM=1

! ----------------------------------------

 Name                     "Temperature"

 Time_curve  IDM=2

   0.0      1.0  

 Time_factor  IDM=2

   1.0      1.0    

 Curve_type                          1

 

 

* Load_case_control_data

! ----------------------------------------

 Loadcases                        IDM=1

   1

 Active_load_flags                IDM=1

   2

 

1.A Global_loads data structure is defined to prescribe a spatial distribution of temperature.

 

2.A single Prescribed_temperature set is defined with its value being set to 1.0. Note that this will not be used as the spatial distribution will be used instead.

 

3.Prescribed_temperature_spatial is assigned Spatial_variation_definition number 1.

 

4.The prescribed temperature set is assigned to "All_volumes" geometry set (a reserved geometry set generated by the code that encompasses all the volumes in the domain).

 

5.The Spatial_variation_definition and Spatial_variation_values define the temperature distribution with depth.

 

6.The temperature is prescribed as an instantaneous load (Global_loads NUM=1 uses the defined Time_curve_data NUM=1). The values are defined according to a surface temperature of 10 ºC and a temperature gradient of 0.025 ºC/m.

 

 

 

Control data

 

Data File


 

* Control_data

! =====================================

 Control_title               "init"

 Solution_algorithm               1

 Duration                       1.0

 Target_number_time_steps     10000

 Output_frequency_plotfile       -1

 Output_time_plotfile           0.2

 Output_frequency_restart        -1

 Screen_message_frequency      1000

 

1.Control_data data structure defines solution data for the stage.

 

2.All stages have identical control data so that only the present stage will be described. The key data comprises:

a.Solution_algorithm set to 1 (transient dynamic algorithm) which is compulsory for geomechanical only simulations.

b.Duration is set to 1.0 time units

c.The Target_number_time_steps is set to 10000 (which defines the target number of mechanical steps to solve the stage).

d.Simulation information will be printed to the command prompt every 1000 mech steps (Screen_message_frequency set to 1000).

e.A plot file will be output every 0.2 time units (Output_time_plotfile set to 0.2) and at the end of the stage (Output_frequency_plotfile set to -1)

f.A restart file will be output at the end of the stage (Output_frequency_restart set to -1)

 

 

 

 

Stage 2: Tectonic Displacement

 

Geostatic Options

 

Data File


 

* Geostatic_control_data ! As defined in the main data file

! ----------------------------------------

 Include_set_name                "Tectonic"

 

 

* Geostatic_control_data ! As defined in the geostatic.set file

! ----------------------------------------

 Description                     "Tectonic"

 Stress_constitutive_model       "Elastic"

 Contact_constitutive_model      "Elastic"

 Stress_initialisation_type      "None"

 Displacement_reinit_flag        0

 State_reinit_flag               0

 Time_curve                      "Step_constant"

 

 

 

 

* Spatial_boundary                 NUM=1

! ----------------------------------------

 Name                     "Pore Pressure"

 Boundary_type             "Spatial_grid"

 Value_type                    "Absolute"

 Mapping_entity_flag                    0

 Spatial_grids  IDM=1

   "Pore_Pressure_Initial"

 Prescribed_components  IDM=1  JDM=1

   6

 Time_curve               "Step_constant"

 

1.In the geostatic.set file the Geostatic_control_data options for the current stage are defined which are:

a.Materials are kept elastic

b.Stresses are not initialised (values calculated from the previous stage are kept as the initial values)

c.No displacement re-initialization nor state variable re-initialization is performed (flags set to 0)

 

2.Spatial_boundary needs to be re-specified in order to consider the initial pore pressure values defined by the spatial grid. Because we are not interested in re-initializing the values during this stage (as we do not re-initialize stresses) a time curve with constant load factor over the duration of the stage is assigned ("Step_constant").

 

 

 

Tectonic Load

 

Data File


 

* Global_loads                     NUM=2

! ----------------------------------------

 Name                     "Tectonic_disp"

 Prescribed_displacement  IDM=3  JDM=1

  /set1/  0.0   1.0  0.0

 Pres_displacement_geom_set  IDM=1

   "North"

 Pres_displacement_geom_ass  IDM=1

   1

 

* Time_curve_data                  NUM=2

! ----------------------------------------

 Name                   "Tectonic_disp"

 Time_curve   IDM=2

   1.0      2.0    

 Time_factor  IDM=2

   0.0      -25.0    

 Curve_type                          2

 

 

* Load_case_control_data

! ----------------------------------------

 Loadcases                        IDM=2

   1  2

 Active_load_flags                IDM=2

   2  2

 

1.A prescribed contractional displacement of 25 m is applied to the "North" boundary. This is achieved by:

a.Defining a Global_loads data structure with a prescribed displacement set with a displacement of 1.0 m in the Y direction.

b.Assigning the displacement set to "North" boundary.

c.Defining a multiplication factor of -25.0 in the corresponding time curve.

 

2.The Global_loads number 2 defining the tectonic displacement is defined as active (flag = 2) as well as Global_loads number 1 corresponding to the temperature load.

 

 

 

 

 

 

Stage 3: Contact Release

 

Geostatic Options

 

Data File


 

* Geostatic_control_data ! As defined in the main data file

! ----------------------------------------

 Include_set_name       "Contact_release"

 

 

* Geostatic_control_data ! As defined in geostatic.set file

! ----------------------------------------

 Description           "Contact_release"

 Stress_constitutive_model     "Elastic"      

 Stress_initialisation_type   "Standard"

 Contact_constitutive_model   "Standard"

 Displacement_reinit_flag              1

 Poroelastic_init_flag                 1

 State_reinit_flag                     1

 Time_curve                "Step_scurve"  

 

1.In geostatic.set file Geostatic_control_data options for the current stage are defined which are as follows:

a.Materials are kept elastic (Stress_constitutive_model set to "Elastic").

b.Stresses are re-initialised (Stress_initialisation_type set to "Standard")

c.Displacement is re-initialized at the beginning of the present simulation stage so that the geometry will go back to the state prior to any compaction and tectonic displacement (Displacement_reinit_flag 1).

d.Poroelastic_reinit_flag set to 1 indicates that the stresses at the end of the previous stage are used to evaluate poroelastic constants (i.e. Bulk modulus) otherwise because we are re-initializing stresses the initial bulk modulus may be relatively low leading to development of elastic strains as stress increase during the stage.

e.State variable values are re-initialized after the end of the stage (State_reinit_flag set to 1)

 

2.Spatial_boundary needs to be re-specified (not shown here) in order to consider the initial pore pressure values defined by the spatial grid. An s-shaped time curve is defined so that values are ramped up from 0 over the duration of the stage (not shown here).

 

 

 

 

 

Stage 4: Constitutive Release

 

Geostatic Options

 

Data File


 

* Geostatic_control_data ! As defined in the main data file

! ----------------------------------------

 Include_set_name       "Elastic_release"

 

 

* Geostatic_control_data ! As defined in geostatic.set file

! ----------------------------------------

 Description           "Elastic_release"

 Stress_constitutive_model    "Standard"      

 Stress_initialisation_type   "Standard"

 Displacement_reinit_flag              3

 Poroelastic_init_flag                 1

 State_reinit_flag                     1

 Time_curve                "Step_scurve"  

 

1.In geostatic.set file Geostatic_control_data options for the current stage are defined which are as follows:

a.Materials are using the constitutive properties as defined in Material_data (Stress_constitutive_model set to "Standard").

b.Stresses are re-initialised (Stress_initialisation_type set to "Standard")

c.Displacement on geometry is re-initialized at the beginning of the simulation stage (returning back to the state prior to any compaction) and displacement variable value is set to zero at the end of the present simulation stage.

d.Poroelastic_reinit_flag set to 1 indicates that the stresses at the end of the previous stage are used to evaluate poroelastic constants (i.e. Bulk modulus) otherwise because we are re-initializing stresses the initial bulk modulus may be relatively low leading to development of elastic strains as stress increase during the present initialization stage.

e.State variable values re-initialized at the end of the stage (State_reinit_flag set to 1)

 

2.Spatial_boundary needs to be re-specified (not shown here) in order to consider the initial pore pressure values defined by the spatial grid. An S-curve function is defined so that values are ramped up from 0 over the duration of the stage (not shown here).

 

 

 

 

 

Stages 5 and 6: Production Stages

 

Data definition for stages 5 and 6 is very similar with the only change being the Spatial_grid loaded to define the pore pressure at the reservoir. Hence only data for stage 5 is described. Note that during the first production stage a decrease of 10·106 Pa in reservoir pore pressure is prescribed whereas in the second year of production the decrease in reservoir pore pressure will be 8·106 Pa. Note that the pore pressure in the other formations remains unchanged (undrained assumptions).

 

Data File


 

* Include  

! ---------------------------------

 Filename MEM_001_Case01_PP_2021.spat

 

 

* Spatial_grid                     NUM=1

! ----------------------------------------

 Name                     "Elt_pore"

 Type                     "Element"

 Element_variables  IDM=1

   "Elt_pore"

 Element_numbers  IDM=4768

 16832

 16833

    (...)

 34519

 Element_values  IDM=1  JDM=4768

 49294000

 52290000

    (...)

 47434000

 

 

* Spatial_boundary                NUM=1

! ----------------------------------------

 Name                     "Pore Pressure"

 Boundary_type             "Spatial_grid"

 Value_type                    "Absolute"

 Mapping_entity_flag                    0

 Spatial_grids  IDM=1

   "Elt_pore"

 Prescribed_components  IDM=1  JDM=1

   6

 Time_curve                 "Step_scurve"    

 

1.Include data structure is used to include the .spat file containing the Spatial_grid.

 

2.The Spatial_grid is named "Elt_pore" and contains element pore pressure values for the reservoir formation. Note that because the grid defines values at elements, only values for those elements experiencing a change need to be specified.

 

3.The Spatial_boundary data is defined to use the grid data to prescribe the change in pore pressure (identical to the previous stages).

 

4.An S-shape time curve over the duration of the stage is assigned for the pore pressure spatial boundary. Hence the change in pore pressure between the previous values and the new prescribed values will be performed following such time curve.

 

 

 

 

 

 

 

Results

 

The results for the project are located in MEM_001\Case01\Results. In this directory the spreadsheet 00_MEM_001_Case01_Results.xlsx contains all the history results output from the simulation. In the figure below some results for history points monitoring initialization are presented. Such results show that the evolution of the different variables is in agreement with the conditions assumed for each stage, i.e.:

 

1.From t=0 to t=1 gravity is ramped up leading to stress increase. Pore pressure is also ramped up to initial value. The gravity stage leads to initial displacements which are dominant in the vertical (Z) direction as expected.

 

2.From t=1 to t=2 no stress change is imposed and pore pressure values are held over the duration of the stage. The contractional tectonic displacement is applied in the North-South direction (aligned with the Y axis) and this is reflected in the displacements and stress increase. Note the upward vertical displacement due to the Poisson ratio effects and layer thickening upon elastic tectonic deformation.

 

3.From t=2 to t=3 contact is released from elastic to Coulomb properties. Stresses and pore pressure are ramped up from zero and displacements are reinitialized at the beginning of the stage. Note the development of positive displacements in the Y direction over the duration of the stage as the Coulomb fault behaviour lead to extensional fault slip as stresses increase (points are on the fault hanging wall which moves towards the positive Y direction).

 

4.From t=3 to t=4 stresses and pore pressure are ramped up from zero, displacements are reinitialized at the beginning and end of the stage and constitutive models are released from elastic to standard. Note that this has only implications for the reservoir which changes from elastic to poroelastic material, as the shale formations are all assigned elastic properties.

 

MEM_001_Case01_09

Evolution of properties during initialization stages.

 

 

 

The figures below show the distribution of porosity, pore pressure, temperature and stresses after the initialization stages (simulation time 4). Note that the low horizontal stress values in the reservoir are due to the high overpressure.

 

MEM_001_Case01_07

Distribution of stresses, porosity, pore pressure and temperature at the end of initialization

 

 

 

 

 

In the figures below distribution of pore pressure, vertical stress change, porosity change and displacement change after two years of production are shown. Note that the change for horizontal stresses is not shown as it is not significant for the present case. Note also that the change in stresses and porosity has been output because of the definition of the Reference_set_data. As can be seen the homogeneous reduction in pore pressure within the reservoir has led to a vertical effective stress increase in the reservoir which in turn has led to a porosity reduction due to elastic compaction (note the downward displacement). It should be noted that the prescribed homogeneous drop in pore pressure within the reservoir is not what is expected to observe during production where a larger decrease in pore pressure is expected to occur near the producer wells while a smaller decrease is expected near the injector wells.

 

 

MEM_001_Case01_08

Distribution of pore pressure and change in vertical stress, porosity and displacement after two years of production. The colour scale for plots showing the change in stress and porosity has been set so that the 0 value (no change) is shown in white, negative changes are shown in blue and positive changes in red.

 

 

 

 

The subsidence after every production year output in the two history section line sets is shown below. As can be seen in both profiles the subsidence increases during production due to the larger drop in pore pressure (which lead to compaction and downward displacement as discussed above). In both subsidence profiles the maximum subsidence is observed at or close to the point most elevated in the anticline crest (indicated by the vertical discontinuous line) as is the most overpressured region.

 

MEM_001_Case01_10

Subsidence results monitored by the two history section line sets and vertical displacement at the top surface nodes. The dotted line indicate the coordinates where the two section lines cross (above the anticline crest). In the top surface plot the history section lines are shown in green.

 

 

 

 

In the figures below evolution of pore pressure, effective mean stress and Young's Modulus for the history points located within the reservoir is shown. As can be seen the reduction in pore pressure lead to an increase in effective mean stress which in turn lead to an increase in Young's Modulus due to the poroelastic law used to characterize the reservoir constitutive behaviour.

 

MEM_001_Case01_11

Pore pressure, effective mean stress and Young's Modulus history results at the six points located within the reservoir.

 

 

 

In the plots below the non-linear slip at the end of simulation plotted at the fault hanging wall is shown. As can be seen most of the slip occurs near the reservoir where the high overpressure leads to relatively low contact normal effective stresses and hence relatively high ratios of contact tangential stress to contact normal effective stress. It should be recalled that fault frictional behaviour is modelled via a Coulomb friction law with a friction coefficient of 0.2 where non-linear slip will occur if t| > 0.2 · |σn'| or reordering the equation t| / |σn'| > 0.2. Thus low values of contact normal effective stresses favour slip. It can be seen that if friction coefficient is set to 0.6 no slip occurs. The plot on the right shows the data obtained from the output requested in History_surface for the fault hanging wall at the end of the second initialization stage (before contact release). The discontinuous lines show contact stress ratios with increments of 0.1. It can be seen that there are a few points above the 0.2 line indicating that for these points slip will occur for a friction coefficient of 0.2. It can be seen that no point shows a ratio higher than 0.6 and that is why a case with a friction coefficient of 0.6 shows no slip.

 

 

MEM_001_Case01_12

Fault non-linear slip at the end of the simulation for the present case with friction coefficient of 0.2 and a case with friction coefficient of 0.6 (left). Plot showing stress state of Fault_hgw contact nodes at the end of the second initialization stage (right).