Hi all,
I set up a water table in my script (I’m using FLAC 2D v.8).
When I apply a water table in a static analysis (i.e. without groundwater flow), I have to specify the saturated densities of the submerged materials. I am trying to do this using a fish function and taking my cue from an exercise in the manual (ref. attached pdf). In the exercise, a function ‘wet_density.fis’ (ref. attached material) is created which associates each zone below table 1 with a density value of 1800. The case is quite simple because the entire model consists of one type of material. My goal, however, is to associate different density values depending on the material group. Likewise, I want to specify that all areas above the water table must retain the unsaturated density value corresponding to the group to which they belong.
In the original script I defined 4 groups as follows:
group ucl reg 16, 78
mod el group ucl
*prop den 20000 bulk 2.68E10 shear 6.99E9 reg 16,78 *
group bc reg 4, 68
mod el group bc
prop den 20000 bulk 8.5E8 shear 2.5E8 reg 4, 68
group gl reg 39, 56
mod el group gl
prop den 20000 bulk 2.68E9 shear 6.99E8 reg 39, 56
group lcl reg 16, 12
mod el group lcl
prop den 20000 bulk 10E10 shear 5E10 reg 16, 12
(Densities are the same and very high just to see if the script works).
I am trying to set up this function ‘wet_density_3.fis’ (ref. attached material), which precisely updates the density values above and below the water table, because I want to reproduce a sequential analysis in which I vary the water table level several times:
def wet_density_3
-
loop i (1, izs)*
-
loop j (1, jzs)*
-
if model(i,j)#1 then*
-
xc = x(i,j) ; Get the x-coordinate of the zone*
-
yc = y(i,j) ; Get the y-coordinate of the zone*
-
; Check if yc is below table 1*
-
if yc < table(1, xc) then*
-
; Check which group the zone belongs to and assign density*
-
if z group(i,j) = ucl then*
-
density(i,j) = 5000*
-
else*
-
if z group(i,j) = bc then*
-
density(i,j) = 6000*
-
else*
-
if z group(i,j) = gl then*
-
density(i,j) = 7000*
-
else*
-
if z group(i,j) = lcl then*
-
density(i,j) = 8000*
-
endif*
-
endif*
-
endif*
-
endif*
-
else*
-
; Above the table, maintain the original density of the group*
-
if z group(i,j) = ucl then ; 'UCL'*
-
density(i,j) = 1000 ; Original density for UCL*
-
else*
-
if z group(i,j) = bc then ; 'BC'*
-
density(i,j) = 3000 ; Original density for BC*
-
else*
-
if z group(i,j) = gl then ; 'GL'*
-
density(i,j) = 5000 ; Original density for GL*
-
else*
-
if z group(i,j) = lcl then ; 'LCL'*
-
density(i,j) = 7000 ; Original density for LCL*
-
endif*
-
endif*
-
endif*
-
endif*
-
endif*
-
endif*
-
endloop*
-
endloop*
end
Unfortunately, however, the function I wrote does not seem to work: it is read by the script but does not lead to any change.
Any idea where the problem might be?
Thank you in advance for your availability,
sopu_uni_geom_new.txt (1.5 KB)
wet_density_3.fis (2.0 KB)
f2d446.pdf (117.4 KB)