Hi, Not all in one file: you should split your meshes into 2 different files and load separately, if you want to make it easier. Each file should contain a part of your original mesh. This task is pre-processing, you have to use a mesh tool, and Chrono cannot help you do that. Any modern CAD should suffice. Should be easily doable in Python too, Trimesh package could help you. Just to name a few possibilities.
Thank you, Ruochun On Friday, June 17, 2022 at 1:01:21 AM UTC-5 [email protected] wrote: > Hello, > Thank you for your explanation. I also found it weird that the simulation > time increased by such a significant factor. my simulations used to take > 3.30 hrs and now they take 8hrs. As a result, I would try to switch gears > and try the method you described. However, I have some questions about it. > when you import the meshed all together in one file, how can you > distinguish between the different meshes when writing the script? in other > words, since the meshes are all managed by the same body, how can I get > the forces on one mesh only (e.g. tip of the cone)? I am new to Chrono so > I am still trying to learn the logic when scripting stuff. I would > appreciate if you have an example of how I can do this. > > Thank you so much > > On Wednesday, June 15, 2022 at 7:59:04 PM UTC-7 Ruochun Zhang wrote: > >> Hi, >> >> That should be possible and in fact, I think you are almost doing that. >> The current Chrono::GPU can only output the total force experienced by a >> mesh, which means you have to do some pre-processing to split the mesh into >> two (near-tip region and the rest of the cone body), however you don't have >> to split the Chrono body into two. After splitting the mesh (maybe with a >> CAD software), you should have 2 meshes, which are both non-closed surface >> meshes, but it is fine, because Chrono::GPU treats a mesh as a collection >> of triangle facets anyway; just make sure when put together, these 2 meshes >> form an almost-watertight cone surface. Then you can load them in your >> script via two *AddMesh *calls (or add *AddMeshes*, if you would). Then, >> these two meshes can be managed by *one *Chrono body. It's just like >> before, get position and velocity of that Chrono body, and apply that >> information to *both *meshes. Then, you can use *CollectMeshContactForces >> *to collect the force and torque information from whichever mesh you are >> interested in. Note however, before you *Accumulate_force *and >> *Accumulate_torque >> *to that Chrono body, you need to add *cone_force *and *cone_torque *of >> the two partial meshes together, because obviously they are both parts of >> the cone body and the forces they experience stack, from the perspective of >> the Chrono body. >> >> One thing that is a bit weird to me is that splitting the cone causes the >> simulation time to increase significantly for you. The Chrono side of >> simulation should only take a fraction of the total runtime, for a >> reasonably sized DEM problem. Either the mesh got some issues or the >> problem size is extremely small. But it's perhaps not a big show-stopper. >> >> Finally, I hear you, I'll consider adding more explicit control/query >> methods to mesh objects in our upcoming new-generation Chrono DEM solver. >> >> Thank you, >> Ruochun >> >> On Wednesday, June 15, 2022 at 3:44:29 PM UTC-5 [email protected] >> wrote: >> >>> Hello, >>> >>> Thank you so much for your response. That indeed solved the problem. >>> However, it did not help me with the purpose of my simulation. the reason >>> that I split the cone body into two bodies is that I wanted to obtain the >>> forces on the tip of the cone only. However, by splitting the body, the >>> simulation time increased by 2.5 and I am not really sure of the accuracy >>> of the result. Is there a way to specify the specific part of the cone( the >>> tip in case) where I want to obtain the forces on? in other words, is >>> there a way to obtain the forces on the tip of the cone only without the >>> need for splitting the cone into two different bodies? I am new to Chrono >>> so I am not 100% sure of its abilities. I would assume that this is >>> something common and would have a solution. >>> >>> Thank you so much, >>> >>> On Monday, June 13, 2022 at 10:35:56 PM UTC-7 Ruochun Zhang wrote: >>> >>>> Hi, >>>> >>>> Without looking into too many details, you should try this first: >>>> Change the first argument of method *ApplyMeshMotion *to be >>>> corresponding mesh numbers. We you *AddMesh*, it returns the mesh >>>> number that you can refer to in your script, but in your case, they are >>>> simply 0 and 1 (instead of both 0). >>>> >>>> If there are still problems, could you follow up and provide more >>>> information on how it "did not work"? >>>> >>>> Thank you, >>>> Ruochun >>>> >>>> On Monday, June 13, 2022 at 10:24:08 PM UTC-5 [email protected] >>>> wrote: >>>> >>>>> Hi, >>>>> I'm running a co-simulation script to simulate dropping a cone that is >>>>> split into two bodies on a particle bed using a material-based >>>>> model. However, I am trying to have the two bodies either linked together >>>>> or move at the same speed. I tried to use the Chlink different methods to >>>>> link the bodies but it didn't work. I also tried to include two motors >>>>> and >>>>> have the two bodies move at the same speed but that did not work either. >>>>> I >>>>> looked at many demos but they mostly have only one body in a simulation >>>>> and >>>>> so could not find something similar to my application. I am going to >>>>> include my file for your reference. >>>>> >>>>> Thank you so much, >>>>> >>>> -- 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/d041aa7f-aef8-4fdd-a085-333f9b326991n%40googlegroups.com.
