message: updated profile elements with cylindrical constraint test
diff: // Include the multibody dynamics code
  #include "RigidBody.h"
  +#include "Constraint.h"
  /*
  Generate a random array of values
  @@ -77,6 +78,12 @@ int main( int argc, char *argv[] ){
  ename = argv[1];
  }
  +#ifdef TACS_USE_COMPLEX
  + const double dh = 1.0e-30;
  +#else
  + const double dh = 1.0e-8;
  +#endif
  +
  const int MAX_NODES = 27;
  const int MAX_VARS_PER_NODE = 8;
  const int MAX_VARS = MAX_NODES*MAX_VARS_PER_NODE;
  @@ -292,6 +299,10 @@ int main( int argc, char *argv[] ){
  bodyA->incref();
  // Test the rigid body
  + /*
  + bodyA->testResidual(dh);
  + bodyA->testJacobian(dh, 2.0, 3.0, 4.0);
  + */
  test_element(bodyA, time, Xpts, vars, dvars, ddvars, num_design_vars);
  // Test the revolute constraint
  @@ -301,6 +312,11 @@ int main( int argc, char *argv[] ){
  rev->incref();
  test_element(rev, time, Xpts, vars, dvars, ddvars, num_design_vars);
  + // Test the cylindrical constraint
  + TACSCylindricalConstraint *cyl = new TACSCylindricalConstraint(bodyA, point, eRev);
  + cyl->incref();
  + test_element(cyl, time, Xpts, vars, dvars, ddvars, num_design_vars);
  +
  // Test the spherical constraint
  TACSSphericalConstraint *ball = new TACSSphericalConstraint(bodyA, point);
  ball->incref();
  @@ -340,6 +356,11 @@ int main( int argc, char *argv[] ){
  rev2->incref();
  test_element(rev2, time, Xpts, vars, dvars, ddvars, num_design_vars);
  + // Test the revolute constraint
  + TACSCylindricalConstraint *cyl2 = new TACSCylindricalConstraint(bodyA, bodyB, point, eRev);
  + cyl2->incref();
  + test_element(cyl2, time, Xpts, vars, dvars, ddvars, num_design_vars);
  +
  // Test the spherical constraint
  TACSSphericalConstraint *ball2 = new TACSSphericalConstraint(bodyA, bodyB, point);
  ball2->incref();
  