Hello Mohammad, Please take a look at my reply in blue.
1- the bed looked too rigid. I have tried to figure out what to change to get a similar bed to what is in my DEM simulation but I could not. My bed in the DEM sim is generated using a PD sampler and then is allowed to settle. I have noticed that there is no settling phase in the FSI simulation. Is this normal for FSI simulations? What is controlling the rigidity of the bed in this simulation? As you have mentioned, DEM and CRM are different approaches for modeling granular material. For DEM, you need a settling phase, so the particles are packed. For CRM approach, the entire soil bed is modeled as a continuum, you don't need settling phase, in fact, whatever soil depth you got after settling in DEM, you can use that thickness to model the soil bed in SPH. The rigidity of the soil can be tuned using Young's Modulus, I will cover more later. That being said, when I looked at the CMakeCache you posted, I noticed you set the flag "USE_FSI_DOUBLE" to be "ON". For the release/8.0 branch (which is what I believe you are using now), there is a bug when using double precision, which results in your terrain look rigid. The bug was fixed in main, see here <https://github.com/projectchrono/chrono/commit/46bea8f535074bcdf49ed08822e3abf098ed790d> . You can either make the change in your own code, or switch to single precision (set USE_FSI_DOUBLE to be OFF in your cmake). 2- Bed properties? I have noticed that you get some of the parameters from a JSON file and some of them are defined in the simulation. However, it seems that FSI simulations use some different properties for the bed than what is used in DEM. Is it possible to define the bed using ONLY the material properties that I used in my DEM simulation (mentioned above)? Also, I could not find where the particle radius is defined in the simulation and was wondering if the kernelLength parameter is the same as the particle radius. Finally, I would like to set all my simulation parameters in my .cpp file instead of using a JSON file and was wondering about the appropriate way to set such parameters (such as Young's modulus, Can I have a code example?). Every parameters you see in JSON file can be set using APIs. For parameters related to granular soil, take a look at the code here <https://github.com/projectchrono/chrono/blob/release/8.0/src/chrono_fsi/ChSystemFsi.cpp#L626>. There's some book keeping you need to sort out, in terms of what parameters are included in the struct ElasticMaterialProperties, such as particle diameter, friction coefficient, Youngs modulus, etc. For more details on the physical meaning of those parameters, you can read this paper <https://doi-org.ezproxy.library.wisc.edu/10.1016/j.cma.2021.114022>(sec 2.1.1 on the rheology, and some applications). You can use the API SetElasticSPH() to modify your terrain parameters, rather than JSON. See an example in demo_VEH_SPHTerrain_Obstacles.cpp <https://github.com/projectchrono/chrono/blob/main/src/demos/vehicle/terrain/demo_VEH_SPHTerrain_Obstacles.cpp>. Note that kernelLength defines how large a neighborhood of particles is going to have influence on the particle of interest, which is not the same as particle radius. 3- I was wondering about the best way to restrict motion in some of the directions. Also, what is the best way to apply forces to the mesh? This is on the multibody dynamics setup. Note that in the single wheel test demo, global x is the longitudinal direction of the wheel, and global y is the lateral direction, global z is the gravity. There is a prismatic joint between chassis and the axle allowing motion in z direction, prismatic joint between ground and chassis with a prescribed velocity in x direction, and prescribed rotation on the wheel in y direction. In this example, the wheel has restricted motion in y dir. You can modify your screw problem accordingly. For more examples on multibody setup, you can look at the demos in demos/mbs folder. To apply force to your screw object, you can modify the mass of the axle body. [image: single_wheel_sketch.png] Thank you, Luning On Tuesday, August 22, 2023 at 11:26:13 AM UTC-5 [email protected] wrote: > Hi, > > I had some questions that I was hoping you could help me with. I have been > studying the FSI demos to try to better understand the FSI module. I have > mostly been using the DEM engine, so I have noticed some > significant differences between the DEM module and the FSI module. I am > trying to duplicate a simulation that I have done in the DEM ( > https://drive.google.com/file/d/1L9Br1Vf9hsFkjXqbhAZGNpgVep3p5YK_/view?usp=drive_link). > > In this simulation, I first initialize a bed with specific materials' > properties (Young's modulus, possession ratio, static friction, rolling > friction, coefficient of restitution, and cohesion energy density (the > cohesion module is implemented by me)). Then I settle the bed. After the > bed is settled, I drop the screw in a drop phase. After the screw is > settled on the bed, I start rotating the screw at 1 rad/s while > restricting its movement in the x direction and applying a down force on > it. > > To duplicate this simulation, I started with the DEMO_FSI_SingleWheelTest > where I started switching the wheel geometry to my geometry and changing > the bed size to what is in the DEM simulation( > https://drive.google.com/file/d/18KhOFfXNEIlgcoLTvxTi27XL5soYB4yz/view?usp=drive_link > > - FSI_ScrewTest.cpp). The simulation looks okay but I got stuck on many > things after. I was wondering if you could help me with this stuff: > > 1- the bed looked too rigid. I have tried to figure out what to change to > get a similar bed to what is in my DEM simulation but I could not. My bed > in the DEM sim is generated using a PD sampler and then is allowed to > settle. I have noticed that there is no settling phase in the FSI > simulation. Is this normal for FSI simulations? What is controlling the > rigidity of the bed in this simulation? > > 2- Bed properties? I have noticed that you get some of the parameters from > a JSON file and some of them are defined in the simulation. However, it > seems that FSI simulations use some different properties for the bed than > what is used in DEM. Is it possible to define the bed using ONLY the > material properties that I used in my DEM simulation (mentioned above)? > Also, I could not find where the particle radius is defined in the > simulation and was wondering if the kernelLength parameter is the same as > the particle radius. Finally, I would like to set all my simulation > parameters in my .cpp file instead of using a JSON file and was wondering > about the appropriate way to set such parameters (such as Young's modulus, > Can I have a code example?). > > 3- I was wondering about the best way to restrict motion in some of the > directions. Also, what is the best way to apply forces to the mesh? > > Thank you so much for your help in advance, > > -- You received this message because you are subscribed to the Google Groups "ProjectChrono" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/5a758be2-8aa4-4550-aa71-63da975fe00dn%40googlegroups.com.
