help with chrono parameters

edited September 2019 in DualSPHysics v4.4

Hi all!

I am seting-up a simulation of the motion of a fluid in two separated chambers connected by a trap valve hinghed around a give axis. I managed to obtain a first setup that looks ok (here below some pitures with acceleation from file csv left and right).

I would like to know more in detail how to well setup some parameters. In particular:

  • collisiondpvalue="0.5" means that two particles can reach at manimum a distance between then of h. Is this correct?
  • In this setup i had to use the option modelnormal="invert" for both the bodyfixed and the bodyfloating. What is this parameter?
  • in my case, I do not actually care about the correct evalution of the frinction between the two solids...can I remove some parameters in the material properties in order to speed up the solution?

Thanks a lot in advance ( and for the code of course... it is really nice!)

Have a nice weekend!

Lorenzo



Comments

  • Dear Lorenzo


    Please let me tell you before that we still have to release a new version of the "XML_Guide.pdf" where the parameters for Chrono should be explained... We will try to do this as soon as possible.


    Now some responses to your questions:

    • collisiondpvalue="0.5" means that two particles can reach at manimum a distance between then of h. Is this correct?

    CHRONO can solve collisions between boundary objects (fixed, moving or floating) and this collision is solved in terms of geometries, not in terms of particles, but needs to define:

    1) the geometries using VTK, STL or other that you can define with modelfile="XXXXXX" (here you can include a geo or just use the ones created with GenCase CaseDp.vtk or CaseActual.vtk using modelfile="AutoDp" or modelfile="AutoActual"

    2) reading material properties from other external XML where Chrono will use the values of friction and restitution coefficient

    3) collisiondpvalue will define the minimum distance to detect collisions, and here we decide to use as reference the value of "dp", so that collisiondpvalue="0.5" means that minimum distance for collision will be 0.5*dp

    • modelnormal="invert"2n this setup i had to use the option modelnormal="invert" for both the bodyfixed and the bodyfloating. What is this parameter?

    the geometries also include some normals or vectors pointing in some direction, but these normals should look in adequate direction to detect the collisions.... so if the geometri uses normals in the worng direction you can invert them using modelnormal="invert"

    • in my case, I do not actually care about the correct evalution of the frinction between the two solids...can I remove some parameters in the material properties in order to speed up the solution?

    if you do not want to solve collisions between boundary objects, then you do not have to include the option modelfile="XXXXXX"


    AND please do not plot objects using IsoSurface when you have a coarse resolution...... use VTK of fluid obtained with PartVTK


    Regards

  • Hi Axel,

    Thanks a lot for the detailed reply! Really useful! I then managed to setup correctly one case where I have a valve between the two chambers.

    I may have a last question. In case I have to consider multiple valves (for example as below) that has to be treated separately, the idea would be:

    (say that mk=1 is the chamber and mk=2-3 are the valves)

    1. include all the geometries of the valves in a single vtk, that has been created on the fly. (Intially I was creating a single vtk for each valve but only one was moving and so, after having checked the watermill example, I saw that all the floating probably has to put in the same vtk. True?)
    2. use chrono with the following setup:

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

               <chrono>

                   <schemescale value="1" comment="Scale used to create the initial scheme of Chrono objects (default=1)" />

                   <collisiondp value="1" comment="Allowed collision overlap according Dp (default=0.5)" />

                   <bodyfixed id="domain" mkbound="1" modelfile="AutoDp"/>

                   <bodyfloating id="valve01" mkbound="2" modelfile="AutoDp"/>

                   <bodyfloating id="valve02" mkbound="3" modelfile="AutoDp"/>

                   <link_hinge idbody1="valve01">

                       <rotpoint x="0.5" y="-0.392917" z=".081" comment="Point for rotation" />

                       <rotvector x="0" y="1" z="0" comment="Vector direction for rotation" />

                       <stiffness value=".1" comment="Torsional stiffness" />

                       <damping value=".1" comment="Torsional damping" />

                       <friction value="0" comment="Friction coefficient" />

                   </link_hinge>

                   <link_hinge idbody1="valve02">

                       <rotpoint x="1" y="-0.392917" z=".081" comment="Point for rotation" />

                       <rotvector x="0" y="1" z="0" comment="Vector direction for rotation" />

                       <stiffness value=".1" comment="Torsional stiffness" />

                       <damping value=".1" comment="Torsional damping" />

                       <friction value="0" comment="Friction coefficient" />

                   </link_hinge>

               </chrono>

               <accinputs>

                   <accinput>

                       <mkfluid value="0" comment="Mk-Fluid of selected particles" />

                       <acccentre x="0" y="0" z="0" comment="Center of acceleration" units_comment="metres (m)" />

                       <globalgravity value="0" comment="Global gravity enabled (1) or disabled (0)" />

                       <datafile value="accTest2.csv" comment="File with acceleration data" />

                   </accinput>

               </accinputs>

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    My doubt is the following: since the two valves have to rotate around two different axes, I have to create two ids (like in watermill). However, because I need also the collision, here for each floating I have also to pass the correspoind modelfile (to solve collision with the walls). Is this possible passing to modelfile the same vtk the includes all the floating geometries or, eventually, different vtk's for the different valves?

    Thanks a lot and sorry for the long text;)

    Ciao,

    Lorenzo





  • Hi Axel,

    ok, solved;) I passed all the floating bodies in a single vtk file to chrono and it seems all ok!

    Thanks,

    Lorenzo

Sign In or Register to comment.