Matlab model Christ and Goltz

From Limestone
Jump to: navigation, search

Matlab model for the calculation of capture zones of wells by Christ and Goltz

% CaptureZone2000.m
% Script for calculating the capture zone of the wells 
% Akacievej, Floeng. 
%
% Based on the paper of Christ and Goltz, J. Hydrology, v262, 224-244, 2002.
%
% Code based on a script written by MSc students
% Lise Celine Pedersen and Kristine Duelund Vilsgaard 
%
% Philip Binning, August 2013.
% Klaus Mosthaf, August 2014.
clear all
close all
clc

%% Variable definitions

K=1e-3; % Conductivity [m/s], lowest one: 8e-5 m/s
GradH=-0.0008; % Hydraulic head gradient
U=-K*GradH; % Darcy flux [m/s]
Ho=20.0; % Reference head at K11 [m]
B=25; % Aquifer thickness [m] 15-35m
alpha=25/360*2*pi; % 2*3.14; % Angle of flow with x-axis in radians, N-NE


Q(1)=23000/365/24/3600;%2.5/3600; % Pump rate at Hedehusene vestre [m3/s]
Q(2)=80000/365/24/3600;%12/3600; % Pump rate at Hedehusene østre [m3/s]
Q(3)=15/3600; % Pump rate Akacievej (remedial pump) [m3/s]
Q(4)=8500/365/24/3600;%/3600; % Pump rate in 106390 Marbjerg VV [m3/s]
Q(5)=70000/365/24/3600;%/3600; % Pump rate in Position of Fløng WW 1 [m3/s]
Q(6)=3500000/365/24/3600;%/3600; % Pump rate in Solhøj WW [m3/s], 3.7-6.5 Mio. m3/yr
Q(7)=0/365/24/3600;%/3600; % Pump rate at Nyfløng [m3/s]
Q(8)=830000/365/24/3600;%115/3600; % Pump rate in Katrinebjerg [m3/s], 0.8-1.2 Mio. m3/yr
Q(9)=10000/365/24/3600;%3600; % Pump rate in Soderup [m3/s], 0.8-1.2 Mio. m3/yr
Q(10)=4200000/365/24/3600; % Pump rate in Marbjerg kildeplads [m3/s]
Q(11)=70000/365/24/3600; % Pump rate in Fløng 2 [m3/s]
Q(12)=13500/365/24/3600; % Pump rate in 106400 [m3/s]

% for i=1:8
%     Q(i)=0; % Set all pumping rates to zero
% end

% Coordinate system and grid
xmin=-3440;
xmax=7710;
xstep=10;
ymin=-3010;
ymax=4370;
ystep=10;
ixo=round(-xmin/xstep);  % index of point at (x,y)=(0,0)
jyo=round(-ymin/ystep);

X=(xmin:xstep:xmax);
Y=(ymin:ystep:ymax);
[X,Y]=meshgrid(X,Y);

% Positions of wells 

x(1)=2060; y(1)=-35; % Position of Hedehusene vestre vv (K11)
x(2)=2525; y(2)=300; % Position of Position of Hedehusene østre vv
x(3)=2520-1000; y(3)=1985-1000; % Position of remedial pump
x(4)=1305-1000; y(4)=2598-1000; % Position of 106390 (Marbjerg)
x(5)=2300-1000; y(5)=2742-1000; % Position of Fløng WW
x(6)=4913-1000; y(6)=-1100-1000; % Position of Solhøj WW
x(7)=1790; y(7)=550; % Position of 106400
x(8)=5682-1000; y(8)=7040-1000; % Position of origin
x(9)=1925; y(9)=3200; % Position of remedial pump
x(10)=-1200; y(10)=1950; % Position of Marbjerg Vandværk
x(11)=1860; y(11)=1960; % Position of remedial pump
x(12)=5910; y(12)=480; % Position of remedial pump
x(13)=2552-1000; y(13)=1956-1000; % Position of remedial pump
namew{1}='Hedehusene vestre';
notew{1}='22.000 m^3/yr';
namew{2}='Hedehusene østre';
notew{2}='100.000 m^3/yr';
namew{3}='Akacievej';
notew{3}='22.000 m^3/yr';
namew{4}='Marbjerg By'; %(106390)
notew{4}='10.000 m^3/yr';
namew{5}='Fløng 1'; %(106387)
notew{5}='140000 m^3/yr';
namew{6}='Solhøj WW';
notew{6}='3.700.000 m^3/yr';
namew{7}='Nyfløng';
notew{7}='0 m^3/yr';
namew{8}='Katrinebjerg';
notew{8}='1.000.000 m^3/yr';
namew{9}='Sodereup';
notew{9}='10.000 m^3/yr';
namew{10}='Marbjerg';
notew{10}='4.800.000 m^3/yr';
namew{11}='Fløng 2'; %(106387)
notew{11}='70000 m^3/yr';
namew{12}='Høje Thorstrup';
notew{12}='105.000 m^3/yr';
namew{13}='Akac_out';
notew{13}='105.000 m^3/yr';


% Definition of the complex field W
Z=X+1i*Y;
W=-U*Z*exp(-1i*alpha);
for j=1:12 % loop over number of wells
    zj=x(j)+1i*y(j);
    W = W + Q(j)/(2*pi*B)*log(Z-zj);
end

% Set constant C in Christ equation (1) so that Head at (0,0) = Ho.
% Remember here that H=phi/K and that real(w)=phi.

W = W + Ho*K - real(W(ixo,jyo)); 

%% Background map
scrsz=get(0,'ScreenSize');
figure('Units', 'normalized', 'OuterPosition',[0.01, 0.01, .8, .8])

%I=imread('FloengHedehusene_noAnnotations.jpg');
%I=imread('DWplants_cut.png');
I=imread('VandvaerkLarge_cut.png');
imagesc([xmin xmax], [ymax ymin], I)
set(gca,'YDir','normal')

%% Plot contours and streamlines
figure(1)
hold on
[C1,h1]=contour(X,Y,imag(W),45,'blue');  
[C2,h2]=contour(X,Y,real(W)/K,'color',[0,0.7,0],'linewidth',2); % Divide by K, since it is velocity potential
set(h2,'LevelStep',0.5);
set(h2,'ShowText','on','TextStep',get(h2,'LevelStep')*2);
axis equal;
axis([xmin xmax ymin ymax]);
legend('show','Streamlines','Potentials','Location','NorthWest');
xlabel('Distance [m]'); ylabel('Distance [m]');

% Plot wells and contaminated site.
for j=1:12
    plot(x(j),y(j),'.r', 'MarkerSize', 20)
    text(x(j)+50,y(j)+90,namew{j}, 'FontSize', 16)
%    text(x(j)+50,y(j)-80,notew{j}, 'FontSize', 14)
end

Back to Useful tools