I have adapted the compute conts
function to make contact calculations for a model that depends on the surface contact area between contacting particles. For superquadrics however, the rsq <= radsumsq
condition in compute_contact_atom.cpp
overestimates the contact time when the superquadric contact point is not at the maximum radius for both particles. The correct calculation of deltan
(total deformation) for superquadrics is needed to make this work properly. For particle-wall contacts this is much easier to find, see :
Superquadric particle(x_[iPart], quat_[iPart], shape_[iPart], blockiness_[iPart]);
intersectflag = particle.plane_intersection(delta, sphere_contact_point, closestPoint, point_of_lowest_potential);
deltan = -MathExtraLiggghtsNonspherical::point_wall_projection(delta, sphere_contact_point, closestPoint, closestPointProjection);
which are lines 1105, 1106 & 1117 in fix_wall_gran.cpp
(though I'm not sure how to find the contact area that corresponds to deltan
for superquadrics). These calculations must already exist in the code when the particle-particle collisions are resolved. Could someone point me in the right direction? And maybe indicate how to add these calculations to compute_contact_atom.cpp
?
Many thanks, John