#ifndef CHC_NARROWPHASE_H
#define CHC_NARROWPHASE_H

#include "chrono_parallel/ChParallelDefines.h"
#include "chrono_parallel/ChDataManager.h"

namespace chrono {
namespace collision {

struct ConvexShape {
   shape_type type;  //type of shape
   real3 A;  //location
   real3 B;  //dimensions
   real3 C;  //extra
   quaternion R;  //rotation
   real3* convex;      // pointer to convex data;
   real margin;
   ConvexShape():margin(0.04){}
};

}  // end namespace collision
}  // end namespace chrono

#endif


#ifndef CHC_NARROWPHASE_H
#define CHC_NARROWPHASE_H

#include "chrono_parallel/ChParallelDefines.h"
#include "chrono_parallel/ChDataManager.h"

namespace chrono {
namespace collision {

struct ConvexShape {
   shape_type type;  //type of shape
   real3 A;  //location
   real3 B;  //dimensions
   real3 C;  //extra
   quaternion R;  //rotation
   real3* convex;      // pointer to convex data;
};

}  // end namespace collision
}  // end namespace chrono

#endif


--- 
+++ 
@@ -14,6 +14,8 @@
    real3 C;  //extra
    quaternion R;  //rotation
    real3* convex;      // pointer to convex data;
+   real margin;
+   ConvexShape():margin(0.04){}
 };
 
 }  // end namespace collision
Add a collision margin to each shape
Margins are one way to improve stability of contacts.
Only the GJK solver will use these initially
