@@ -356,68 +356,8 @@ void CVolumetricMovement::ComputenNonconvexElements(CGeometry *geometry, bool Sc
356356 nNonconvexElements++;
357357 }
358358 }
359- } else if (false ) {
360-
361- /* --- 3D elements ---*/
362- unsigned short iNode, iFace, nFaceNodes;
363-
364- for (iElem = 0 ; iElem < geometry->GetnElem (); iElem++){
365- for (iFace = 0 ; iFace < geometry->elem [iElem]->GetnFaces (); iFace++){
366- nFaceNodes = geometry->elem [iElem]->GetnNodesFace (iFace);
367-
368- su2double minCrossProductLength = 1 .e6 , maxCrossProductLength = -1 .e6 ;
369- for (iNode = 0 ; iNode < nFaceNodes; iNode++) {
370- su2double crossProductLength = 0.0 ;
371-
372- /* --- Get coords of node face_point_i and its adjacent nodes in the face ---*/
373- unsigned long face_point_i, face_point_j, face_point_k;
374-
375- face_point_i = geometry->elem [iElem]->GetNode (geometry->elem [iElem]->GetFaces (iFace, iNode));
376-
377- // / TODO: Faces may have up to 4 nodes, not all posibilities are covered
378-
379- if (iNode == 0 ) {
380- face_point_j = geometry->elem [iElem]->GetNode (geometry->elem [iElem]->GetFaces (iFace, nFaceNodes-1 ));
381- face_point_k = geometry->elem [iElem]->GetNode (geometry->elem [iElem]->GetFaces (iFace, iNode+1 ));
382- } else if (iNode == nFaceNodes-1 ) {
383- face_point_j = geometry->elem [iElem]->GetNode (geometry->elem [iElem]->GetFaces (iFace, iNode-1 ));
384- face_point_k = geometry->elem [iElem]->GetNode (geometry->elem [iElem]->GetFaces (iFace, 0 ));
385- }
386-
387- const auto Coords_i = geometry->nodes ->GetCoord (face_point_i);
388- const auto Coords_j = geometry->nodes ->GetCoord (face_point_j);
389- const auto Coords_k = geometry->nodes ->GetCoord (face_point_k);
390-
391- /* --- Get edge vectors from point k to i and point j to i ---*/
392- su2double edgeVector_i[3 ], edgeVector_j[3 ];
393- GeometryToolbox::Distance (nDim, Coords_k, Coords_i, edgeVector_i);
394- GeometryToolbox::Distance (nDim, Coords_j, Coords_i, edgeVector_j);
395-
396- /* --- Calculate cross product of edge vectors and its length---*/
397- su2double crossProduct[3 ];
398- GeometryToolbox::CrossProduct (edgeVector_i, edgeVector_j, crossProduct);
399-
400- // / TODO: This logic is incorrect, the norm will never be less than 0
401-
402- crossProductLength = GeometryToolbox::Norm (nDim, crossProduct);
403-
404- /* --- Check if length is minimum or maximum ---*/
405- if (crossProductLength < minCrossProductLength) {
406- minCrossProductLength = crossProductLength;
407- } else if (crossProductLength > maxCrossProductLength) {
408- maxCrossProductLength = crossProductLength;
409- }
410- }
411-
412- /* --- If minimum cross product length is smaller than 0,
413- face (and therefore element) is not convex ---*/
414- if (minCrossProductLength < 0 ) {
415- nNonconvexElements++;
416- break ;
417- }
418-
419- }
420- }
359+ } else if (rank == MASTER_NODE) {
360+ cout << " \n WARNING: Convexity is not checked for 3D elements (issue #1171).\n " << endl;
421361 }
422362
423363 unsigned long nNonconvexElements_Local = nNonconvexElements; nNonconvexElements = 0 ;
0 commit comments