 		}
 
 		shurA(mx);
-		real lm;
-#pragma omp parallel private(lm)
-		{
-			lm=FLT_MAX;
-#pragma omp for
+
+#pragma omp parallel for
 		for (uint index = 0; index < number_of_contacts; index++) {
 			real3 temp = R3(0);
 			int2 id_ = ids[index];

			_mx.y = my[index + number_of_contacts * 1] + mg[index + number_of_contacts * 1] * (t_k);
			_mx.z = my[index + number_of_contacts * 2] + mg[index + number_of_contacts * 2] * (t_k);

			function_Project_single(index, id_, fric.data(), _mx);

			mx[index + number_of_contacts * 0] = _mx.x;
			mx[index + number_of_contacts * 1] = _mx.y;

#include "ChSolverGPU.cuh"
using namespace chrono;

__host__ __device__ void function_Project_single(int2 &ids, real *fric, real3 & gamma) {
	int2 body_id = ids;
	real f_tang = sqrt(gamma.y * gamma.y + gamma.z * gamma.z);
	real mu = (fric[body_id.x] == 0 || fric[body_id.y] == 0) ? 0 : (fric[body_id.x] + fric[body_id.y]) * .5;
