Small Version of Domain Explodes

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

Small Version of Domain Explodes

tstucky
I have a simple cube domain defined by this input file.


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

<GranOO Version="2.0" OutDir="Cube" 
  DisplayProgression="Yes"
  TotIteration="Inf" >  
  
  <PreProcessing>
    <!-- Set the boundary here, don't change its ID                 -->
    <!-- You can use cylinder, sphere, cone, box, polyhedron etc... -->
    <PlugIn Id="_NewSupportShape" Type="Box" DimX="0.2" DimY="0.2" DimZ="0.2"
      ID="Boundary"/>
    
    <!-- Set the wanted number of discrete element here. -->
    <PlugIn Id="InitProblem" TotalDeNumber="1500" 
      BoundarySupportShapeID="Boundary"/>
    <PlugIn Id="ComputeTimeStep"/>

    <!-- Low Stab coef is fast but not very precise -->
    <PlugIn Id="ComputeStabilisationIterationNumber" StabCoeff="1"/>
  </PreProcessing>

  <Processing>

    <PlugIn Id="StopFill" Criterion="Compacity" Value="64%"/>

    <PlugIn Id="Fill" RandomRange="25%" MaxLoopTry="10000" PacketSize="10"
              RepeatWhileFreePlace="Yes"/>
    <PlugIn Id="_Check"/>
    <PlugIn Id="_ClearLoad"/>
    <PlugIn Id="_ApplyBondLoad"/>

    <PlugIn Id="_ManageCollision" Between="DiscreteElement/SupportShape"
      UniqueId="Wall" CallBack="Custom"
      BroadPhase="CustomSupportShape" RecordContactIn="WallShell"/>
    
    <PlugIn Id="_ManageCollision" Between="DiscreteElement/DiscreteElement"
      UniqueId="LCM" CallBack="Custom"
      BroadPhase="CustomLcm" RecordInterpenetrationValues="Yes"/>
    
    <PlugIn Id="_IntegrateAcceleration" 
      Linear="Yes" BetaLinear="1.3" Angular="No"/>
    <PlugIn Id="Relax" Process="Yes" WallStiffDecreaseCoeff="0.9"/>
    <PlugIn Id="DisplayInfo" IterLoop="200"/>
  </Processing>

  <PostProcessing>
    <!-- Build the boundary discrete element set -->
    <PlugIn Id="BuildBoundarySet"/>
    <!-- Build bounds between discrete elements-->
    <PlugIn Id="_BuildNeighbourElementPair" ForceCardinality="Yes" 
              WantedCardinalityValue="8" BoundarySet="WallShell"/>
    <!-- Or You can use a delaunay triangulation to builds bonds -->
    <!-- with <PlugIn Id="_BuildDelaunayElementPair"/>  -->
    
    <!-- Must save as lgdd if DE's are non-sphereical -->
    <PlugIn Id="_SaveDomain" FileName="CompactDomain" Type="gdd"/>
    <PlugIn Id="_SaveDomain" FileName="CompactDomain" Type="lgdd"/>
  </PostProcessing>

</GranOO>
  

I have another version that makes a cube that is smaller by a factor of 10. The only difference is this following line.

    <PlugIn Id="_NewSupportShape" Type="Box" DimX="0.2" DimY="0.2" DimZ="0.2"
      ID="Boundary"/>

When I put the large cube into my simulation everything is fine. When I put the small cube into the same simulation, it explodes spectacularly. This does not happen if collisions between discrete elements is turned off, so my guess is that the smaller domain contains overlapping elements that fire away from each other rapidly once physics starts.

Is there perhaps some other parameter I need to scale when I scale the domain dimensions in order to keep it from exploding like this?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: Small Version of Domain Explodes

Damien André
Administrator
Hello,
If you use smaller domains with smaller discrete elements, you must use smaller time step (or use smaller contact stiffness) in your simulation. In the granoo-cooker, the time step is adjusted automatically depending on your domain size but not in your simulation. Please try to tune your time step.

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

Re: Small Version of Domain Explodes

tstucky
<Plug Id="_ComputeOptimalTimeStep" /> is in my simulation input file. It looks like all I needed to do to prevent the explosion was fine tune the Ratio parameter to a lower value than the default of 0.147.

I thought this process was automated by the plugin _ComputeOptimalTimeStep. If it is not, can it be?
Reply | Threaded
Open this post in threaded view
|

Re: Small Version of Domain Explodes

Damien André
Administrator
Hello, the <Plug Id="_ComputeOptimalTimeStep" /> plugin does not work very well for contacts (it works well in case of bonds). For simulation with contacts my advice is to adjust the time step by hand.

Kind regards, Damien.