How to use the Plugin of _MangeCollision

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

How to use the Plugin of _MangeCollision

Wang Ze-yuan
Hello all,

I want to build a project like Glass impact and Brick wall in the Gallery.

I build two discreteElement object, the first like a wall, and the second like a bullet. Any discreteElement with its nearest six element has ElementPair. And I convert it to beam. I set _ApplyForce to bullet. But the plugin _ManageCollision doesn't make sense. The bullet will go through the wall without collision.

If anyone can send the sample, I will be very pleasure.

Wang Zeyuan
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello,
Can you share with us your input file ?

Best regards, Damien.
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Wang Ze-yuan
Dear Damien,

I'm sorry to bother you.

Now I am trying to simulate the result that you showed in the paper called "Using the discrete element method to simulate brittle fracture in the indentation of a silica glass with a blunt indenter".

I can't handle the whole GranOO in a short time, you know, I need to test every plugin and some plugin's document has some mistakes and my professor want me to do it as fast as I can.
So I want to know where I can find the source code of this paper.

Thank you

Wang
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello, please find in attached a qualitative version of this test. Fracture begins at 20.000 iterations.
I have no more version for granoo v2. Damien.

 indentation.zip
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Wang Ze-yuan
Hello,

I have tried to simulate brittle fracture in the indentation. I use 100*100*1 discrete domain. I am not familiar with RCP, so I just arrange them one by one.
However, the result is like using the standard failure criterion.

So, my question is: Did you introduce the developed failure criterion and if the answer is yes, what should I do to apply it? Is there a convenient way to change the failure criterion, or I have to change Beam.cpp and rebuild it?

regards,
Wang
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello Wang,
As i said in another thread, I really need your input file for helping you....

Best regards, Damien.
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Wang Ze-yuan
Hello,

I am sorry about that, here is my input file:

<GranOO Version="2.0" TotIteration="inf" OutDir="Results" TimeStep="1e-8" ThreadNumber="4">

  <PreProcessing>
    <PlugIn Id="_ReadDomain" FileName="MyFirstDomain.agdd"/>
    <PlugIn Id="_SetDensity" Density="3000" />

    <PlugIn Id="_Convert" What="ElementPair" To="Beam" YoungModulus="500e9" RadiusRatio="0.4" PoissonRatio="0.33" />
   
    <PlugIn Id="_NewFrame" Center="(0, 1.5, 0)" ID="F1" />
    <PlugIn Id="_NewTool" Type="Sphere" Radius="0.5" Density="3000" ID="indentor" Set="indentor" FrameID="F1" />
   
    <PlugIn Id="_PutInContact" ID="indentor" Direction="(0, -1, 0)" InitialStep="0.1" Precision="1e-10" />
    <PlugIn Id="_ComputeOptimalTimeStep" Ratio="0.1" />

  </PreProcessing>
   
  <Processing>
   
    <PlugIn Id="_Check" />
    <PlugIn Id="_ClearLoad" />

    <PlugIn Id="_ApplyBondLoad" />

    <PlugIn Id="_ManageCollision" Between="DiscreteElement/Tool" BroadPhase="Tool" ToolID="indentor"
            Set="up" CallBack="Standard" Stiffness="1e9" />
    <PlugIn Id="_IntegrateAcceleration" Linear="Yes" Angular="Yes"/>

    <PlugIn Id="_ComputeVirialStress" FailureMode="BRITTLE" HydrostaticCriterion="5e6"
            VolumeFraction="1.0" ApplyCriterionOn="CLOSEST" NeighbourLevel="1" IterLoop="5"/>

   
    <PlugIn Id="_ImposeDisplacement" Y="0" Set="up"/>
    <PlugIn Id="_ImposeDisplacement" Z="0" Set="Global" />
    <PlugIn Id="_ImposeDisplacement" X="0" Y="-1e-7*it" Set="indentor" />
   
     
   
    <PlugIn Id="_SaveDomain" IterLoop="100" Type="gdd"/>
    <PlugIn Id="_MonitorItemNumber" What="DEM::Beam" IterLoop="100" />
  </Processing>
 
  <PostProcessing>
  </PostProcessing>
 
</GranOO>

The input file is just similar with the file you gave me, so I didn't realize that.
Sorry for my carelessness.

Regards
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello,
good, I am able to answer now ^^

Wang Ze-yuan wrote
 I am not familiar with RCP, so I just arrange them one by one.
However, the result is like using the standard failure criterion.
Do you mean that you use regular discrete domains ?  It is not a good idea !
You can have better results if you use numerical samples that come form the cooker program.
http://www.yakuru.fr/granoo//tutorial/basic_3_building-discrete-domain.html

Wang Ze-yuan wrote
So, my question is: Did you introduce the developed failure criterion and if the answer is yes, what should I do to apply it? Is there a convenient way to change the failure criterion, or I have to change Beam.cpp and rebuild it?
Yes, I introduce it in GranOO. In fact you are using it with this line :
<PlugIn Id="_ComputeVirialStress" FailureMode="BRITTLE" HydrostaticCriterion="5e6"
            VolumeFraction="1.0" ApplyCriterionOn="CLOSEST" NeighbourLevel="1" IterLoop="5"/>

Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Wang Ze-yuan
Hello everyone,

I want to simulate brittle fracture in 3D. However, in the beginning, there are a few beam delete. It's hard to notice where the beams are broken.

So is there any method to make the brittle fracture more clearly such as changing the color or etc?

regards,
Wang
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
This post was updated on .
Hello,
Yes, when they are deleted, the DEM::Beam objects are changed in DEM::ElementPair object. So, if you go into the viewer, you can highlight the broken beam by changing the color of the "Global" set of DEM::ElementPair.
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Wang Zeyuan
Hello,

  I try to simulate herzian cone crack. I choose kilogram, micron, second as units.
  This is my input file:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<GranOO Version="2.0" TotIteration="60000" TimeStep="1.5e-11" OutDir="Final" ThreadNumber="4"> 

  <PreProcessing>

    <PlugIn Id="_ReadDomain"  FileName="3D.agdd"/>
    <PlugIn Id="_SetDensity"  Density="2.33e-15"/>

    <PlugIn Id="_Convert" What="ElementPair" To="Beam" YoungModulus="72.5e3" RadiusRatio="0.4" PoissonRatio="0.17"/> 
   
    <PlugIn Id="_NewFrame" Center="(0,21,0)"  ID="F1"/>
    <PlugIn Id="_NewTool" Type="Sphere" Radius="10" Density="7.86e-15" ID="indentor" Set="indentor" FrameID="F1"/>

    <PlugIn Id="_EnergyBalance" />
    <PlugIn Id="_PutInContact" ID="indentor" Direction="(0,-1,0)" InitialStep="0.00001" Precision="1e-10"/>
       
 
  </PreProcessing>
 
  <Processing>
    <PlugIn Id="_Check" />
    <PlugIn Id="_ClearLoad" />
    <PlugIn Id="_ApplyBondLoad"/>

    <PlugIn Id="_ManageCollision" Between="DiscreteElement/Tool" BroadPhase="Tool" ToolID="indentor"
         Set="Boundary" CallBack="Standard" Stiffness="1e9" />

   
       
   
    <PlugIn Id="_IntegrateAcceleration" Linear="Yes" Angular="Yes" BetaLinear="1.3" BetaAngular="1.3"/>
   
    <PlugIn Id="_ComputeVirialStress" FailureMode="BRITTLE" HydrostaticCriterion="3.2e6"
            VolumeFraction="1.0" ApplyCriterionOn="CLOSEST" NeighbourLevel="1" IterLoop="5"/>
   
    <PlugIn Id="_ImposeDisplacement" Y="0." Set="Boundary-yMin"/>
   
    <PlugIn Id="_SetLinearVelocity" X="0." Y="-3e5" Z="0." Set="indentor"/>
   

   
    <PlugIn Id="_SaveDomain" IterLoop="2000"/>
    <PlugIn Id="_MonitorItemNumber" What="DEM::Beam" IterLoop="100"/>
  </Processing>
 
  <PostProcessing>
  </PostProcessing>
 

</GranOO>

  However, in the beginning, a few domain are too far to simulate, and the program also stops.
  I don't know where I'm wrong, please give me a hint.

Wang
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello,
What happen if you use meter as unit ?
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Wang Zeyuan
Hello,
    In this paper, the discrete silica sample is composed by 80000 discrete elements and 1040000 cohesive beams. Its size is 40 µm along the x and z axes and 20 µm along the y axis.
    If I choose meter as unit. The size will be 40e-6 m along the x and z. I am afraid that the discretes will not be visible.
    Do I have an exact understanding?

Wang
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello,
No problem with this size, you can use meter as unit. My opinion is that (double) float precision becomes critical around 10e-12....
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

LE Ba Danh
Hi Damien,
In "_ManageCollision" PlugIn:
 <PlugIn Id="_ManageCollision" Between="DiscreteElement/Tool" BroadPhase="Tool" ToolID="indentor"
         Set="Boundary" CallBack="Standard" Stiffness="1e9" />

How to determine the Stiffness?

Thank,
Danh
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello Danh,
There is no definitive way to determine the local stiffness. Generally, this is not really critical for simulations, so you can put here a high value around 10e6.

Kind regards, Damien.
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

LE Ba Danh
Thank Damien,

Danh
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

LE Ba Danh
Hi Damien,
I want to use PlugIn_ManageCollision between two SetOf, it correct if I write:

 <PlugIn Id="_ManageCollision" Between="body/body"
       Set1="Fiber"  Set2="Matrix"
       CallBack="Standard" Stiffness="1e7" RestitutionCoeff="0.5" />

Thank you,

Danh
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

Damien André
Administrator
Hello Danh,
I hope so, please test it and give me your feedback.

Ty, Damien.
Reply | Threaded
Open this post in threaded view
|

Re: How to use the Plugin of _MangeCollision

LE Ba Danh
Hello Damien,

It does not run:



Can you hel me?

Thank you,

Danh
12