Defines tests involving DoNothingApp.

Methods

  • Runs the DoNothingApp simulation with a constant force turning the handle and no damping, so the speed increases to high velocity, and eventually leads to the simulation failing to find accurate solution. TO DO Can we find accurate solution here at high speed by reducing the time step?

    Returns void

  • Shows an error discovered on Sept 23, 2015.

    TO DO: fix or prevent this error.

    DoNothingApp gets stuck when extra accel is set to 'none', but it is OK when set to anything else, such as 'velocity'. Must also have advance.setJointSmallImpacts(false).

    This test is sensitive to the RandomLCG seed. Sometimes it doesn't get an exception but still gets wedged (like with seed = 0).

    Research so far shows that joint distance is same in those 2 cases. But contact distances vary between the 2 cases: in the 'velocity' case the contact distances are steady at 0.00200, forever. In the 'none' case, the contact distances start to vary starting 7 seconds before the error.

    Turn on the CollisionAdvance<RigidBodyCollision>.printJointDistance() code (change it to print non-joints) and you can see the contact distances just before the error are unsteady:

    time 48.0250000 0.0020002, 0.0019999, 0.0019998, 0.0020001, 0.0020000, 0.0020000, 0.0020000, 0.0020000
    time 49.0250000 0.0020002, 0.0019997, 0.0019998, 0.0020003, 0.0020000, 0.0020000, 0.0020000, 0.0020000
    time 50.0250000 0.0019999, 0.0020004, 0.0019995, 0.0019994, 0.0020001, 0.0019996, 0.0020005, 0.0020006, 0.0020000, 0.0020000, 0.0020000, 0.0020000
    time 51.0250000 0.0020009, 0.0019994, 0.0019991, 0.0020006, 0.0020000, 0.0020000, 0.0020000, 0.0020000
    time 52.0250000 0.0020014, 0.0019993, 0.0019986, 0.0020007, 0.0020000, 0.0020000, 0.0020000, 0.0020000
    time 53.0250000 0.0020019, 0.0019992, 0.0019981, 0.0020008, 0.0020000, 0.0020000, 0.0020000, 0.0020000
    time 54.0250000 0.0019992, 0.0019936, 0.0020008, 0.0020064, 0.0020000, 0.0020000, 0.0020000, 0.0020000
    time 55.0250000 0.0019889, 0.0019733, 0.0020111, 0.0020267, 0.0020000, 0.0020000, 0.0020000, 0.0020000, 0.0020000, 0.0020000, 0.0020000, 0.0020000

    Returns void

  • Confirm that the DoNothingApp simulation with constant turning force and high velocity eventually leads to an exception from poor accuracy.

    Running past 38 seconds leads to ComputeForces failures. Previously we had an 'exception test' to get to this point, but the exception is not happening reliably as of March 2014.

    June 2015: this test is now less stable. Change to run only 20 seconds.

    Jan 2021: This test shows why DEFER_SINGULAR in ComputeForces is important. If you modify ComputeForces to print the maximum force at it's conclusion, then with DEFER_SINGULAR=false there are several places where a huge force is calculated, like 6500 or 72000 instead of 25.

    Returns void

  • Shows that the DoNothingApp simulation with constant turning force and high velocity can survive with tight joints using new joint policy.

    TO DO: Check that this is no longer happening. This was in ContactSim's extraAccel code for VELOCITY_AND_DISTANCE // factor of 0.1 is to slow the distance adjustment, which avoids collisions. // See for example DoNothingTest.do_nothing_grinder_test1b which gets // lots of collisions without the 0.1 factor // const x0 = 0.1 * c.distanceToHalfGap(); // extrab = (2v0h + x0)/(h*h)

    Returns void

  • Confirms that DoNothingApp will coast with near-constant energy.

    Returns void

  • Test of DoNothingApp with variable rotating force on handle. This test has many redundant contacts, which activates code in ComputeForces that looks for singular matrices.

    Returns void

Generated using TypeDoc