properties of rock

Asked by shiv on 2018-06-16

y

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
2018-07-27
Last reply:
2018-08-12

This question was reopened

  • 2018-07-13 by shiv
Luc Scholtès (luc) said : #1

Hi there,

The main difficulty here is to generate an assembly with the shape of a slope. There is actually no "ready to use" method for doing so but a first workaround would consist in having a look at this section of the doc:

https://yade-dem.org/doc/user.html#sphere-packings

then, you should have a look at the examples provided in the trunk/example/jointedCohesiveFrcitionalPM/ folder where you will find several scripts which will help you a lot since there is, in there, all the material needed to create a simulation where a cylindrical sample containing a persistent fracture plane (with a given dip) is subjected to gravity (which is basically what you want to achieve with a slope geometry instead of the cylinder).

Regarding the "granitic rock properties" of the slope material, this will have to do with the definition of the parameters in your simulation and you could have a look at the following ref to make up your mind about it:

https://www.sciencedirect.com/science/article/pii/S0022509612002268?via%3Dihub

Please have a look at all this and let us know how it goes.

Cheers

Luc

Jérôme Duriez (jduriez) said : #2

Hi,

In terms of examples of a (cubic) slope with some fracture, you may look specifically at

https://github.com/yade/trunk/blob/master/examples/jointedCohesiveFrictionalPM/gravityBis.py

(that's in the folder mentioned by Luc)

Luc Scholtès (luc) said : #3

Right, it is actually a cubic sample and not a cylindrical one that is used in the examples.

Thanks Jerome for the precision.

shiv (shivpreet.ce15) said : #4

Thanks for the help Luc and Jerome. I am trying to model it using your given references but can you help me how can I calculate factory of safety of rock slope with given dip and strike using any appropriate method.
Thanks in advance

Jérôme Duriez (jduriez) said : #5

You may look for instance 4.1 of [Bonilla2015] (https://www.yade-dem.org/doc/publications.html#journal-articles)

shiv (shivpreet.ce15) said : #6

Thank you for help Jerome.But I have tried drawing a slope on autocad 2017 . But I am n't able to understand how to convert my drawing into GTS format which can be used in YADE.

Chareyre (bruno-chareyre-9) said : #7

Is there a *.stl format with autocad?

Le ven. 29 juin 2018 22:32, Shivpreet sharma <
<email address hidden>> a écrit :

> Question #670255 on Yade changed:
> https://answers.launchpad.net/yade/+question/670255
>
> Status: Answered => Open
>
> Shivpreet sharma is still having a problem:
> Thank you for help Jerome.But I have tried drawing a slope on autocad
> 2017 . But I am n't able to understand how to convert my drawing into
> GTS format which can be used in YADE.
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>
>

shiv (shivpreet.ce15) said : #8

Yes it is there *.stl format but can we used this in YADE???

Chareyre (bruno-chareyre-9) said : #9

I think stl is the most used format with yade, but not expert of this part.
You may check the doc of the import functions.
Bruno

Le sam. 30 juin 2018 07:38, Shivpreet sharma <
<email address hidden>> a écrit :

> Question #670255 on Yade changed:
> https://answers.launchpad.net/yade/+question/670255
>
> Status: Answered => Open
>
> Shivpreet sharma is still having a problem:
> Yes it is there *.stl format but can we used this in YADE???
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>
>

Deepak (deepak-kn1990) said : #10

Hello,

There is an utility called stl2gts, which can triangulate the surfaces
using gts. Several examples generating sphere packs are here[2]:
[1]http://manpages.ubuntu.com/manpages/xenial/man1/stl2gts.1.html
[2]https://github.com/yade/trunk/tree/master/examples/gts-horse

On Sat, Jun 30, 2018 at 11:42 AM, Chareyre <
<email address hidden>> wrote:

> Question #670255 on Yade changed:
> https://answers.launchpad.net/yade/+question/670255
>
> Status: Open => Answered
>
> Chareyre proposed the following answer:
> I think stl is the most used format with yade, but not expert of this part.
> You may check the doc of the import functions.
> Bruno
>
> Le sam. 30 juin 2018 07:38, Shivpreet sharma <
> <email address hidden>> a écrit :
>
> > Question #670255 on Yade changed:
> > https://answers.launchpad.net/yade/+question/670255
> >
> > Status: Answered => Open
> >
> > Shivpreet sharma is still having a problem:
> > Yes it is there *.stl format but can we used this in YADE???
> >
> > --
> > You received this question notification because your team yade-users is
> > an answer contact for Yade.
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~yade-users
> > Post to : <email address hidden>
> > Unsubscribe : https://launchpad.net/~yade-users
> > More help : https://help.launchpad.net/ListHelp
> >
> >
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

shiv (shivpreet.ce15) said : #11

Thanks for help all of you.I have Converted stl drawing into gts but the problem which I am facing is that how to add spheres in this gts with predefined material properties.I have tried looking an example from the below link

https://github.com/yade/trunk/blob/master/examples/stl-gts/gts-stl.py

But it's doesn't help me because he was adding in left out space which doesn't consist facets.

I have attached my gts drawing:
https://drive.google.com/file/d/1Z1UZb3XQJsWTr3f6jWaqTdz1fBj56PJN/view?usp=sharing

Please help me out.

Thanks in advance

shiv (shivpreet.ce15) said : #12

And this is my code which I have used till now for further reference:

from yade import pack
import gts, os.path, locale
from yade import qt

surf=gts.read(open('s.gts'))

idTissue=O.materials.append(FrictMat(young=500.0,poisson=.35,frictionAngle=.6,label="concrete"))
pred=pack.inGtsSurface(surf)
aabb=pred.aabb()

dim0=aabb[1][0]-aabb[0][0];
# brain radius
dim0 = dim0/2.0
# small
radius=dim0/20. # get some characteristic dimension, use it for radius
O.bodies.append(pack.regularHexa(pred, radius=radius, gap=0.0, material=idTissue))

O.bodies.append(pack.gtsSurface2Facets(surf,wire=True))

Luc Scholtès (luc) said : #13

Alright,

From what I understand, your problem is related to the generation of a packing of particles using the pack.inGtsSurface().

I am sorry but I don't understand this:

"But it's doesn't help me because he was adding in left out space which doesn't consist facets."

I am a bit clueless but I'll give you an example script below that works for a simple mesh (a cube) and I would suggest that you try to make the script work (you will have to create the cube.gts on your own) before going into a more complex configuration. At first, I would suggest that you try to generate a "regular packing" in your previously generated cube (using the regularHexa() function) and then, when you are sure that it works, you can experiment with the random packing functions.

###

from yade import pack, export, ymport
import gts, os.path, locale

#### control parameters
mesh='cube' #name of gts mesh
sizeRatio=10. # defines discretisation (sizeRatio=meshLength/particleDiameter)

#### import mesh
locale.setlocale(locale.LC_ALL,'en_US.UTF-8') #gts is locale-dependend. If, for example, german locale is used, gts.read()-function does not import floats normally
surface=gts.read(open(mesh+'.gts'))

print 'closed? ', surface.is_closed()

#### generate packing
if surface.is_closed():
 pred=pack.inGtsSurface(surface)
 # get characteristic dimensions
 aabb=pred.aabb()
 dim=pred.dim()
 center=pred.center()
 minDim=min(dim[0],dim[1],dim[2])
 # define discretisation
 radius=minDim/(2*sizeRatio)
 print center, dim, ' | minDim=', minDim, ' | diameter=', 2*radius
 ### packing functions
 O.bodies.append(pack.regularHexa(pred,radius=radius,gap=0.,color=(0.9,0.8,0.6)))
        #O.bodies.append(pack.regularOrtho(pred,radius=radius,gap=0.,color=(0.9,0.8,0.6)))
 # non periodic packing
 #O.bodies.append(pack.randomDensePack(pred,radius=radius,rRelFuzz=0.3,useOBB=True,memoizeDb='/tmp/gts-triax-packings.sqlite',returnSpherePack=False,color=(0.9,0.8,0.6))) # returnSpherePack=True(?),cropLayers=5 (not to use),'
 # periodic packing
        #O.bodies.append(pack.randomDensePack(pred,radius=radius,rRelFuzz=0.3,useOBB=True,spheresInCell=5000,memoizeDb='/tmp/gts-triax-packings.sqlite',returnSpherePack=False,color=(0.9,0.8,0.6))) # returnSpherePack=True(?),cropLayers=5 (not to use),'
        ### if you want to translate the surface away from the packing
 #surface.translate(dim[0],0,0)

#### import mesh
O.bodies.append(pack.gtsSurface2Facets(surface,color=(0.8,0.8,0.8),wire=True))

#### export packing in a text file
export.text(mesh+'_'+str(int(sizeRatio))+'.spheres')

#### open the GUI to see the packing and the mesh

shiv (shivpreet.ce15) said : #14

Hello Luc,

For more explanation of this line I have attached link you can check it out what i want to express "But it's doesn't help me because he was adding in left out space which doesn't consist facets."

https://drive.google.com/file/d/1IBQqJTuRz3V6gChYdd9wmkCD3ryS0Z2e/view?usp=sharing

Also I have tried execution of above code but the similar result is obtaining which I have showed in above link.

I have attached my Drawing STL and GTS format

STL: https://drive.google.com/file/d/1TLK-Ewmol77RbGp8s5ccYXPZxs_m96Wh/view?usp=sharing
GTS: https://drive.google.com/file/d/1Z1UZb3XQJsWTr3f6jWaqTdz1fBj56PJN/view?usp=sharing

After reading your code even I have tried drawing my model using mesh modelling in autocad but the result are same.
I have attached that drawing link also:

STL: https://drive.google.com/file/d/1T4AXqsq184CWXvw_MI_20SG6Xx7AAuaJ/view?usp=sharing
GTS: https://drive.google.com/file/d/1M1gf0QdXSbDHfAOcdlzHeev60YhnECSR/view?usp=sharing

Result Link: https://drive.google.com/file/d/1OBlQ6Okbs5-MPnncHfXJr0K7zQhKw7uQ/view?usp=sharing

Luc Scholtès (luc) said : #15

The problem comes from your gts file: the facets are wrongly orientated so the packing function fills the outside inside of the inside. I guess this is something that you can change directly in the mesh generator.

ANW, have a look at this previous thread:

https://answers.launchpad.net/yade/+question/660999

I just did what Jan suggested (comment #5) with your gts file and it works (with the script I provided above).

 Thank you Jan ;)

Luc

Luc Scholtès (luc) said : #16

Sorry: "outside instead of the inside"

shiv (shivpreet.ce15) said : #17

Thanks a Lot Luc that has solved my problem.I just need more help regarding (comment #2). How can I add a particular joint dip angle in this gts file as in that code they have done in another way.Also can you help how can I calculate factor of safety of such slope
as I have the read given link provided in (comment #5) but I am not able to understand it how will I execute that in YADE.

Luc Scholtès (luc) said : #18

Please have another look at the files in the /trunk/examples/jointedCohesiveFrictionalPM/ folder. Read the README file and you should be able to run your simulation.

The process is as follows (there is another more concise option for advanced users but this one presents the advantage to define each step explicitly):

1 - create a packing to represent the slope with the packInGtsSurface.py (from a .gts file)
2 - create a joint as a meshed surface (.stl). You can create the surface with the same software that you used to create the slope geometry (the .gts file) or you can try to create it directly from inside the yade script as explained in the gravityBis.py. At first, I would suggest to create it from the software.
3 - At this stage, you have a packing (.spheres) and a joint (.stl) and you need to identify the particles belonging to each side of the joint. You need to launch the identificationSphereOnJoint.py to do so. Then, you'll get 2 new files containing the information needed to run your simulation.
4 - Run your simulation (see gravityLoading.py for a simple simulation where the slope first stabilizes under gravity and then the joint is activated).

Once you are familiar with this, you will be able to think about the calculation of the FoS. If you want to calculate the FoS of a slope containing a single persistent joint, you don't need to run a numerical simulation. Then, if you plan to define rock bridges in your model (non persitent joints), you will have to define a FoS. Bonilla proposed one FoS based on a strength reduction method which relates the strength of the rock material at failure to its initial strength. This FoS is valid only if you have rock bridges which stabilize the slope.

Please, try to open more specific questions next time so we know exactly the problem you are facing.

shiv (shivpreet.ce15) said : #19

Thanks for the help, Luc. Next time I will remember to be more specific about my problem

shiv (shivpreet.ce15) said : #20

I have tried executing the steps as suggested by Luc in comment#18.But i am facing problem in executing in running gravityLoading.py. It is showing the error :

  execfile(script,globals()) File "gravity.py", line 84, in <module>
    O.bodies[refPoint].shape.color=(-1,-1,-1)
NameError: name 'refPoint' is not defined

Here is the link for my script : https://drive.google.com/file/d/1TZYzE2W-MEwVFd47LOa7g2bfJIY9oV4Z/view?usp=sharing

and following documents related for execution of that script:

https://drive.google.com/file/d/1aHuIQ5HV2pVWEA_1hW3ycMlcJLEdJQE2/view?usp=sharing
https://drive.google.com/file/d/17OXc4AvZYlx_kXM2LdJayvPETAr3NHBs/view?usp=sharing
https://drive.google.com/file/d/1VMUZCqJXER8pEJmEXiszXJ2HGC3mAhNf/view?usp=sharing

shiv (shivpreet.ce15) said : #21
shiv (shivpreet.ce15) said : #22
Luc Scholtès (luc) said : #23

Hi,

'refPoint' is not defined simply means that the variable 'refPoint' is not defined.

This refPoint is defined in the original script as one of the particle located on the top corner of the moving part of the cubic sample (see lines 78 to 88 in your script). It is used afterward to monitor the velocity and displacement of the moving block (see line 108 and 109 in the recorder). My guess is that the test done in line 79 (which aims at finding a particle at the top of the 'slope') is not adapted to your geometry and thus the reference point (which is a particle) does not exist in your case.

You then have 2 solutions to avoid the error message:

- comment every lines related to this 'refPoint' (but you will not have any record of the slope movements)
- adapt line 79 to identify the refPoint in your geometry

Luc

Jérôme Duriez (jduriez) said : #24

Hi,

The error seems to be quite basic: I guess you modified the initial script [*] and removed the definition of refPoint (initially at [**]), which was not a good idea.

I would suggest you compare (using e.g. kompare software) your new script with the initial one to remember what changes you did and re-make a functional script.

[*] https://github.com/yade/trunk/blob/master/examples/jointedCohesiveFrictionalPM/gravityLoading.py
[**] https://github.com/yade/trunk/blob/master/examples/jointedCohesiveFrictionalPM/gravityLoading.py#L83

shiv (shivpreet.ce15) said : #25

Hi,
I haven't edited the initial script but even I haven't done the changes in the initial script according to model. I have tried doing it but I am not getting body id of the particle located on top corner of moving part.

Dimensions are length -11.24 ,width -20 ,height -8.

The model figure is attached below.

GTS: https://drive.google.com/file/d/1BtwHfgojSKCLCTtMB9ISpiPtmvFNUHBP/view?usp=sharing

Launchpad Janitor (janitor) said : #26

This question was expired because it remained in the 'Open' state without activity for the last 15 days.