Периодическая линия в GMSH Python API: AffineTransform необходима?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Периодическая линия в GMSH Python API: AffineTransform необходима?

Сообщение Anonymous »

Используя GMSH Python API с Opencascade, я пытаюсь создать периодическую сетку, так что левая граница соответствует правой, а верхняя часть соответствует дне. Файл .geo работает нормально, но gmsh.model.mesh.setperiodic () , кажется, не работает в API GMSH Python. следующим образом: < /p>

Код: Выделить всё

SetFactory("OpenCASCADE");
// Define points (different meshSizes to check periodicity)
Point(1) = {0, 0, 0, 0.005};
Point(2) = {1, 0, 0, 0.05};
Point(3) = {1, 1, 0, 0.2};
Point(4) = {0, 1, 0, 0.2};

// Define lines
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};

// Define line loop, turn into surface
Line Loop(1) = {1, 2, 3, 4};
Plane Surface(1) = {1};

// Define periodic boundaries
Periodic Line {1} = {-3};
Periodic Line {2} = {-4};
< /code>
Это работает нормально. Однако в API Python я не могу получить функцию gmsh.model.mesh.setperiodic () 
для работы одинаково. Это дает ошибку, что «AffineTransform» должна быть указана (которая не должна быть необходима для периодической строки), но даже если я попытаюсь указать аффинетерсформу как матрицу идентификации или фактически в качестве перевода сверху вниз или слева направо, он все еще не работает.
Это мой сценарий: < /p>
import gmsh

gmsh.initialize()
gmsh.model.add("example")

# Define points (different meshSizes to check periodicity)
points = [
gmsh.model.occ.addPoint(0, 0, 0, 0.005),
gmsh.model.occ.addPoint(1, 0, 0, 0.05),
gmsh.model.occ.addPoint(1, 1, 0, 0.2),
gmsh.model.occ.addPoint(0, 1, 0, 0.2),
]

# Define lines
lines = [
gmsh.model.occ.addLine(points[0], points[1]),
gmsh.model.occ.addLine(points[1], points[2]),
gmsh.model.occ.addLine(points[2], points[3]),
gmsh.model.occ.addLine(points[3], points[0])
]

# Create line loop, turn into a surface
line_loop = gmsh.model.occ.addCurveLoop(lines)
plane_surface = gmsh.model.occ.addPlaneSurface([line_loop])

# Set the periodic boundary conditions
gmsh.model.mesh.setPeriodic(1, lines[0:1], [-lines[2]])
gmsh.model.mesh.setPeriodic(1, lines[1:2], [-lines[3]])

# Generate mesh of dim 2
gmsh.model.mesh.generate(2)

# Write mesh to file
gmsh.write(r"example.msh")

# Launch the GUI to see the results:
gmsh.fltk.run()

# Finalize Gmsh
gmsh.finalize()
< /code>
Как я могу создать периодическую строку, используя GMSH Python API? Предпочтительно без необходимости выяснить аффинетерсформу от одной линии к другой, хотя, если необходимо, я могу это сделать.

Подробнее здесь: https://stackoverflow.com/questions/794 ... orm-needed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Периодическая линия в GMSH Python API: AffineTransform необходима?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Периодическая линия в GMSH Python API: AffineTransform необходима?
    Гость » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Гость
  • Новая линия, новая линия, не вносит высоту коробки в
    
    																											
    Anonymous » » в форуме Html
    0 Ответы
    64 Просмотры
    Последнее сообщение Anonymous
  • Новая линия, новая линия, не вносит высоту коробки в
    
    																											
    Anonymous » » в форуме CSS
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Новая линия, новая линия, не вносит высоту коробки в
    
    																											
    Anonymous » » в форуме Html
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»