@@ -30,8 +30,8 @@ int main() {
3030 DEMSim.SetNoForceRecord ();
3131 DEMSim.SetMeshUniversalContact (true );
3232
33- auto mat_type_cube = DEMSim.LoadMaterial ({{" E" , 1e9 }, {" nu" , 0.3 }, {" CoR" , 0.6 }, {" mu" , 0.5 }, {" Crr" , 0.01 }});
34- auto mat_type_drum = DEMSim.LoadMaterial ({{" E" , 2e9 }, {" nu" , 0.3 }, {" CoR" , 0.6 }, {" mu" , 0.5 }, {" Crr" , 0.01 }});
33+ auto mat_type_cube = DEMSim.LoadMaterial ({{" E" , 1e6 }, {" nu" , 0.3 }, {" CoR" , 0.6 }, {" mu" , 0.5 }, {" Crr" , 0.01 }});
34+ auto mat_type_drum = DEMSim.LoadMaterial ({{" E" , 2e6 }, {" nu" , 0.3 }, {" CoR" , 0.6 }, {" mu" , 0.5 }, {" Crr" , 0.01 }});
3535 DEMSim.SetMaterialPropertyPair (" mu" , mat_type_cube, mat_type_drum, 0.5 );
3636
3737 const float cube_size = 0 .01f ;
@@ -54,13 +54,17 @@ int main() {
5454 float IZZ = CylMass * CylRad * CylRad / 2 ;
5555 float IYY = (CylMass / 12 ) * (3 * CylRad * CylRad + CylHeight * CylHeight);
5656 auto Drum = DEMSim.AddExternalObject ();
57- Drum->AddCylinder (CylCenter, CylAxis, CylRad, mat_type_drum, 0 );
57+ // Drum->AddCylinder(CylCenter, CylAxis, CylRad, mat_type_drum, 0);
58+ Drum->AddPlane (make_float3 (CylRad, 0 , 0 ), make_float3 (-1 , 0 , 0 ), mat_type_drum);
59+ Drum->AddPlane (make_float3 (-CylRad, 0 , 0 ), make_float3 (1 , 0 , 0 ), mat_type_drum);
60+ Drum->AddPlane (make_float3 (0 , CylRad, 0 ), make_float3 (0 , -1 , 0 ), mat_type_drum);
61+ Drum->AddPlane (make_float3 (0 , -CylRad, 0 ), make_float3 (0 , 1 , 0 ), mat_type_drum);
5862 Drum->SetMass (CylMass);
5963 Drum->SetMOI (make_float3 (IYY, IYY, IZZ));
6064 auto Drum_tracker = DEMSim.Track (Drum);
6165 unsigned int drum_family = 100 ;
6266 Drum->SetFamily (drum_family);
63- const float rpm = 20 .0f ;
67+ const float rpm = 200 .0f ;
6468 const float drum_ang_vel = rpm * 2 .0f * PI / 60 .0f ;
6569 DEMSim.SetFamilyPrescribedAngVel (drum_family, " 0" , " 0" , to_string_with_precision (drum_ang_vel));
6670 auto top_bot_planes = DEMSim.AddExternalObject ();
@@ -97,7 +101,7 @@ int main() {
97101 float max_v;
98102
99103 DEMSim.InstructBoxDomainDimension (0.4 , 0.4 , 0.4 );
100- float step_size = 5e- 6f ;
104+ float step_size = 1e- 4f ;
101105 DEMSim.SetInitTimeStep (step_size);
102106 DEMSim.SetGPUTimersEnabled (true );
103107 DEMSim.SetGravitationalAcceleration (make_float3 (0 , 0 , -9.81 ));
@@ -134,7 +138,7 @@ int main() {
134138 << drum_torque.z << std::endl;
135139
136140 float3 force_on_BC = planes_tracker->ContactAcc () * planes_tracker->Mass ();
137- std::cout << " Contact force on bottom plane is " << force_on_BC.z << std::endl;
141+ std::cout << " Contact force on bottom plane is " << std::abs ( force_on_BC.z ) << std::endl;
138142
139143 DEMSim.DoDynamics (frame_time);
140144 }
0 commit comments