Hi,

My previous post (https://groups.google.com/g/projectchrono/c/A7GlGUYS1Ik) 
failed to garner any engagement, so I did the only thing I could think of 
in the situation and moved to C++ to remove any Python/SWIG-related issues.

*As much as I try, I can't get ChBody's to work with ChGravityLoader.*
I started from demo_IRR_visualize_collision.cpp and made only two notable 
changes:
* I removed the built-in gravity by calling SetGravitationalAcceleration 
with the zero vector
* I added back the gravity individually to each object through a 
ChLoadContainer and a ChLoad for each object.

The simulation does not run at all when I try to use ChSystemNSC.
It starts with ChSystemSMC, but it looks like the gravity is working only 
until the first collision (or some other undetermined condition that I 
can't recognize).

I can't use ChCollisionSystem::Type::MULTICORE, because I didn't build 
Chrono to support it. Would this collision system solve my issues?

The full source is available at https://pastebin.com/fXEmB9Bg
These are the changes I've made to the original source code:

diff --git a/src/demos/irrlicht/demo_IRR_visualize_collision.cpp 
b/src/demos/irrlicht/demo_IRR_visualize_collision.cpp
index 022d906c7..fc04cba6b 100644
--- a/src/demos/irrlicht/demo_IRR_visualize_collision.cpp
+++ b/src/demos/irrlicht/demo_IRR_visualize_collision.cpp
@@ -17,6 +17,8 @@

 #include "chrono/collision/bullet/ChCollisionSystemBullet.h"
 #include "chrono/physics/ChSystemNSC.h"
+#include "chrono/physics/ChSystemSMC.h"
+#include "chrono/physics/ChLoadContainer.h"
 #include "chrono/physics/ChBodyEasy.h"
 #include "chrono/core/ChTimer.h"
 #include "chrono/core/ChRealtimeStep.h"
@@ -59,10 +61,13 @@ int main(int argc, char* argv[]) {
     std::cout << "Copyright (c) 2017 projectchrono.org\nChrono version: " 
<< CHRONO_VERSION << std::endl;

     // Create the Chrono system, bodies, and collison shapes
-    ChSystemNSC sys;
+    ChSystemSMC sys;
+    //ChSystemNSC sys;
     sys.SetCollisionSystemType(csys_type);
+    sys.SetGravitationalAcceleration(ChVector3d(0, 0, 0));

-    auto mat = chrono_types::make_shared<ChContactMaterialNSC>();
+    auto mat = chrono_types::make_shared<ChContactMaterialSMC>();
+    //auto mat = chrono_types::make_shared<ChContactMaterialNSC>();

     auto ground = chrono_types::make_shared<ChBodyEasyBox>(10, 3, 10, 100, 
mat);
     ground->SetFixed(true);
@@ -95,6 +100,14 @@ int main(int argc, char* argv[]) {
     mesh->GetVisualShape(0)->SetColor(ChColor(0.2f, 0.3f, 0.6f));
     sys.AddBody(mesh);

+    auto load_container = chrono_types::make_shared<ChLoadContainer>();
+    for (auto obj : sys.GetBodies()) {
+        auto custom_loader = 
chrono_types::make_shared<ChLoaderGravity>(obj);
+        auto custom_load = 
chrono_types::make_shared<ChLoad>(custom_loader);
+        load_container->Add(custom_load);
+    }
+    sys.Add(load_container);
+
     // Create the Irrlicht visualization system
     auto vis = chrono_types::make_shared<ChVisualSystemIrrlicht>();
     vis->AttachSystem(&sys);

I feel like I'm hitting something fundamental, but I don't know what it is 
and where to read more about it.

I'm using a 1 week old build of the `main` branch of Project Chrono, with 
Irrlicht support enabled. The example runs fine if I return the code to the 
original state, as do all other examples, so I have no reason to believe 
this is caused by a bad build of Project Chrono.

*Can someone please provide any sort of insight as to what is happening?*
I'm simply trying to add the simplest ChLoaderUVW force available and it is 
absolutely not working.

Does this even work for ChBody's? I've seen it works with 
demo_FEA_loads_dynamic, but according to the docs, ChBody is loadable.

Best regards, Yavor

-- 
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 visit 
https://groups.google.com/d/msgid/projectchrono/7c196944-66d2-4295-abc3-5e8b429d5176n%40googlegroups.com.

Reply via email to