MatLab code
Type of resources
Topics
Keywords
Contact for the resource
Provided by
Years
Formats
Update frequencies
-
This information details the method of calculating dilatancy from pore volumometry measurements. In the velocity step tests, an initial shear enhanced compaction phase drastically reduces the sample pore volume until the sample yields. After the sample yields, the pore volume continues to decrease but at a lower rate of decrease. The imposed velocity steps cause compaction or dilation of the sample material that is superimposed on this overall compaction trend. Pore pressure is held at a set point in all tests and any volume changes in the control system are assumed to correspond directly to changes in pore volume in the sample. The method here is aimed at producing quantitative, reproducible values for dilatancy from experimental data. The script fits a polynomial function to all the volume data to give the overall trend of the shear enhanced compaction. The data position of the start of the velocity step of interest is entered manually into the function. When dilatancy occurs on a step change in velocity, this is not immediately recorded using volumometry, as the permeability of the sample will produce a transient response as pore fluid pressure equilibrates between the sample and the pore fluid pressure system. To discount time effects, every velocity step was processed with a ‘time_dep’ phase for the first 100µm of displacement after the imposed velocity step change. Using the values for ‘vel_step’ and ‘time_dep’, the volumometry data are split into separate matrices incorporating time and volume preceding and following the velocity step change. A linear regression model fits a polynomial curve to the pore volumometry data and returns the coefficient of determination (R2) for the fit of the model. The shear enhanced compaction phase prior to yield is included in the fit. The code incrementally adds the value entered for ‘step’ to the data in the velocity step of interest. This ‘step’ value is a positive or negative value depending on whether the velocity has increased or decreased, respectively. A new linear regression model is then fitted to the whole dataset and if the R2 value has increased, the code will continue to loop to add the value of ‘step’ to the pore volume data. It concludes when the R2 value reaches a peak and begins to decrease, as the fit is no longer improving. We assume at this point that the effect of the dilatancy due to the velocity step has been removed, and the cumulative sum of the ‘step’ values is equivalent to the dilatancy. As the loop goes one iteration past the optimum R2 value, the code reverts to the previous set of values with the best R2 value. In experiments with multiple velocity step changes, the code needs to retain the previous corrections of the data. The function ‘pf_correct’ is used to correct the velocity steps that have been previously processed. The values for ‘vel_step’, ‘time_dep’ and the returned value of ‘offset’ need to be given in the inputs for ‘pf_correct’.