This is great. Thank you so much Luning. I appreciate your help! On Wednesday, August 23, 2023 at 4:11:51 PM UTC-7 [email protected] wrote:
> 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/7c3bc08f-c7d9-491f-a764-c49c87160ea0n%40googlegroups.com.
