Как обеспечить точки узла в gmsh?

Я пытаюсь построить довольно простую сетку. У меня есть коробка:

box_size = 50;
lb = 10.;
Point(1) = {-box_size/2, -box_size/2, -box_size/2, lb};
Point(2) = {box_size/2, -box_size/2, -box_size/2, lb};
Point(3) = {box_size/2, box_size/2, -box_size/2, lb};
Point(4) = {-box_size/2, box_size/2, -box_size/2, lb};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line Loop(5) = {1, 2, 3, 4};
Plane Surface(6) = {5};
Extrude {0, 0, box_size} {
  Surface{6};
}

Это работает довольно хорошо, и gmsh с радостью создаст (3D) сетку. Проблема в том, что я хотел бы убедиться, что определенные точки внутри коробки являются узловыми точками. Итак, мой вопрос: как я могу гарантировать, что такие точки, как эти

lc = 10;
Point(5) = {7.150548, 1.000000,  -6.990684, lc};
Point(6) = {-4.438894, 1.000000,  -8.960816, lc};
Point(7) = {-9.893936, 1.000000,  1.452595, lc};
Point(8) = {-1.675894, 1.000000,  9.858569, lc};
Point(9) = {8.858176, 1.000000,  4.640336, lc};
Point(10) = {1.675894, 4.750000,  -9.858569, lc};
Point(11) = {-8.858176, 4.750000,  -4.640336, lc};
Point(12) = {-7.150548, 4.750000,  6.990684, lc};
Point(13) = {4.438894, 4.750000,  8.960816, lc};
Point(14) = {9.893936, 4.750000,  -1.452595, lc};
Point(15) = {7.150548, 8.500000,  -6.990684, lc};

являются частью сетки?

Причина, по которой мне это нужно, заключается в том, что мне нужно наложить граничные условия в этих конкретных точках.

Если это проще в другом софте, тоже с удовольствием поменяю. Я надеюсь, что кто-то может помочь.

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


person Julius    schedule 31.03.2016    source источник


Ответы (2)


Довольно поздний ответ, но он все равно может помочь. Если индекс точки равен p, а индекс объема или поверхности равен q, то:

Point{p} In Volume {q};

Или, если он находится на поверхности:

Point{p} In Surface {q};
person bertbk    schedule 07.03.2018

Я считаю, что единственный вариант — разделить структуру таким образом, чтобы они отображали ваши точки, и после этого создать сетку структуры. Теперь вы можете применить свои нагрузки и условия к физическим точкам или физическим линиям.

Пример: если у вас есть куб, который вы хотите создать. И граничное условие находится на плоскости в центре, затем разделите куб на этой плоскости. Сделайте плоскость физической сущностью, т. е. Physical Surface(14) = {номер промежуточной плоскости}. Смешайте все это, и все готово!

person agent18    schedule 05.07.2016
comment
Здравствуйте, я не имею права писать комментарии. Мне не хватает баллов. Ответ не требует примера кода... идея стоит сама собой. Сделать пример кода было бы слишком дорого, особенно на основе его примера кода. Я верю, что ответ достаточно информирует его о том, что делать! - person agent18; 08.07.2016