GeoInv_003 Fracture Stiffness

 

Problem description

 

A 3D continuum model of size 1m x 1m x 1m is embedded with criss-cross joint sets, as illustrated in the figure below. The fracture spacing is 0.25m, and the fracture behaviour is governed by Bandis (nonlinear) model. There are three fracture sets in the model, such that each fracture plane is aligned to be normal to x, y and z axis respectively. The sample is subjected to uniaxial displacement of -0.1m in z-direction at top boundary under plane strain condition.

 

Inv_example3_001

Continuum model embedded with criss-cross joint set

 

 

The goal of this inverse analysis is to recover fracture normal stiffness of all fracture sets as defined in Bandis model. The target solutions are Stress XX, Stress YY, and Stress ZZ.

 

Bandis model with initial stiffness (kn0 ) and initial aperture (d0 )

 

For the present case the target solutions are generated via a ParaGeo reference simulation with the data file defined according to the modelling descriptions above. The reference solution data file and results are provided in GeoInv_003\Reference_solution. The properties of the jointed rock, as defined in ParaGeo target data file, are tabled below. The arrangement of Fracture Set 2 and Fracture Set 3 are achieved by prescribing appropriate direction cosine values under Coordinate_system so that it remains normal to the loading direction.

 

Material Properties

The material properties corresponding to the jointed rock are given below.

 

Intact Rock Properties

Value

Young's modulus (MPa)

3000

Poisson's ratio

0.30

Porosity

0.20

Density (kg/m3)

2710

 

 

Fracture Properties

Fracture Set 1

Fracture Set 2

Fracture Set 3

Fracture spacing (m)

0.25

0.25

0.25

Initial normal stiffness (MPa/m)

1500

1000

1200

Initial aperture (m)

0.020

0.010

0.030

Maximum joint stiffness (MPa/m)

30000

30000

30000

 

 

 

 

Basic Set Up: Data file description

 

For the present case the inverted parameters (stiffness of the three fracture sets) are defined via arbitrary user-defined names. Consequently the template datafile is defined identical to the reference solution data file with exception that the parameters to be inverted are not input a value but rather are defined with "<p>ParameterName<p>" where "ParameterName" is the arbitrary name defined for such parameter. In the present case the three stiffness (one for each fracture set) that we aim to invert are named "Stiff1", "Stiff2" and "Stiff3" respectively. Below there is an example of the template data file.

 

Template File Setup

Keywords relevant to the setup of fracture with nonlinear stiffness are shown below.

 

Data File

 

 

* Fracture_data               NUM=1

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

                .

                .

Normal_stiffness_model    "Bandis"

 Normal_stiffness_properties IDM=3

   /Joint Stiffness/   <p>Stiff1<p>

   /Initial Aperture/         0.020

   /Maximum Joint Stiffness/ 30000

 

* Fracture_data               NUM=2

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

                .

                .

Normal_stiffness_model    "Bandis"

 Normal_stiffness_properties IDM=3

   /Joint Stiffness/   <p>Stiff2<p>

   /Initial Aperture/         0.010

   /Maximum Joint Stiffness/ 30000

 

* Fracture_data               NUM=3

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

                .

                .

Normal_stiffness_model    "Bandis"

 Normal_stiffness_properties IDM=3

   /Joint Stiffness/   <p>Stiff3<p>

   /Initial Aperture/         0.030

   /Maximum Joint Stiffness/ 30000

 

1The normal fracture stiffness of the three fracture sets are named, respectively, "Stiff1", "Stiff2" and "Stiff3" under the Fracture_data data structure.

 

2It is important to include "<p>" before and after the ParameterName so that ParaGeoInv can identify the variables.

 

3These entries serve as placeholders for iterated values as the algorithm searches for optimal solutions.

 

 

 

 

In the following, we focus on the descriptions of ParaGeoInv data file provided in GeoInv_003\Data\GeoInv_003.inp.  The basic data includes:

 

1Application_data identifies the directory of ParaGeo solver

2Parameter_data sets optimisation parameters, including variable name, initial value, minimum/maximum values, corresponding data structure name and number. In this example, the use of arbitrary defined parameter names is demonstrated.

3NA_options defines the tuning parameters of Nearest Neighbour algorithm and convergence tolerance. Users are also given flexibility to manage (i.e. keep or delete) the generated test models.

4File_data identifies the directory of template, target and test files. The name of template file is also required.

5Misfit_data_set specifies type of data to be compared between target and model solutions. The computation of corresponding misfit value is based on selected error type.  

6Inverse_case chooses misfit data set(s) to be used. This data structure offers to run multiple cases, with the aim of homogenising the same optimisation variable.

 

Application_data

 

Application_data defines control data for inverse analysis, including application platform for forward analysis, experiment type and optimisation algorithm to be used.

 

Data File

 

 

* Application_data

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

Application           "Parageo"

 Inversion_algorithm   "NAInverse"

 Parageo_dir           "C:\parageo\x64"

 Experiment            "Material"

 

1ParaGeo is selected as the application platform.

 

2NAInverse (Nearest neighbour algorithm) is called. This is the only optimisation algorithm at the moment.

 

3Directory of ParaGeo is identified via Parageo_dir. If not set the path will be assumed the one defined for PARAGEOHOME environment variable.

 

4Experiment type is set as 'Material'.  

 

 

Parameter_data

 

Parameter_data defines parameter(s) and its range to be considered in inversion analysis.

 

Data File

 

 

* Parameter_data

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

 Name                       IDM=3

   "Stiff1" "Stiff2" "Stiff3"

 Type                       IDM=3

   0 0 0

 Value                      IDM=3

   1E2  1E2  1E2

 Minimum_value              IDM=3

   1E2  1E2  1E2

 Maximum_value              IDM=3

   1E4  1E4  1E4

 

1The optimisation variables, corresponding to the normal fracture stiffness of all fracture sets, are named "Stiff1", "Stiff2" and "Stiff3", respectively.

 

2Variable Type = 0 refers to parameter to be solved. In this case, all parameters are to be solved (value not prescribed).

 

3Values defined within the Value keyword are not used as all parameters are Type = 0.

 

4The minimum values of initial normal stiffness are 1E2 for all fracture sets.

 

5The maximum values of initial normal stiffness are 1E2 for all fracture sets.

 

 

NA_options

 

NA_options defines the control options for the nearest neighbour algorithm.

 

Data File

 

 

* NA_options

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

 Algorithm                  "Auto"

 Convergence_tolerance      0.0005

 Maximum_num_samples            40

 Num_models_in_initial_sample    8

 Num_models_in_sample            8

 Num_models_in_resample          4

 Number_models_output            5

 Model_delete_option             "KeepBest"

 Model_clean_option              "KeepSpec"

 Model_results_keep  IDM=1

   "History"

1Algorithm = "Auto" refers to termination of computation once convergence tolerance is satisfied.

 

2Convergence_tolerance is set at 0.0005.

 

3Maximum_num_samples is set as 40.

 

4There are 8 models in the initial sample (Num_models_in_initial_sample).

 

5There are 8 models in subsequent samples (Num_models_in_sample).

 

6The 8 models in each subsequent sample (resample) are generated from the 4 best models.

 

7The 5 most optimal models will be output (Number_models_output) to the result file and will be the only ones for which the datafile in Test subfolder will be kept (Model_delete_option set to "KeepBest"). The model results kept for the best 5 models are the history results.

 

 

File_data

 

File_data defines the working directories of data files that are crucial to the inversion analysis.

 

Data File

 

 

* File_data

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

 Template_file "Case_3_fracture.dat"

 Template_directory     ".\Template"

 Target_directory         ".\Target"  

 Test_directory             ".\Test"    

 

1Template_file identifies the name of the template data file stored in Template_directory.

 

2Directory of target solution are stored in Target_directory.

 

3During optimisation computation, the generated model data files are stored in Test_directory.

 

 

Misfit_data_set

 

Misfit_data_set specifies type of data to be compared between target and model solutions. The computation of corresponding misfit value is based on selected error type.  

 

Data File

 

 

* Misfit_data_set            NUM=11

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

Error_type              "NormAve"

 Experiment_filename "GeoInv_003_ref_001.hdh"

 Experiment_variable_IDs     IDM=3

   "Strs_xx"

  "Strs_yy"

  "Strs_zz"

 Model_set_number                1

 Model_variable_IDs          IDM=3

   "Strs_xx"

  "Strs_yy"

  "Strs_zz"

 

1Error_type based on normalised average is specified.

 

2Target solution stored as "GeoInv_003_ref_001.hdh" is defined under Experiment_filename.

 

3Experiment_variable_IDs (target solution variables names used for misfit calculation)  "Strs_xx", "Strs_yy" and "Strs_zz" are specified.

 

4Model_set_number is set as 1. This sets the model History_point set NUM=1 as the data source for comparison with the target solution.

 

5Model_variable_IDs "Strs_xx", "Strs_yy" and "Strs_zz" are specified.

 

 

Inverse_case

 

Inverse_case chooses misfit data set(s) to be used.

 

Data File

 

 

* Inverse_case                NUM=1

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

 File_data_num                   1

 Misfit_data_sets            IDM=1

   11

 

1Inversion analysis is performed using data files and folders specified in File_data NUM=1 (File_data_num = 1), and misfit data set specified in Misfit_data_set  NUM=11.

 

 

 

 

Results

 

A number of 26 samples, comprising of 208 models have been performed before reaching convergence. Iteration was terminated when Model 202 was identified to satisfy the convergence criteria. It should be noted however that given the randomness of the inverted parameter values input for the generated models these results are only representative of the specific run used to generate the provided tutorial results. The result files for the project are in directory: GeoInv_003\Results.

 

As shown in the plot below, a number of models with misfit value lower than 1% were identified towards the end of the inverse analysis. All stiffness values converge to a set of optimal solution (with stiffness for fracture sets 1 and 3 being inverted with 100% of accuracy), which reproduces the solutions of Stress XX, Stress YY and Stress ZZ comparable to target solutions. Low percentage error was observed.

 

Misfit Value

 

Inv_example3_002

Reduction of misfit towards value lower than 1% error

 

 

 

Optimal Initial Normal Stiffness for the Three Fracture Sets

 

Inv_example3_003

Nearest Neighbour algorithm in search of optimal initial fracture stiffness for the three fracture sets. Horizontal red lines indicate values used to generate target solution.

 

 

 

Comparison with Target Solution

 

Inv_example3_006

Comparison of optimal model stresses with the reference solution stresses.