diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp index 2a31b1244ea2014b436e49e1a17a1017570054b2..02f87f38171b50017af5ba3b5b6c8bb4b9cf54d2 100644 --- a/Mesh/BDS.cpp +++ b/Mesh/BDS.cpp @@ -607,16 +607,14 @@ void BDS_Point :: compute_curvature ( ) M.least_squares (Ny,Cy); M.least_squares (Nz,Cz); - const double A[9] = { Cx(0),0.5*(Cx(1)+Cy(0)), 0.5*(Cx(2)+Cz(0)) , - 0.5*(Cx(1)+Cy(0)), Cy(1), 0.5*(Cy(2)+Cz(1)) , - 0.5*(Cx(2)+Cz(0)), 0.5*(Cy(2)+Cz(1)) ,Cz(2)}; - - double v[9]; - double wr[3],wi[3]; - - EigSolve3x3 (A ,wr,wi,v); + // curvature = divergence of n + + double curvature = Cx(0) + Cy(1) + Cz(2); - if(wr[0]!=0.0)radius_of_curvature = fabs(1/wr[0]); + if (curvature != 0.0) + radius_of_curvature = fabs(1/curvature); + else + radius_of_curvature = 1.e22; // printf(" curvature = %g %g %g R = %g\n",wr[0],wr[1],wr[2],radius_of_curvature); } }