DFN problem in V5.2

Hello,I encountered some problems when using DFN
In my understanding, the four numbers in the third line of the code (gauss 80,5,120,5) respectively represent (the mean of the dip, the standard deviation of the dip, the mean value of the dip-direction, the standard deviation of the dip-direction) , but why does this error appear after starting to run ?
Thank you


image

Hello,

It might be a result of the number of standard deviation 3DEC uses to distribute the fracture orientation around the mean value (I am not sure how many it uses, Itasca mates may help us in this regard). Let say, if it uses 3 standard deviations, then the dip value for some fractures of your defined DFN will go beyond 90 degrees (80+3*5=95).
If I was in your shoes, I would decrease standard deviation (let say 2) and generate the DFN; then extract the orientation data of generated DFN using FISH to see if the dip values are distributed as my expectations or not.

I hope this will help.
Dariush

Thank you @DariushJ for your reply

1 Like

This is actually an interesting problem. The dip may indeed be greater than 90 according to the statistical distribution. In version 5.2, this throws an error. In version 7, this is prevented - you cannot have a dip greater than 90.

However, this is not really what you want. Imagine a you specify a dip of 85 and a standard deviation of 20. You would expect some joints to have a dip greater than 90. This should translate into a dip of less than 90 and a dip-direction flipped by 180 degrees.

Version 7 prevents dips greater than 90 so you get a stereonet as in the first figure below. What you really want is the second figure below. I’ll see if I can fix it in the code. In the short term you could make it work with a FISH distribution as shown (for v7, you can probably translate to 5.2):

fish def orient_(dip_mean, dip_stddev, dd_mean, dd_stddev)
local dip = math.random.gauss * dip_stddev + dip_mean
local dd = math.random.gauss * dd_stddev + dd_mean
if dip > 90
dip = 180 - dip
dd = dd - 180
endif
orient_ = vector(dip,dd)
end

fracture template create ‘p10’ orientation fish orient_ 85 20 120 5 size power-law 4 s-limit 1 40

bad

good

1 Like

Follow-up on this. It seems that the FIsher distribution behaves as you would expect. See plot below for this command:
fracture template create ‘p10’ orientation fisher 85 120 30 size power-law 4 s-limit 1 40

The only downside here is that you can’t give different distributions for dip and dip direction.

sorry but I still get error when I use this code


image