The initial data file for the project is: IX_002\Generation\IX_002_gen.dat. The basic data includes:
1Units data structure defining the units for the simulation 2Geometry_set data defining the boundaries and the different sediment volumes of the model. 3Stratigraphy data (Stratigraphy_definition and Stratigraphy_horizon data structures) to identify the top surface of the model. 4Group_data for two groups (reservoir and shale) and Group_control_data to define geomechanical field active for both groups. 5A Material_data and Fluid_properties data structures defining the reservoir and shale material properties. 6Support_data defining the displacement and pore pressure constrains. 7Mesh control (Mesh_control) and Structured mesh generation data (Structured_mesh_data and several Structured_line_set) defining a the mesh for the problem. 8Time_scaling_data defining a target optimal time step of 0.5E-4 years. 9Damping_global_data defining bulk viscosity damping. 10Control data (Control_data) for two stages defining: (a) Incremental solution algorithm (Type 1), (b) Maximum number of time steps of 1. We only require to run a single time step as the objective is to generate the geometry and mesh for the simulation. (c) Duration time of t=1. (d) Factor of critical time step = 0.5, (e) Plot file output every 0.2 time units, (f) Plot file output at the end of the stage, (g) Screen message output every 1000 mech steps, 11Util_write_geometry data to output the .geo file 12Reservoir_coupling_data used to request output of the .bin mesh file for IX. 13Geometry data (nodal_data, Geometry_line , Geometry_surface and Geometry_volume ) for definition of the 3D geometry.
The Units data structure is used to define the units for the simulation. Definition of the units generally allows to always define density in Kg/m3 regardless of the units adopted and the code will automatically convert the gravity loafing accordingly.
Data File
|
|
* Units
Length "m"
Stress "Pa"
Time "s"
Temperature "Celsius"
Permeability "m^2"
Density "Kg/m^3"
|
1The units for the simulation are defined. |
|
Geometry_set data can be used to group a set of geometry entities and provide a name for the set. Then the defined Geometry_set may be used to assign boundary conditions, loads, etc.
Data File
|
|
* Geometry_set NUM=1
Name "Base"
Surfaces IDM=4
1 2 3 4
* Geometry_set NUM=2
Name "Top"
Surfaces IDM=4
13 14 15 16
(...)
* Geometry_set NUM=8
Name "Shale"
Set_type "Group"
Volumes IDM=11
1 2 3 4 5 7 8 9 10 11
12
|
1.Eight geometry sets are defined: a.Six geometry sets defining the surfaces which constitute the boundaries of the model b.Two geometry sets defining the volumes that constitute the reservoir and shale sediments. |
|
Stratigraphy data is required for this problem as geostatic data with depth dependent properties is used. Only the minimal data required to define the top surface (from which the code will be able to obtain depth) is defined.
Data File
|
|
* Stratigraphy_definition
! ----------------------------------------
Top_surface_horizon "Top_surface"
* Stratigraphy_horizon NUM=1
! ----------------------------------------
Name "Top_surface"
Geometry_set "Top"
|
1The units for the simulation are defined. |
|
The Group_data data structure is compulsory and defines the properties for each geometry group. Each group defines a region of the model domain with same properties. For this example these comprise:
1The name of the group. 2The element type. 3The material assigned to the group 4The type of porous flow 5The geometry sets defining each group.
Data File
|
|
* Group_data NUM=1
Group_name "Reservoir"
Element_type "Hex8"
Material_name "Reservoir"
Porous_flow_type 2
Geometry_set "Reservoir"
* Group_data NUM=2
Group_name "Shale"
Element_type "Hex8"
Material_name "Shale"
Porous_flow_type 2
Geometry_set "Shale"
|
1Two groups sre defined using the HEX8 element (8 noded hexahedral 3D elements). 2The groups are named "Reservoir" and "Shale" respectively 3The materials assigned are also named "Reservoir" and "Shale" respectively (note that the material name may be different than the group name). 4The simulation will be performed using the porous flow type number 2 (drained conditions with prescribed pore pressure). 5The geometry sets defining the groups are assigned. |
|
The Group_control_data data structure is compulsory and defines:
1The group number for each group in the problem, where each group (Group_data) relates to a region with specific properties; e.g. regions with different material assignments, individual stratigraphy layers, etc. 2Whether the group is active or inactive in the fields; i.e. geomechanical, porous flow, thermal, that are being solved.
Data File
|
|
* Group_control_data
Group_numbers IDM=2
1 2
Active_geomechanical_groups IDM=2
1 1
|
1.The two groups present in the simulation are defined with the geomechanical field active (value of 1). |
|
Two Material_data structures are defined(one for reservoir, one for shale). Also two Fluid_properties data structures are defined (one for water, one for mixture of foil and water with less density). Note that the material properties specified in this file are purely elastic as we are only interested in generating the geometry and mesh.
Data File
|
|
* Material_data NUM=1
Material_name "Shale"
Grain_stiffness 30000E6
Grain_density 2710.0
Porosity 0.35
Elastic_model_type 1
Elastic_properties IDM=2
1000.0E6
0.25
Fluid_saturation 1.0
Singlephase_fluid_name "Water"
* Material_data NUM=2
Material_name "Reservoir"
Grain_stiffness 30000E6
Grain_density 2710.0
Porosity 0.15
Elastic_model_type 1
Elastic_properties IDM=2
1000.0E6
0.25
Fluid_saturation 1.0
Singlephase_fluid_name "Mixture"
* Fluid_properties NUM=1
Name "Water"
Fluid_type "Water"
Density 1000
Stiffness 2000E6
* Fluid_properties NUM=2
Name "Mixture"
Fluid_type "Water"
Density 944.00
Stiffness 2000E6
|
1The two materials "Shale" and "Reservoir" are defined. 2Minimal data considering elasticity is defined (in this step we are only interested in generating the geometry and mesh). Therefore material properties will be discussed when relevant. 3Shale material has assigned a fluid named "Water" whereas Reservoir material has assigned a fluid named "Mixture".
1Fluid_properties for "Water" and "Mixture" are defined. 2Water density is set to 1000 kg/m3 whereas Mixture density is set to 944 Kg/m3. 3Water and Mixture stiffness are set to 2000E6 Pa.
|
|
The support data is used to define fixities in displacements and pore pressure fields.
Data File
|
|
* Support_data
Displacement_codes IDM=3 JDM=4
1 0 0
0 1 0
0 0 1
1 1 1
Displacement_code_geom_set IDM=2
"Reservoir"
"Shale"
Displacement_code_geom_ass IDM=2
4 4
Pore_pressure_codes IDM=1 JDM=2
0
1
Pore_pressure_code_geom_set IDM=2
"Reservoir"
"Shale"
Pore_pressure_code_geom_ass IDM=2
2 2
|
1In ParaGeo the keywords Displacement_codes, Displacement_code_geom_set and Displacement_code_geom_ass are used in conjunction to define displacements constrains and assign them to any number of geometry sets. 2In Displacement_codes sets of displacement conditions that can be later assigned to geometry sets are created. They define whether displacements in X, Y and Z are prescribed (1) or free (0). In the present case 4 different sets are defined. 3In Displacement_code_geom_set geometry sets that will be assigned any of the DIsplacement_codes sets are listed. In the present case "Reservoir" and "Shale" will be assigned displacement codes. 4In Displacement_code_geom_ass the set number of Displacement_codes assigned to each of the geometry sets listed in Displacement_code_geom_set is defined. In the present case both "Reservoir" and "Shale" are assigned set number 4 which defines fixity in all directions. 5In ParaGeo the keywords Pore_pressure_codes, Pore_pressure_code_geom_set and Pore_pressure_code_geom_ass are used in conjunction to define pore pressure constrains and assign them to any number of geometry sets. 6Pore pressure code sets are defined. Pore pressure code sets define whether pore pressure is prescribed (1) or free (0) and can later be assigned to geometry sets. 7In Pore_pressure_code_geom_set geometry sets that will be assigned any set of conditions defined in Pore_pressure_codes are listed. In the present case "Reservoir" and "Shale" will be assigned pore pressure codes. 8In Pore_pressure_code_geom_ass the Pore_pressure_codes set number of assigned to each of the geometry sets defined in Pore_pressure_code_geom_set is defined. In the present case both "Reservoir" and "Shale" geometry sets are assigned pore pressure code set number 2 so for both pore pressure will be prescribed.
|
|
Data for generation of the structured mesh is described here. The reservoir mesh
Data File
|
|
* Mesh_control_data
Generation_algorithm 1
Mesh_generation_flag 0
* Structured_mesh_data
Default_divisions 1
List_structured_line_sets IDM=7
1 2 3 4 5 6 7
* Structured_line_set NUM=1
Lines IDM=1
1
Number_divisions 8
Division_size_ratio 3
(...)
* Structured_line_set NUM=7
Lines IDM=1
67
Number_divisions 25
Division_size_ratio 12
|
1The algorithm used for this simulation is set to 1 (i.e. structured mesh). 2Mesh_generation_flag is set to 0 (perform simulation). This is required as we are interested to run a single time step to generate and output a .geo file. 3Structured_mesh_data is defined with Default_divisions set to 1 (by default each volume will consists of a single element). 4Seven Structured_line_set are assigned by number in the Structured_mesh_data. Those will be used to define specific number of divisions for each line overwritting the default value of 1. 5The lines included in each Structured_line_set are specified. 6The Number_divisions controls the number of elements that will be generated for that line. 7The Division_size_ratio defines the ratio in size between the biggest and smallest elements in the line which are located at opposed line edges. For Structured_line_set NUM=1 for example line 1 (and any equivalent line) will be subdivided in 8 divisions (so 8 elements will be generated along those lines) and the size of subdivisions will progressively increase so that the last subdivision of the line is 3 times larger than the first one.
|
|
The mechanical step size is defined via Time_scaling_factors data structure. The Optimal_time_step keyword has been used. It is the most simple way of defining the mechanical time step size and is generally recommended. Using this method the mass scaling is computed automatically.
Data File
|
|
* Time_scaling_factors
Optimal_time_step 0.5E-04
|
1.An optimal time step of 0.5·10-4 time units is defined
|
|
Damping_global_data is defined in order to minimize dynamic oscillations in the solution.
Data File
|
|
* Damping_global_data
Bulk_damping_model "BulkViscosity"
Bulk_damping_properties IDM=1
0.5
|
1Bulk viscosity damping is selected for this case. 2A damping factor of 0.5 is defined. 3This value is generally recommended.
|
|
The current analysis considers a two simulation stages defined by their respective Control_data structures in which control data for the geomechanical field is provided. For more information see Solution Control Data.
Note that only the first Control_data structure is described here.
Data File
|
|
* Control_data
Control_title "Stage"
Solution_algorithm 1
Maximum_number_time_steps 1
Duration 1.0
Displacement_norm_tolerance 0.1
Target_number_time_steps 30000
Factor_critical_time_step 0.5
Output_time_plotfile 0.2
Output_frequency_plotfile -1
Screen_message_frequency 1000
Output_frequency_restart -1
|
1Stage is named "Stage" 2The solution algorithm is set to number 1 ( i.e. Transient dynamic algorithm). This is the algorithm often used in non-coupled simulations. 3Stage duration is set to 1.0 time units 4Manixum_number_time_steps is set to 1 so a single time step will be considered and the stage will finalize. 5The factor critical time step is set to 0.5 so the time step used for the simulation will be 0.5 · 0.5·10-4. 6Target_number_time_steps is set 30000. If defined it will take precedence in defining the time step size over the Optimal_time_step defined in Time_scaling_factors data structure. 7Information will be displayed on the screen (command prompt) every 1000 mech steps. 8A plot file is requested every 0.2 time units (Output_time_plotfile=0.2) and also at the end of the stage (Output_frequency_plotfile=-1). |
|
Util_write_geometry is defined in order to output a .geo file.
Data File
|
|
* Util_write_geometry
File_name IX_002_geom.geo
|
1Definition of Util_write_geometry is required to output a .geo file. 2The output file name is specified.
|
|
Reservoir_coupling_data is defined in this case in order to output a .bin file with the IX equivalent ParaGeo mesh.
Data File
|
|
* Reservoir_coupling_data
Groups IDM=1
"Reservoir"
Units_list IDM=4
"stress" "length" "temperature" "density"
Units IDM=4
"psi" "ft" "Rankine" "lb/ft^3"
Reservoir_coordinate_type "Eclipse"
Reservoir_origin IDM=2
381 762
Surface_reference_level 0
Output_ix_bin_file 1
|
1Only group "Reservoir" should be considered. 2The physical quantities and the corresponding units used in the IX simulation are defined. 3The coordinate system type adopted by the reservoir simulator is specified. In this case IX adopt the Eclipse system in which Z is positive downwards (so it is positively correlated with depth). This is used by ParaGeo to convert the coordinates of the mesh for the reservoir group created for mapping purposes. 4In Reservoir_origin the offset required for the ParaGeo reservoir to match IX reservoir location is specified. In this case we require a translation of 381 m in the X direction and 762 m in the Y direction. Note that in the IX_PARAGEO_Model_Name.ixf file a shift in the Z direction has already been applied (see IX Coupling Files).
Schematic of ParaGeo mesh for the reservoir group before and after transformation required for mapping purposes
5The Surface_reference_level for IX is defined. In this case it is z=0. 6Output_ix_bin_file flag is set to 1 to output the required .bin mesh file.
|
|
END DATA is compulsory and defines the end of the simulation data and the start of the geometry definition data.
A summary of the data for defining the 3D geometry for this example is presented bellow. These data comprise nodal_data, geometry_line, Geometry_surface and Geometry_volume data structures.
Nodal_data
Data File
|
|
* Nodal_data NUM=1
Node_numbers IDM=36
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36
Coordinates IDM=3 JDM=36
0 0 -4591.812
381 0 -4591.812
(...)
1143 1143 0
|
1All the nodes that will be used to define geometry lines are defined here. 2First node numbers are defined and then their corresponding X, Y and Z coordinates.
|
Lines
Data File
|
|
* geometry_line NUM=1
line_type 1
points IDM=2
1 2
* geometry_line NUM=2
line_type 1
points IDM=2
2 3
(...)
* geometry_line NUM= 75
line_type 1
points IDM=2
27 36
|
175 lines are defined. 2Lines are type 1 (line connecting two nodes). 3The pair of nodes defining each line are specified.
|
Surfaces
Data File
|
|
* geometry_surface NUM=1
surface_type 5
lines IDM=4
1 9 3 7
* geometry_surface NUM=2
surface_type 5
lines IDM=4
2 11 4 9
(...)
* geometry_surface NUM= 52
surface_type 5
lines IDM=4
36 72 48 75
|
152 surfaces are defined. 2Surfaces are type 5 (multi sided flat). 3Lines defining each surface are specified.
|
Volumes
Data File
|
|
* geometry_volume NUM=1
Surfaces IDM=6
1 5 17 19 35 37
* geometry_volume NUM=2
Surfaces IDM=6
2 6 18 20 37 39
(...)
* geometry_volume NUM=12
Surfaces IDM=6
12 16 32 34 52 50
|
112 volumes are defined. 2The six surfaces defining each volume are defined.
|
|
|