0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
331 tayangan8 halaman
Explicit numerical integration is an effective way of modelling differential equations. We use a forward Euler time-stepping method to model the 2 dimensional pressure diffusion through the crust after seismogenic faulting, a process in which a low- permeability seal, overlying a sill-like water rich reservoir, is ruptured and causes the overpressured fluid below to propagate upwards into the fault zone. Seismogenic events are hypothesised to be related to strong aftershocks following the L’Aquila earthquake in central Italy. However, our model showed that a 20MPa pressure contour propagates through the surrounding layers too slowly after initial faulting to explain the aftershock activity at L’Aquila. The model set up assumes certain geological constraints, which make it difficult to determine the reliability of the model results and underlines the need for further model
testing and a greater emphasis on more informed geological constraints.
Judul Asli
Investigations into the aftershock distribution of the L’Aquila earthquake – modelling porous fluid flow and pore pressure changes.
Explicit numerical integration is an effective way of modelling differential equations. We use a forward Euler time-stepping method to model the 2 dimensional pressure diffusion through the crust after seismogenic faulting, a process in which a low- permeability seal, overlying a sill-like water rich reservoir, is ruptured and causes the overpressured fluid below to propagate upwards into the fault zone. Seismogenic events are hypothesised to be related to strong aftershocks following the L’Aquila earthquake in central Italy. However, our model showed that a 20MPa pressure contour propagates through the surrounding layers too slowly after initial faulting to explain the aftershock activity at L’Aquila. The model set up assumes certain geological constraints, which make it difficult to determine the reliability of the model results and underlines the need for further model
testing and a greater emphasis on more informed geological constraints.
Hak Cipta:
Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PDF, TXT atau baca online dari Scribd
Explicit numerical integration is an effective way of modelling differential equations. We use a forward Euler time-stepping method to model the 2 dimensional pressure diffusion through the crust after seismogenic faulting, a process in which a low- permeability seal, overlying a sill-like water rich reservoir, is ruptured and causes the overpressured fluid below to propagate upwards into the fault zone. Seismogenic events are hypothesised to be related to strong aftershocks following the L’Aquila earthquake in central Italy. However, our model showed that a 20MPa pressure contour propagates through the surrounding layers too slowly after initial faulting to explain the aftershock activity at L’Aquila. The model set up assumes certain geological constraints, which make it difficult to determine the reliability of the model results and underlines the need for further model
testing and a greater emphasis on more informed geological constraints.
Hak Cipta:
Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PDF, TXT atau baca online dari Scribd
Investigations into the aftershock distribution of the LAquila earthquake
modeling porous fluid flow and pore pressure changes
CHARLIE KENZIE Department of Earth Sciences, University of Durham 2013 1. INTRODUCTION
1.1 Geological and tectonic background The central Italian region of Abruzzi, and the large town of LAquila, are located on the Appenines thrust belt (Chiarabba et al 2009), a tectonically active region, which runs in a NW SE direction through central Italy (Butler et al 2004), (Fig.1). Progressive thinning of the Apennines thrust belt is mainly accommodated by the faults in the central regions of Abruzzi and Umbria, with regular seismic events occurring throughout the Northern Apennines. However, seismic activity further south, in central Abruzzi, has remained relatively low throughout the last few decades (Bagh et al 2007).
On April 6 th 2009 an M W 6.3 earthquake occurred at a depth of 9km, its epicenter only a few km away form LAquila (Atzori et al 2009), (Fig.1). After the M W 6.3 event, two additional earthquakes, M W 5.6 and M W 5.4, occurred at the edges of the main fault structure (Chiarabba et al 2009).
1.2 Fracture criterion The Coulomb fracture criterion is given by the equation
o s - = c + o n
where
o s - is the magnitude of the critical shear stress,
is the coefficient of internal friction, and
c is the geological constant cohesion, which describes the resistance to shear fracture on a plane across which the normal stress is zero (Twiss & Moores 1992). Whenever the surface planar stress components (
o n and
o s - ) satisfy Equation (1) a shear fracture can develop along that plane.
When pore fluids are present in a rock, the rock behaves as though the confining pressure has decreased by an amount equal to that of the pore fluid pressure P F (Twiss & Moores 1992), and in this case, the fraction criterion remains the same apart from the normal stress
o n is replaced by effective normal stress
Eo n , which yields the equation
o s - =c+ Eo n ( ) =c+o n P F ( ) where
Eo n = o n P F ( )
The effect of adding pore fluids to a fracture system causes the critical shear stress
o s - to decrease. This is geologically significant since ABSTRACT Explicit numerical integration is an effective way of modeling differential equations. We use a forward Euler time-stepping method to model the 2 dimensional pressure diffusion through the crust after seismogenic faulting, a process in which a low- permeability seal, overlying a sill-like water rich reservoir, is ruptured and causes the overpressured fluid below to propagate upwards into the fault zone. Seismogenic events are hypothesized to be related to strong aftershocks following the LAquila earthquake in central Italy. However, our model showed that a 20MPa pressure contour propagates through the surrounding layers too slowly after initial faulting to explain the aftershock activity at LAquila. The model set up assumes certain geological constraints, which make it difficult to determine the reliability of the model results and underlines the need for further model testing and a greater emphasis on more informed geological constraints. Fig.1 (a) Aftershock distribution of the LAquila earthquake along the Campotosto fault plotted as distance from the main shock. Starred symbols represent main aftershock events. (b) Seismicity of the LAquila area. Focal mechanism from CMT inversion for the three main events are shown, together with aftershock distribution, the historical seismicity (red circles) and the active faults (black lines). (1) (2) there is a decrease in differential stress necessary to cause failure and this allows fractures to occur in places where the rock would otherwise be stable.
1.3 Fluid reservoirs As discussed above, a high fluid pore pressure can cause fault zones to become unstable. Zones of fluid overpressure are commonly associated with seismogenic faulting (Sibson 1990), a process in which a low-permeability seal, overlying a sill-like water rich reservoir, is ruptured and causes the overpressured fluid to propagate upwards into the fault zone (Gudmundson 1999). Conditions for the formation of a sub horizontal high porosity layer is that when the vertical stress is the minimum compressive stress, a condition that is commonly satisfied by areas of thrust faulting (Gudmundson 1999). If the fluid reservoir is then sealed off from the surroundings, usually by a low permeability layer, then its fluid pressure P F may become greater than the lithostatic pressure above it.
1.5 Seismogenic faulting at LAquila If high fluid overpressure is present in rocks it is possible for large magnitude earthquakes to be released when failure of the rock occurs. It is hypothesized that the LAquila earthquake caused the seals of high porosity layers to fail, allowing for seismogenic faulting great enough to account for the large aftershocks that occrred soon after the initial LAquila earthquake (Fig.1), (Chiarabba et al 2009).
2. MATLAB MODEL
2.1 Setting up the model To investigate the possible links of seismogenic faulting with the LAquila aftershocks, we aim to create a model that will compute the pressure diffusion through the crust after faulting. We set up a model that assumes two porous layers each 5 km thick with a uniform permeability k norm = 10 -15 m 2 . The layers are separated by a 400m thick seal with a much lower permeability k seal =10 -18 m 2 . The top layer is assumed to have a hydrostatic pore fluid pressure, and the bottom layer has an overpressure of 200 MPa above that of the hydrostatic pressure. To model the pressure distribution caused by faulting, the MatLab code is set up so that at time t = 0 the seal is ruptured by a much higher permeability vertical fault k fault =
10 -12 m 2 , also about 400m thick. The fault is modelled to run completley through both layers, the geometry of the layers and the permeability field is shown in Fig.2. Fluid flow through the crust, and the diffusion of pressure is taken from Darcys law, which is given in 2 dimensions by 2 2 2 2 P P P t x z | k | | c c c = + | c c c \ .
where 1 | k |q = and P = hydrostatic pressure, = porosity, = fluid compressibility and = fluid viscosty. Darcys law can be modelled numerically by using a forward Euler time-step. Discretization of Darcys law yields
1 1 1 1 2 2 2 2 old old old new old old old old j j j i i i i i f f f f f f f f t x z k + + | | + | | + = + | | | A A A \ . \ .
The time step formula was implmented into a MatLab code, which can be seen in the appendix. The benefits of applying this method, is that it is capable of reaching high numerical accuracy whilst being relatively easy to implement.
2.2 Discretization and time stepping Since we are modelling layers in the order of 1000s of meters, the discretization steps dz and dx were initially chosen as 100m, which allows sensible precision without overloading computation. Additonally, since time integration methods are only conditionally stable, it is important to choose a time step that is no larger than the critical time step, otherwise the numerical solution may become unstable (Askes et al 2011). Therefore in this case we used a von Neumann stability analysis to calculate the stability criterion. From the discretized formula of Darcys law, Equation 4, the error propogates as 1 1 1 1 2 2 2 2 old old old new old old old old j j j i i i i i t x z c c c c c c c c k + + | | + | | + = + | | | A A A \ . \ . giving Fig.2 Permeability field: fault shown in white, the seal shown in black and the surrounding rock shown in grey. (3) (4) (5) 1, , 1 , 1, , 1 (1 4 ) new old old old old old ij i j i j i j i j i j r r r r c c c c c c + + = + + + + where 2 t r x kA = A
taking the worst case scenario, where errors compile , 1, 1, , 1 , 1 old old old old old i j i j i j i j i j c c c c c + + = = = = finally yields ( ) 1 8 new old i i r c c = and 1 8 1 r < or 1 4 r < This results in the stability criterion given by 2 4 crit x t k A A = where k k ||q = and k is permeability In the model we define k as the permeability of the seal k seal as this is the most permeable layer and will result in the critical time step being as low as possible. Additionally we set the time step as a fraction of the crtical one (appendix code line 16). This stops the error from increasing as computations in the model are continued, in other words, it ensures a stable system.
3. MODEL RESULTS 3.1 Running and testing the model The completed model is displayed in Fig.3, which shows the diffusion of pressure upwards through the fault from the overpressured layer into the upper layer. With the initial parameters chosen as outlined above, the pressure diffusion through the layers is confined to within the fault. It is important to thouroughly quantitively test the model so a benchmarking technique was carried out to compare my model against two independent codes. Exactly the same parameters were chosen for both the models and run for the same amount of time, and they can be compared in Fig.4 below. The models show slight differences in the widths of the fault, but otherwise they agree on the rate at which pressure is diffusing through the fault and that it is confined to the fault. This is a good sign that our model is numerically accurate. 3.2 Resolution tests To investigate the accuracy and speed of the model we first run a spatial resolution test by changing the dz and dx parameters (Appendix code lines 5 & 6). A significant increase in the spatial resolution, dz and dx = 1000m, and causes the model to become numerical unstable. Additionally, the higher discretizaton steps only cause the computation to slow by about 1 second, showing that a lower resolution, such as 100m, is suitable as it allows accurate computation without forfeiting significant time for the model to run.
Increasing the timestep from a small fraction to a large fraction of the stability criterion showed no noticible effect on the model. Only time steps over the critical value caused instability in the model, and significant errors were only noticed at values much greater than the critical value. As expected, smaller time steps caused computations to be carried out much slower. When the model was run at a tenth of the stability criterion the model took almost a minute to compute for around 6000 seconds, where as the time step at a value nine tenths of the critical time step, computed for 12000 seconds in around 23 seconds. Since a higher value timestep does not seem to inhibit the model performance, we proceeded with a value of nine tenths of the stability criterion (Apppendix line 16). Fig.3 Diffusion of pressure from an overpressure layer after a vertical fault ruptures an impermeable seal. Vertical distribution of pressure shows that the pressure diffusion is confined to the fault. Fig.4 Benchmarked models ran with exactly the same parameters and ran for the same number of time steps. Similarity with my model suggests that the model is numerically accurate. (J.Hooker 2013) and (E.Gregory 2013). (6) (7) (8) 3.3 Vector field and 20MPa contour To investigate the direction of pore fluid pressure diffusion, a vector plot was added to the model (Fig.5). The blue arrows show the velocity field of the pore fluid, which is obtained from Darcys law x k dP u dx q = where k = peremeability, = fluid viscosity and u x = the volumetric flow rate per unit area in the x-direction. The vector plot gives an idea of the direction that the pore fluid pressure moves from the bottom overpressured layer into the fault. The 20MPa contour is plotted ontop of the vector field (Fig.5). The model shows that the 20MPa contour rises through the fault and the upper layer at a velocity of approximately 0.05 ms -1 , or 142 mhour -1 . Additionally, the depth of the 20MPa contour is also plotted against time in Fig.5c, and shows that after 10 days (900,000 seconds) the contour has migrated almost 4km from the centre of the fault.
3.4 Changing the permeability of the layers If we change the permeability of the seal so that it is less than, or near to, the permeability of the fault, pressure diffusion through the layers is no longer confined to the fault and instead moves through the seal and the fault. When the permeabilities of the seal and the fault are made equal (Fig.6b), pressure diffuses rapidly through the seal, and travels more slowly through the fault (Fig.6b). This is also shown by the 20MPa contour, as it also moves more slowly through the layers (Fig.6b). Additionally, when the permeabilities are equal the 20MPa contour also travels less distance away from the seal, and is shown to become stable and level out after 6days (Fig.6a). 4. DISCUSSION 4.1 Numerical accuracy Numerical analysis discussed in section 3.2 shows that the chosen timestep is justifiable as it allows for a stable system and relatively low error. A spatial resolution of 100m allows the model to run in relative stability, however, it still shows some numerical error. This is shown in Fig.7a, which plots the pressure as a function of depth. The model is set up so the pressure changes instantenously at a depth of 5000m, however with a spatial resolution of 100m, the model shows a slight pressure gradient when changing from the top to the bottom layer. Further numerical analysis revealed that improving the spatial resolution computed an instantaneous change in pressure between the layers. However, it was found that a decrease in the discretization steps resulted in the permeability field shrinking by the same factor. This highlights the need for the model to be set up in such a way that the spatial resolution can be altered without having a detrimental effect on the model results and that, in this respect, more time needs to be spent improving the model.
4.2 20MPa contour evidence for seismogenic faulting at LAquila Seismogenic faulting at LAquila is thought to be triggered by pressure pulses, released from the main shock, with amplitudes in the range of 10 20MPa (Miller et al 2004). The distribution of aftershock events is displayed in Fig.1a. Since the 20MPa contour indicates the upper boundary of a pulse that may cause seismogenic aftershocks, it can be used to indicate in our model how far a Fig.5(a) Pressure diffusion through the fault with the vector field shown as blue arrows, 20MPa contour highlighted in blue. (b) Vector field of pore pressure through the fault, 20MPa contour shown as green line. (c) Depth of the 20MPa contour through time with k norm = 10 -15 m 2 , k seal =10 -18 m 2 and k fault =10 -12 m 2 Contour migrates about 4km in 10 days (900,000 seconds). Fig.6(a) 20 MPa contour plotted through time but this time the permeability of the fault and the seal are equal. The contour shows greater depths through time indicating that it is dissipating at a slower rate. (b) Diffusion of pressure moves through the seal as well as the fault when k seal = k fault =10 -12 m 2 . (a) (b) (c) (b) (a) potential aftershock would be from the centre of the fault. When the 20MPa contour is plotted with the initial parameters outlined in section 2.1 (Fig.5c), the contour shows a similar curve geometry to that of the seismic distribution shown in Fig.1a. However, our model indicates that aftershocks would occur much closer to the initial hypocentre over a period of 10 days, with distances from the centre of the fault only a fraction of that required to fit with the aftershock data shown in Fig.1a.
Model analysis involving equating the permeabilities of the fault and the seal show that the 20 MPa contour indicates even smaller distances to possible aftershocks (Fig.6a) with these parameters. This indicates that the permeability of the fault must be reduced in order to increase the rate at which the 20MPa contour migrates through the layers. Increasing the permeability of the fault to 10 -11 m 2 computes a 20MPa contour as shown in Fig.7b.
An increased rate of pressure diffusion allows the model to compute the 20Mpa contour to show an offset of 4km after 1 day (85000 seconds), which aggrees with aftershock data shown in Fig.1. However, because at a lower permeability the fluids can pass through the fault much easier, the 20MPa contour stabilises after just one day, disagreeing with the seismic trend shown in Fig.1a. Further model analysis revealed that even after assigning the overpressure in the second layer to 1000 MPa, and also plotting the 10 MPa contour instead, the plot still did not agree with the seismic data in Fig1a. This indicates that our model is unsuccesful in fully explaining the aftershocks observed at LAquila. It may suggest that further parameters need to be added to the model that may have an effect on the pressure diffusion through the layers. This further underlines the need for further improvement of the model and the implementation of more informed geological constraints.
4.2 Assumptions of the model and conclusion The model assumes a vertical fault, cutting completely through both layers. However, in reality the fault geometries are shown to be oblique and at a variety of angles. Focal mechanisms shown in Fig.1, suggest that the aftershock slip motions were oblique. In addition the fault ruptured by the earthquake developed on a planar 45 SW-dipping fault (Chiarabba et al 2009). Dipping faults are not acounted for in our model and this is likely to cause uncertainties, and the model results are less reliable. Again this underlines the need to improve the model by adding in parameters in aggreeance with geological constraints. Addtionally, we model the seal as a horizontal concordant layer and we assume that all the layers have a constant homogenous permeability. In reality, this is unlikely to be true, as in areas of tectonic activity, where deformation of the crust is common, lihtological layers are rarely horizontal or homogenous in their properties or geometry. It is equally reasonable to suggest that other faults or hydrofractures could cause diffusion of pressure not accounted for by our model.
In conclusion, the model can not be applied to the aftershocks at LAquila. This may be because another mechanism, other than seismogenic faulting, has occurred. Conversley, it could equally be that our model is inadequate to succesfully model this mechanism and that more time needs to be taken to extend the model by adding extra parameters based on informed geological constraints.
REFERENCES
Fig.7(a) 20 Pressure plotted against depth. With a spatial resolution of 100m, an instantaneous change is not computed correctly, indicating the spatial resolution is not high enough (b) 20MPa contour when k fault =10 -11 m 2 , contour stabilizes after one day, disagreeing with seismic data. ASKES, H., Nguyen, D. C., & Tyas, A. (2011). Increasing the critical time step: micro-inertia, inertia penalties and mass scaling. Computational Mechanics, 47(6), 657-667. ATZORI, S., Hunstad, I., Chini, M., Salvi, A., Tolomei, C., Bignami, C., et al. (2009). Finite fault inversion of DInSAR coseismic displacement of the 2009 L'Aquila earthquake (central Italy). Geophysical Research Letters , 36, L15305. BAGH, S., Chiaraluce, L., De Gori, P., Moretti, M., Govoni, A., Chiarabba, C., et al. (2007). Background seismicity in the central Apennines of Italy: The Abruzzo region case study. Tectonic physics(444), 80-92. BAILEY, I. W., & Ben-Zion, Y. (2009, June). Statistics of Earthquake Stress Drops on a Heterogenous Fault in an Elastic Half-Space. Bulletin of the Seismological Society of America, 99(3), 1786-1800. BUTLER, R. W., Mazzoli, S., Corrado, S., De Donatis, M., Di Bucci, D., Gambini, R., et al. (2004). Applying Thick-skinned Tectonic Models to the Apennine Thrust Belt of Italy Limitations and Implications. In K. R. McClay, Thrust Tectonics and hydrocarbon systems (pp. 647-667). AAPG Memoir 82. CHIARABBA, C., Amato, A., Anselmi, M., Baccheschi, P., Bianchi, I., Cattaneo, M., et al. (2009). The 2009 L'Aquila (central Italy) Mw 6.4 earthquake; Main shock and aftershocks. Geophysical research letters 36, 36, L18308. GUDMUNDSSON, A. (1999). Fluid overpressure and stress drop in fault zones. Geophysical Research Letters, 26(1), 115-118. MILLER, S. A., Collettini, C., Chiaraluce, L., Cocco, M., Barchi, M., & Kaus, B. P. (2004, February 19). Aftershocks driven by a high pressure CO2 source at depth. Nature, 427, 724-727. TWISS, R. J., & Moores, E. M. (1992). Structural Geology & Tectonics. California: W. H. Freeman and Company.
(b) (a) APPENDIX function Perm_Modelling 1 tic 2 % initial parameters 3 k = 1e-6; % diffusivity 4 dx = 100 % x-discretization step 5 dz = 100; % z-discretization step 6 kseal = 1e-18 %permeability of seal 7 8 porosity = 0.05 9 beta = 1e-8 % fluid compressibility 10 viscosity = 1e-4 11 kfault = 1e-12;% permeability of fault 12 knorm = 1e-15 %permeability elsewhere 13 kappa = (kfault/porosity/beta/viscosity); 14 coeff = (1/porosity/beta/viscosity); 15 dt = 0.9.*dx^2./(4*kappa); % timestep (see Equation 4 in main text) 16 t=0 % set time to zero 17 Pcontour = 20e6 18 h = 1e4; % box size height( 2, 5km layers) 19 hor = 5e3; % each horizontal box of size 5km) 20 nx = ceil(hor/dx+1); 21 nz = ceil(h/dz+1); 22 nt = 100; % number of tsteps to run code 23 time = zeros(nt,1); 24 fmax = 200e6; % max f-value 25 26 27 x = 0:dx:hor; %creates an array of x from 0 to 5000m 28 z = 0:dz:h; %creates an array of z from 0 to 5000m 29 [xx,zz]=meshgrid(x,z); % build a 2D grid from two 1D ones 30 xxMP = (xx(:,1:end-1)+xx(:,2:end))/2; 31 zzMP = (zz(1:end-1,:)+zz(2:end,:))/2; 32 33 % Initial pressure conditions: 34 Perm=ones(nz,nx).*10^-15; % array of initial permeability 35 fault = floor((2400/hor)*nx):ceil((2600/hor)*nx); % define position of fault 36 seal = floor((4800/h)*nz):ceil((5200/h)*nz); % define position of seal 37 38 % Initial permeability conditions: 39 Perm(seal,1:end) = kseal; % defining permeability of seal 40 Perm(1:end,fault) = kfault; % defining permeability of fault 41 42 % build a 2D grid (similar to xxMP, zzMP) to model changing permeability 43 % through crust 44 PermxMP = (Perm(:,1:end-1)+Perm(:,2:end))/2; 45 PermzMP = (Perm(1:end-1,:)+Perm(2:end,:))/2; 46 % kz = ones(size(zzMP)) 47 % kx = ones(size(xxMP)) 48 49 %kz(seal,1:end)=(kseal/porosity/beta/viscosity); 50 %kx(seal,1:end)=(kfault/porosity/beta/viscosity); 51 52 fold = zeros(nz,nx); 53 xrange = 1:(1*nx); 54 zrange = ceil((5200/h)*nz):nz; 55 fold(zrange,xrange) = fmax; 56 57 % Plot permeability field 58 figure(1), clf 59 pcolor(xx,zz,log10(Perm)); 60 shading FLAT 61 colormap gray 62 xlabel('x') 63 ylabel('z') 64 set (gca,'YDir','reverse'); 65 66 % Plot Pressure with depth to show the resolution of pressure boundary 67 figure (2), clf 68 plot(fold(:,0.5*nx-0.5),z,'LineWidth',4) 69 xlabel('Pressure (MPa)') 70 ylabel('z') 71 72 % timestepping 73 for it=1:nt; 74 %update time 75 t = t+dt; 76 time(it) = t; 77 tyears=floor(t./(60*60*24*365)); 78 79 80 % apply one numerical diffusion timestep: 81 fnew = twoDdiff(fold, xx, zz, xxMP, zzMP, PermzMP, PermxMP, coeff, dt); 82 83 % define a 1D array in the fault to use for contour 20MPa 84 finterp(it) = MYinterp(fnew(:,0.5*nx-0.5),z,Pcontour); 85 86 % plot the pressure through the fault and seal 87 figure(3), clf 88 pcolor (xx,zz,fnew) 89 shading interp; 90 h=colorbar('location','southoutside') 91 ylabel(h, 'Pressure (Pa)') 92 colormap(hot); 93 legend 94 xlabel('x') 95 ylabel('z') 96 title(['time (s)',num2str(floor(t))]) 97 set (gca,'YDir','reverse'); 98 99 % plot the pressure through the fault and seal this time with contour and vector 100 plot overlain 101 figure(4), clf 102 pcolor (xx,zz,fnew) 103 shading interp; 104 h=colorbar('location','southoutside') 105 ylabel(h, 'Pressure (Pa)') 106 colormap(hot); 107 legend 108 xlabel('x') 109 ylabel('z') 110 title(['time (s)',num2str(floor(t))]) 111 axis([1500,3500,3000,7000]) 112 % overlay vector plot 113 hold on 114 [dPdx,dPdz]=gradient(fnew); 115 vx=-Perm.*dPdx/viscosity; 116 vz=-Perm.*dPdz/viscosity; 117 quiver(xx,zz,vx,vz,3) 118 quiver(xx(1:2:end,1:2:end),zz(1:2:end,1:2:end),vx(1:2:end,1:2:end),vz(1:2:end,1: 119 2:end),3) 120 set (gca,'YDir','reverse'); 121 % overlay 20 MPa contour 122 hold on 123 contour (xx,zz,fnew,[20e6, 20e6],'LineWidth',1.5,'LineColor',[0 0 1]) 124 %plot the vector field of pore fluid pressure ascending through the fault. 125 figure(5), clf 126 quiver(xx,zz,vx,vz,3) 127 set (gca,'YDir','reverse'); 128 hold on 129 contour (xx,zz,fnew,[20e6, 20e6]) 130 title(['time (s) at ',num2str(floor(t)),]) 131 axis([1500,3500,3000,7000]) 132 xlabel('x') 133 ylabel('z') 134 %prepare for next time step: 135 fold = fnew; 136 end 137 % %************************************************************************** 138 139 %Plot 20MPa pressure contour against time 140 figure (6), clf 141 plot(time,finterp,'LineWidth',1.5) 142 xlabel(['time (s)',num2str(floor(t))]) 143 ylabel('z [m]') 144 title(['Depth of 20MPa isobar']) 145 146 147 function fout = twoDdiff (fin,xx,zz,xxMP,zzMP,PermzMP,PermxMP,coeff,dt); 148 % (use the same philosophy as for the 1D diffusion code to 149 % calculate 2D diffusion) 150 dfdzz=PermzMP.*diff(fin,1,1)./diff(zz,1,1); 151 d2fdzz2=diff(dfdzz,1,1)./diff(zzMP,1,1); 152 dfdxx=PermxMP.*diff(fin,1,2)./diff(xx,1,2); 153 d2fdxx2=diff(dfdxx,1,2)./diff(xxMP,1,2); 154 % make an array of zeros with size xx, and call dfdt 155 dfdt=zeros(size(xx)); 156 % lay the arrays of d2fdzz2 and d2fdxx2 on top of array of the zeros array. 157 % This is because the two initial arrays are different sizes, and unable to 158 % compute at the boundaries. 159 % This process makes all boundary values 0 and allows for the final 160 % computation of the differential equation. 161 dfdt(2:end-1,2:end-1)=coeff.*(d2fdzz2(:,2:end-1)+d2fdxx2(2:end-1,:)); 162 163 %Apply fixed f boundaries 164 fout=fin+dfdt*dt; 165 166 % Separate function for the 20MPa contour. 167 function finterp = MYinterp(fnew,z,Pcontour) 168 % find interval where f-f0 changes sign: 169 larger=fnew>Pcontour; 170 if sum(larger) == 0; 171 finterp = NaN; 172 else ix=find(diff(larger)==1)+1; 173 % interpolate to find where exaclty on this interval f=f0: 174 finterp=-(z(ix)-(fnew(ix)-Pcontour)/(fnew(ix)-fnew(ix-1))*(z(ix)-z(ix-1))); 175 end 176 toc 177 178