Как обеспечить нормальную векторную ориентацию в GMSH? - PullRequest
0 голосов
/ 21 января 2019

Я использую GMSH для создания трехмерных сеток конечных элементов. Одна проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю поверхности, ограничивающие трехмерные объемы, и создаю их сетку, GMSH создает сетку с некоторыми нормалями, направленными внутрь, а другие - наружу (как и должно быть, поскольку вектор нормали). ориентация определяет тело). Есть ли способ убедиться, что GMSH создает сетку с правильной ориентацией?

Вот файл .geo для куба:

// Gmsh project created on Mon Jan 21 16:45:18 2019
SetFactory("OpenCASCADE");
//+
Point(1) = {0, 0, 0, 1.0};
//+
Point(2) = {1, 0, 0, 1.0};
//+
Point(3) = {1, 1, 0, 1.0};
//+
Point(4) = {0, 1, 0, 1.0};
//+
Point(5) = {0, 0, 1, 1.0};
//+
Point(6) = {1, 0, 1, 1.0};
//+
Point(7) = {1, 1, 1, 1.0};
//+
Point(8) = {0, 1, 1, 1.0};
//+
Line(1) = {8, 5};
//+
Line(2) = {5, 6};
//+
Line(3) = {6, 2};
//+
Line(4) = {2, 1};
//+
Line(5) = {1, 4};
//+
Line(6) = {4, 3};
//+
Line(7) = {3, 7};
//+
Line(8) = {7, 6};
//+
Line(9) = {2, 3};
//+
Line(10) = {7, 8};
//+
Line(11) = {8, 4};
//+
Line(12) = {1, 5};
//+
Curve Loop(1) = {6, 7, 10, 11};
//+
Plane Surface(1) = {1};
//+
Curve Loop(2) = {7, 8, 3, 9};
//+
Plane Surface(2) = {2};
//+
Curve Loop(3) = {3, 4, 12, 2};
//+
Plane Surface(3) = {3};
//+
Curve Loop(4) = {12, -1, 11, -5};
//+
Plane Surface(4) = {4};
//+
Curve Loop(5) = {10, 1, 2, -8};
//+
Plane Surface(5) = {5};
//+
Curve Loop(6) = {9, -6, -5, -4};
//+
Plane Surface(6) = {6};
//+
Physical Surface(1) = {1};
//+
Physical Surface(2) = {3};
//+
Physical Surface(3) = {2, 6, 5, 4};

В случае отрицательного ответа, есть ли другой бесплатный генератор сеток конечных элементов?

Заранее спасибо,

...