Currently, DEM-Engine custom model functionality permits only one script, 
meaning that in principal, you are writing a unified force model that goes 
for sphere-sphere, sphere-boundary, *and *sphere-mesh. Just think of the 
sphere-compressor contact as a special case, which is the contact between a 
normal sphere and an infinitely-large sphere.

About enforcing different models for different objects, you can associate 
different objects with respective family numbers, then use if statements to 
differentiate types of contacts. I talked about this in one of the earlier 
replies in this thread, please go back and have a look.

Thank you,
Ruochun


On Thursday, June 13, 2024 at 1:31:37 PM UTC+8 weigan...@gmail.com wrote:

> Hi Ruochun,
>
> Thank you for your reply. In fact, I am puzzled that there is not any 
> sentence in the  Fracture-Box demo to declare the contact model between 
> spheres and the compressing plate. So, how to declare the contact model, 
> especially for the case in which there has been another contact model, such 
> as the  ForceModelWithFracture.cu?
>
> Thank you,
> Weigang
>
> On Thursday, June 13, 2024 at 12:03:52 AM UTC+8 Ruochun Zhang wrote:
>
>> Hi Weigang,
>>
>> Note that in general, if you use a custom force model, then that model 
>> alone is used, there is no fallback so I wouldn't call that anything has 
>> "defaulted" to Hertz–Mindlin. Specific to the Fracture-Box demo, it's just 
>> that the force model (ForceModelWithFracture.cu) is written in a way that 
>> when the bond between two particles breaks, the "else" branch of that big 
>> if statement is executed, and something similar to Hertz–Mindlin is 
>> enforced.
>>
>> I said it's similar since it's not a pure spring–damper model now, it's a 
>> spring–damper model with the resting location (zero-force location) being 
>> the penetration depth the moment when the bond broke. This implementation 
>> avoids a potential problem with a pure spring–damper model: Without the 
>> adjusted resting location, a newly broken-away pair of particles would see 
>> the bond suddenly gone but there were still left-over penetration, 
>> therefore immediately pushing each other away with high velocity, resulting 
>> in non-physical results. Shout-out to Bona for implementing this.
>>
>> Thank you!
>> Ruochun
>>
>>
>> On Wednesday, June 12, 2024 at 8:33:55 PM UTC+8 weigan...@gmail.com 
>> wrote:
>>
>>> Hi Ruochun,
>>>
>>> Thank you for your great work. The demo now is runs well. I have a 
>>> question about the Fracture-Box demo. After the bond between two particles 
>>> breaks, is it right that the contact model between them change defaultly 
>>> from ForceModelWithFracture to Hertz–Mindlin model?
>>>
>>> Thank you,
>>> Weigang
>>>
>>> On Friday, May 31, 2024 at 8:05:24 PM UTC+8 Ruochun Zhang wrote:
>>>
>>>> Hi Weigang, 
>>>>
>>>> The problem appears to be fixed now. Please pull the newest main branch 
>>>> and try the fracture demo again. I suggest you do a clean rebuild from an 
>>>> empty directory, because only a force model file is changed and if you 
>>>> just 
>>>> "make", cmake probably thinks nothing needs to be done. Or you can simply 
>>>> manually copy the modified cu file over to the appropriate location in the 
>>>> build folder.
>>>>
>>>> The problem was that we left an uninitialized variable in the force 
>>>> model file. On data center cards, the compiler zeros it out automatically, 
>>>> but on consumer cards it does not. We therefore missed it initially. 
>>>> Should 
>>>> be all good now.
>>>>
>>>> Thank you, 
>>>> Ruochun
>>>>
>>>>
>>>> On Tue, May 28, 2024, 11:00 PM Ruochun Zhang <ruoc...@gmail.com> wrote:
>>>>
>>>>> Hi Weigang,
>>>>>
>>>>> It's not like recommending a card; rather, if you happen to have a 
>>>>> data center card available (A100, A5000 etc.), you can circumvent this 
>>>>> problem for now by using them. Otherwise, let's hope we find a solution 
>>>>> very soon, or at least find a workaround. We'll keep you posted.
>>>>>
>>>>> Thank you,
>>>>> Ruochun
>>>>>
>>>>> On Monday, May 27, 2024 at 7:27:10 PM UTC+8 weigan...@gmail.com wrote:
>>>>>
>>>>>> Hi Ruochun,
>>>>>>
>>>>>> My card is indeed a gaming card NVIDIA GeForce RTX 2070 Super. Could 
>>>>>> you recommend a card?
>>>>>>
>>>>>> Thanks,
>>>>>> Weigang
>>>>>>
>>>>>> On Saturday, May 25, 2024 at 10:44:17 PM UTC+8 Ruochun Zhang wrote:
>>>>>>
>>>>>>> Hi Weigang,
>>>>>>>
>>>>>>> I would like to answer Question 2 first. You can use variables 
>>>>>>> *AOwnerFamily 
>>>>>>> *and *BOwnerFamily *to refer to clump (or owner) A's and clump B's 
>>>>>>> family numbers directly in the force model. So you can write *if 
>>>>>>> *statements 
>>>>>>> that treat each case accordingly. This is mentioned in the DEME paper: 
>>>>>>> You 
>>>>>>> can check out Table 2.
>>>>>>>
>>>>>>> For Question 1, the situation is more complicated. We are actually 
>>>>>>> able to reproduce the problem you encountered (simulation freezing), 
>>>>>>> but on 
>>>>>>> consumer/gaming cards only. It runs perfectly on data center cards and 
>>>>>>> that's what we used for generating this experiment, therefore it did 
>>>>>>> not 
>>>>>>> appear a problem for us. It's likely due to different GPU architectures 
>>>>>>> running the same code differently, we'll try to find a solution and let 
>>>>>>> you 
>>>>>>> know in the following days, so stay tuned. By the way, you are using a 
>>>>>>> gaming card to run the simulations, correct?
>>>>>>>
>>>>>>> Thank you,
>>>>>>> Ruochun
>>>>>>>
>>>>>>> On Friday, May 24, 2024 at 8:47:00 AM UTC+8 weigan...@gmail.com 
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Thank you for your reply! I have two questions about the demo 
>>>>>>>> "DEMdemo-Fracture-Box".
>>>>>>>>
>>>>>>>> (1) After i have run this demo for one day, there is still nothing 
>>>>>>>> outputed. Is it fact that the DEME will run a long time once a 
>>>>>>>> fracture 
>>>>>>>> model is used?
>>>>>>>>
>>>>>>>> (2) How to tell DEME the contact force models between different 
>>>>>>>> familys? I did not see any snippet which undertakes this work, 
>>>>>>>> although the 
>>>>>>>> demo has at least two kinds of contact force model. The question i 
>>>>>>>> really 
>>>>>>>> want to ask is that, if we have more than three familys in our model 
>>>>>>>> and 
>>>>>>>> there are more than two familys consist of spherical particles, how to 
>>>>>>>> tell 
>>>>>>>> DEME the  contact force model between different familys, and tell DEME 
>>>>>>>> the 
>>>>>>>> contact force model between the particles of a family in the same time.
>>>>>>>>
>>>>>>>> Thank you,
>>>>>>>> Weigang
>>>>>>>>
>>>>>>>> On Thursday, May 23, 2024 at 10:10:14 PM UTC+8 Ruochun Zhang wrote:
>>>>>>>>
>>>>>>>>> No. That's because the *sphere components* in a clump are just 
>>>>>>>>> shape representations, and they have no physics, only material 
>>>>>>>>> properties. 
>>>>>>>>> If they did have interaction with each other then every clump 
>>>>>>>>> would've 
>>>>>>>>> immediately exploded upon simulation starting.
>>>>>>>>>
>>>>>>>>> Thank you,
>>>>>>>>> Ruochun
>>>>>>>>>
>>>>>>>>> On Thursday, May 23, 2024 at 12:16:32 PM UTC+8 weigan...@gmail.com 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Ruochun,
>>>>>>>>>>
>>>>>>>>>> Thank you for your reply! I have a question about the clump. Do 
>>>>>>>>>> the particles in a clump interact with each other via any force 
>>>>>>>>>> model?
>>>>>>>>>>
>>>>>>>>>> Thank you,
>>>>>>>>>> Weigang
>>>>>>>>>>
>>>>>>>>>> On Monday, May 20, 2024 at 10:26:03 PM UTC+8 Ruochun Zhang wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Weigang,
>>>>>>>>>>>
>>>>>>>>>>> Yes. Again,  DEME only cares about the position and radius of 
>>>>>>>>>>> the initial spheres, so you can supply it however you want. If you 
>>>>>>>>>>> have a 
>>>>>>>>>>> file that records this information using your own format, then the 
>>>>>>>>>>> easiest 
>>>>>>>>>>> thing is to have your own C++ or Python script that reads it into 
>>>>>>>>>>> arrays 
>>>>>>>>>>> and then feeds them to the solver. If your file shares the 
>>>>>>>>>>> format with DEME's standard clump output file, or your file is 
>>>>>>>>>>> simply the 
>>>>>>>>>>> output of *WriteClumpFile*, then you can conveniently load 
>>>>>>>>>>> clump positions and orientations by *ReadClumpXyzFromCsv *and 
>>>>>>>>>>> *ReadClumpQuatFromCsv *(examples are in GRCPrep_Part1 and 2). 
>>>>>>>>>>> Note that currently, sphere radius cannot be read from standard 
>>>>>>>>>>> clump 
>>>>>>>>>>> output files since it's part of the clump template information thus 
>>>>>>>>>>> not in 
>>>>>>>>>>> the clump output.
>>>>>>>>>>>
>>>>>>>>>>> Thank you,
>>>>>>>>>>> Ruochun
>>>>>>>>>>>
>>>>>>>>>>> On Monday, May 20, 2024 at 12:56:56 PM UTC+8 weigan...@gmail.com 
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Everyone,
>>>>>>>>>>>>
>>>>>>>>>>>> I would like to generate a block which consists of a assembly 
>>>>>>>>>>>> spheres. Is it possible to generate the block by other code, and 
>>>>>>>>>>>> then load 
>>>>>>>>>>>> it into DEM-Engine via a file containg the informations (such as 
>>>>>>>>>>>> position 
>>>>>>>>>>>> and radius) of the spheres?
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you,
>>>>>>>>>>>> Weigang
>>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>> 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 projectchron...@googlegroups.com.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/projectchrono/1910af21-d1e3-43dd-a779-0c229e6150a6n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/projectchrono/1910af21-d1e3-43dd-a779-0c229e6150a6n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>

-- 
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 projectchrono+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/projectchrono/f4f88237-422b-498f-bdf7-82ee762dd322n%40googlegroups.com.

Reply via email to