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.

Reply via email to