Thank you so much Luning, appreciate all the help!

On Thursday, August 24, 2023 at 8:09:43 AM UTC-7 [email protected] wrote:

> Here's the link,
>
> https://doi.org/10.1016/j.cma.2021.114022
>
> This is the paper name: 
>
> Hu, Wei, et al. "Modeling granular material dynamics and its two-way 
> coupling with moving solid bodies using a continuum representation and the 
> SPH method." *Computer Methods in Applied Mechanics and Engineering* 385 
> (2021): 114022.
>
> On Wednesday, August 23, 2023 at 11:41:56 PM UTC-5 [email protected] 
> wrote:
>
>> Just one more thing. I cannot access the paper that has the physical 
>> meanings of the parameters that you mentioned since it's on the university 
>> website. I cannot even see its name. Would you mind sharing the name of the 
>> paper so I can search for it online. 
>>
>> Thank you so much in advance, 
>>
>> On Wednesday, August 23, 2023 at 9:28:26 PM UTC-7 Mohammad Wasfi wrote:
>>
>>> 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/298b3103-f258-472a-8fcf-cf96ddac1adfn%40googlegroups.com.

Reply via email to