Hi, thank you for your response!
First of all, I may have to apologise for my language skills and I really 
appreciate that you are willing to listen to my ideas. I'd like to describe 
my question again. I have finished a complete complex experiment, including 
around 10k granular objects, two objs of my own, one container by using 
*utils::AddBoxGeometry* and several links and motors, such as 
*ChLinkMotorRotationSpeed*、*ChLinkMotorLinearSpeed*、*ChLinkMateFix*. I 
achieved it by using *the MCORE module*, although it can speed up the 
program by using multiple threads, it still took 2 hours four one time 
simulation.

Now I am considering using the reinforcement learning afterwards, so it is 
important to improve the simulation speed. I am wondering if I can use 
*Chrono::GPU* only for my  granular objects, and all other content remains 
the same by using *the MCORE module.* More specifically, I plan to use both 
*ChSystemMulticoreSMC* and *ChSystemGpuMesh* in one cpp. The reason I want 
to do this is because *Chrono::GPU* is more like a separate module, some of 
the functions I need for simulation can't be found in *Chrono::GPU*, but 
can be found in *the MCORE module* and are already realized through my 
previous efforts.

I also note that *Chrono::GPU *quote 
ChronoEngine_GPU、ChronoEngine_irrlicht、ChronoEngine_multicore、ChronoEngine_opengl、ChronoEngine_postprocess、ChronoEngine_robot
 
and *ChronoEngine_multicore(* *the MCORE module* *) *is the one which I 
used now.  So I can use MCORE-functions in cpps in *Chrono::GPU*,by 
including the .h insteading of modify the CMakeLists.txt. 

I tried and felt if this idea was unattainable. Because I need to create 
two systems in one cpp. Meanwhile, for visualization, 
*opengl::ChVisualSystemOpenGL* is used in *the* *MCORE module *and 
*ChGpuVisualization* is used in *the **Chrono::GPU *and I can't find an 
interface between the two which means they can't be showed in one window. I 
don't know how to solve this problem anymore and I wonder if you have any 
suggestions.

I really appreciate your help!



在2022年11月10日星期四 UTC+8 13:29:20<Ruochun Zhang> 写道:

> Hi,
>
> I hope someone can provide better help on the linkage issue. What I can 
> say is that you can try building it with cuda11.6 and the newest gcc. If 
> you are using cuda11.8, or an ancient version of cuda or gcc, I cannot be 
> sure. I've been building it with the said configuration with no problem, on 
> Linux or Windows.
>
> About Chrono::GPU's usage, yes it supports obj meshes. I am not sure about 
> what you meant by multi-core acceleration. I might, if you elaborate a bit. 
> And Chrono::GPU should interact with Chrono just fine, for that maybe you 
> can have a look at the *ballcosim *demo.
>
> If you care about polydisperse spherical particles or complex shaped 
> particles, then DEM-Engine is the way to go. You can start using it now. 
> Indeed, documentations are being added. I can drop you a message when it 
> becomes more accessible. Right now, I attached a snippet from one of my 
> previous emails, to help you understand how to build this tool on Linux. In 
> terms of using it, I'd start with checking out and running its demos. And 
> then, the methods in *API.h* are mostly commented, which for now, may 
> serve as an ad-hoc documentation for you to understand what some of its 
> basic usages are.
>
> Thank you,
> Ruochun
> On Wednesday, November 9, 2022 at 2:19:40 AM UTC-6 [email protected] wrote:
>
>> Hi, thank you very much for your help!
>> After last mail, I choosed to use the multicore, the simulation took 2 
>> hours every time now,  because I was constantly adding requests and 
>> features and the number of bodies comes to 10k. Meanwhile, I bought a 3080 
>> and a new computer. I am considering using the reinforcement learning 
>> afterwards, so it is important to improve the simulation speed.
>> I have studied your response several times,I am wondering if I can only 
>> use Chrono::GPU for my particle-related content, and all other content 
>> remains the same, such as multi-core acceleration, loading my own obj. More 
>> specifically, I plan to use both ChSystemMulticoreSMC and ChSystemGpuMesh. 
>> When compile the project, there are errors "LNK2019:Unresolvable external 
>> symbols" in every functions defined in GPU and used in the Muticore and I 
>> feel this is a deeper issue involving linkers. So I would like to ask for 
>> guidance or is there another way to use the Chrono::GPU as a DEMsolver only 
>> for the particles.
>> And I learned something about projectchrono 
>> <https://github.com/projectchrono>/DEM-Engine 
>> <https://github.com/projectchrono/DEM-Engine>, but I found  how to 
>> Install DEM-Engine and the DEM-Engine usage are still waiting to be 
>> added, I would love to try it if I could.
>> Thank you again!
>>
>> 在2022年9月24日星期六 UTC+8 14:45:22<Ruochun Zhang> 写道:
>>
>>> Hi,
>>>
>>> The GPU module does benefit a lot from more recent hardware. If your 
>>> test case does not feature a huge number of bodies, say some 10k, then 
>>> multicore can be a good choice. It probably requires less learning from you 
>>> too.
>>>
>>> It should be noted that Chrono::GPU is not "Chrono on GPU". Most Chrono 
>>> core classes and methods cannot be used in Chrono::GPU. For all 
>>> purposes, Chrono::GPU can be seen as a standalone DEM solver for 
>>> monodisperse spherical particles, implemented on GPU. It should be used to 
>>> simulate granular materials, and it can interact with Chrono (core) so that 
>>> it becomes possible to bring a small number of more complex objects (such 
>>> as your spoon) into the simulation as well. So if you would like to use 
>>> Chrono::GPU, you have to start from its demos, to learn how to use its own 
>>> methods to instantiate and manage granular particles. Chrono::GPU's main 
>>> advantage is being fast. If your simulation has to involve millions of 
>>> granular particles, then multicore will not do and GPU is the choice.
>>>
>>> More specifically, *CreateCylindricalContainerFromBoxes*  is not a 
>>> Chrono::GPU thing at all. *cohesion_ratio* is about the cohesion 
>>> between Chrono::GPU particles, and it has nothing to do with gravity, which 
>>> is set by *SetGravitationalAcceleration* in Chrono::GPU.
>>>
>>> On a different note, Chrono's DEM/granular support on GPU is moving 
>>> towards a new direction. The support for complex granular particle shapes 
>>> will be added and it will become a duo-GPU solver. It will be based on 
>>> SBEL's 
>>> new DEM Engine <https://github.com/uwsbel/DEM-Engine>. Apart from being 
>>> more general and having higher efficiency, the usage of it is similar to 
>>> Chrono::GPU, as a standalone helper to Chrono core which manages the 
>>> granular part of the simulation, or work on its own as a dedicated DEM 
>>> solver. If from the previous conversation you believe Chrono::GPU is for 
>>> you, then likely this package will be of interest. More documentations and 
>>> user guides are being added to it. But again, it does benefit from recent 
>>> GPUs though. 
>>>
>>> Thank you,
>>> Ruochun
>>>
>>> On Sunday, September 18, 2022 at 2:13:24 AM UTC-5 [email protected] wrote:
>>>
>>>> hello there,
>>>> I am tring to perform a simulation which I want to put an object like a 
>>>> spoon and scoop the sand(granular objects) to see the force in the process.
>>>> I find that demo_GPU_mixer.cpp demo can be referenced, but I am not 
>>>> sure whether I need to add a container holding those sand and give the 
>>>> granular objects gravity. If this is so, should I use 
>>>> *CreateCylindricalContainerFromBoxes* to add container and use 
>>>> *cohesion_ratio*  in the .json to add the gravity? Also, I am sad that 
>>>> I have a poor GPU so that it really take a long long time to run the gpu 
>>>> module.
>>>> Then I find that there are also some granular objects demos in the 
>>>> multicore module, I find some demos about a container with granular 
>>>> material. And I can run those demos faster.
>>>> Now I am confused about what thing to do next is much better.
>>>>
>>>> Any help will be appreciated, thank you so much 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/2ae78d08-7402-4212-90f9-a95e0f56e713n%40googlegroups.com.

Reply via email to