I probably didn't get the question correctly (let me know if that is the 
case), but it sounds to me like how the physics should be in DEM, by 
default. If both the particles and the belt mesh are frictional objects in 
the simulation, and the belt has a fixed/prescribed velocity, then when 
they are in contact, the particles will gradually gain momentum until they 
travel at the same speed. 

Are there any nuances in the model or the physics that you wish to 
resolve/enforce other than the obvious I stated?

Thank you,
Ruochun
On Saturday, March 23, 2024 at 3:03:04 PM UTC+8 [email protected] wrote:

> Hi, ruochun,
>
>         Thank you for your reply.
>         1. For the conveyor belt model,  it means that when the particle 
> contact to the belt mesh, the particles would be added with a belt 
> velocity. How to realize this function?
>
> 在2023年12月20日星期三 UTC+8 20:44:42<Ruochun Zhang> 写道:
>
>> Hi Wenxuan,
>>
>> 1. You can generate particles after the system initialization in DEME. An 
>> example is GRCPrep_Part1 
>> <https://github.com/projectchrono/DEM-Engine/blob/main/src/demo/DEMdemo_GRCPrep_Part1.cpp>,
>>  
>> where new particles are brought into the simulation in batches after the 
>> simulation starts using *AddClumps *then *UpdateClumps*. However, 
>> defining how they are generated is the responsibility of the user. If you 
>> would like to generate at a mass rate, then you have to write in your 
>> script the code that instantiates the initial positions of the particles 
>> that suffice this mass rate, and add them to the simulation with an 
>> appropriate frequency. Of course, depending on the problem to simulate, 
>> sometimes it's easier to generate all particles needed first, then use some 
>> sort of geometry to help release them with a certain flow rate into the 
>> simulation region of interest.
>>
>> 2. I am not sure if you meant whether it can simulate a 
>> (mesh-represented) conveyor belt, or simulate using a specific contact 
>> force model called the conveyor belt model. If it's just mesh--particle 
>> contact with a moving mesh, then DEME can do that. If the challenge is that 
>> the mesh is deformable, then DEME can do that as well (see the flexible 
>> mesh demo 
>> <https://github.com/projectchrono/DEM-Engine/blob/main/src/demo/DEMdemo_FlexibleMesh.cpp>)
>>  
>> as well, but it is more advanced and the deformation of the mesh has to be 
>> simulated using an external solid mechanics solver: DEME can only provide 
>> the granular force the belt experiences, but not calculate how it deforms. 
>> However, if the idea is that the soft-material nature of the belt is 
>> modeled by a special force model (instead of the default Hertz--Mindlin 
>> model) rather than the actual deformation of the belt, then it can be done 
>> with a custom force model (a good example with a custom force model is used 
>> is probably the material fracture demo 
>> <https://github.com/projectchrono/DEM-Engine/blob/main/src/demo/DEMdemo_Fracture_Box.cpp>).
>>  
>> This is also a more advanced usage of DEME, and it is certainly not a 
>> one-liner call. In short, this is a scientific question. The approach and 
>> the viability depend on what you'd like to explore and achieve with the 
>> simulation. 
>>
>> 3. I don't know if I understand the question correctly. I think you meant 
>> scenarios such as a rotating object that also revolves around something 
>> else. You can do this and there is more than one way. You can use a tracker 
>> to track the geometry, then set the position and quaternion of the geometry 
>> using this tracker step by step, so you have explicit control over it, 
>> regardless of how complex the motion is. You can probably use the 
>> electrostatic demo 
>> <https://github.com/projectchrono/DEM-Engine/blob/main/src/demo/DEMdemo_Electrostatic.cpp>
>>  
>> as the example, and see how the *rod_tracker *object is used to *SetPos *of 
>> the geometry step by step. Another approach is when the motion is simple 
>> enough and prescribed, you can give this geometry a family tag and then use 
>> *SetFamilyPrescribedLinVel 
>> *along with *SetFamilyPrescribedAngVel *to enforce the motion. The 
>> *SetFamilyPrescribedAngVel *method sets the prescribed rotational motion 
>> of the geometry about its own local coordinate system, then the 
>> *SetFamilyPrescribedLinVel *method can be used to define the global 
>> revolution you probably need (you can write something like *sin(3.14 * 
>> t)* as the prescribed motion). The excavator plowing demo 
>> <https://github.com/projectchrono/DEM-Engine/blob/main/src/demo/DEMdemo_Plow.cpp>
>>  
>> might help you understand the usage. 
>>
>> Thank you,
>> Ruochun
>>
>> On Tuesday, December 19, 2023 at 3:04:18 AM UTC-6 [email protected] 
>> wrote:
>>
>>> Hi, all
>>>    
>>>     I have the following functions and would like to inquire if DEME can 
>>> implement them?
>>> 1. Does DEME have the function of dynamically generating particles? For 
>>> example, generating at a certain mass rate.
>>> 2. Does DEME have a conveyor belt contact model?
>>> 3. Can DEME set multiple rotational motions for geometry?
>>>
>>> Best regards,
>>> Wenxuan Xu
>>>
>>

-- 
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/f1865a49-4205-4a01-b4cb-613e1bc396e8n%40googlegroups.com.

Reply via email to