Проблема с импортом 3D-сетки с помощью Gmsh в fipy

Я пытаюсь импортировать 3D-сетку, созданную с помощью Gmsh в FiPy. Тест с 2D сеткой работал нормально. Если затем модель экструдируется и импортируется с помощью Gmsh3D, я получаю сообщение об ошибке.

GmshException: Gmsh не создал ни одной ячейки! Проверьте свой код Gmsh.

Я работаю над Win10 с Python 3.7.3, Fipy 3.1.3 и Gmsh 3.0.6 (как рекомендуется).

Тестовый файл test2D.geo:

SetFactory("OpenCASCADE");
cl = 0.5;
bs = 2.;
Point(1) = {0, 0, 0, cl};
Point(2) = {0, bs, 0, cl};
Point(4) = { bs,  0, 0, cl};
Point(3) = {bs,  bs, 0, cl};
Line(5) = {1, 2};
Line(6) = {2, 3};
Line(7) = {3, 4};
Line(8) = {4, 1};

Line Loop(10) = {6, 7, 8, 5};
Plane Surface(1) = {10};
Extrude {0, 0, 1} {
  Surface{1}; 
}

а также:

from fipy import *
mesh = Gmsh3D("test2D.msh")

Сообщение об ошибке: GmshException: Gmsh не создал ни одной ячейки! Проверьте свой код Gmsh.

Я не вижу своей ошибки и надеюсь, что кто-то может мне помочь здесь. заранее спасибо

Отредактировано для вывода Gmsh:

Gmsh output:
Info    : Running 'gmsh C:\Users\Tinka\AppData\Local\Temp\tmpj4zr8g_c.geo -3 -nopopup -format msh -o C:\Users\Tinka\AppData\Local\Temp\tmpnz1bp4vu.msh' [Gmsh 3.0.6, 1 node, max. 1 thread]
Info    : Started on Tue May 28 19:50:42 2019
Info    : Reading 'C:\Users\Tinka\AppData\Local\Temp\tmpj4zr8g_c.geo'...
Info    : Done reading 'C:\Users\Tinka\AppData\Local\Temp\tmpj4zr8g_c.geo'
Info    : Finalized high order topology of periodic connections
Info    : Meshing 1D...
Info    : Done meshing 1D (0 s)
Info    : Meshing 2D...
Info    : Done meshing 2D (0 s)
Info    : Meshing 3D...
Info    : Done meshing 3D (0 s)
Info    : 0 vertices 0 elements
Info    : Writing 'C:\Users\Tinka\AppData\Local\Temp\tmpnz1bp4vu.msh'...
Info    : Done writing 'C:\Users\Tinka\AppData\Local\Temp\tmpnz1bp4vu.msh'
Info    : Stopped on Tue May 28 19:50:42 2019

Это работает для меня. Можете ли вы опубликовать вывод gmsh, когда он генерирует test2D.msh?

jeguyer 28.05.2019 17:38

Я добавил вывод к моему вопросу. Спасибо за вашу помощь.

TThe 28.05.2019 19:54

Я не уверен, но похоже, что gmsh не находит никакого содержимого в вашем файле .geo. Я отмечаю, что это работает на временных файлах. Вы уверены, что tmpnz1bp4vu.geo содержит то, что вы думаете? Мой вывод выглядит как gist.github.com/guyer/ab57a69ffa1f228eb599cc0d7cb37f2a.

jeguyer 28.05.2019 20:10

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

TThe 28.05.2019 20:16

Какие действия вы предпринимаете для получения результата Gmsh output: Info : Running 'gmsh C:\Users\Tinka\AppData\Local\Temp\tmpj4zr8g_c.geo -3 -nopopup -format msh -o C:\Users\Tinka\AppData\Local\Temp\tmpnz1bp4vu.msh' [Gmsh 3.0.6, 1 node, max. 1 thread]? Шаг за шагом, что вы делаете?

jeguyer 28.05.2019 20:21

Вывод генерируется после выполнения кода Python, как описано выше в Spyder.

TThe 28.05.2019 20:25

Давайте продолжить обсуждение в чате.

jeguyer 28.05.2019 20:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
359
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я изменил имя аргумента в Gmsh3D на test2D.geo и удалил первую строку из файла гео, и, кажется, все работает.

>>> from fipy import Gmsh3D
>>> mesh = Gmsh("test2D.geo")
>>> print(mesh.cellCenters)
[[1.34821429 1.24404762 1.34821429 ...
...

Я не уверен, что делает первая строка, но я получаю Error : Gmsh requires OpenCASCADE to add vertex, и если она включена, вершины или ячейки не генерируются, но это не обязательно для создания сетки.

Я думаю, что классы FiPy Gmsh принимают файлы как в формате geo, так и в формате msh, но имя файла должно относиться к фактическому файлу на диске.

Я использую версию FiPy, 3.2+2.gccec299e, и версию Gmsh, 3.0.6.

У меня, к сожалению, тоже не работает, но спасибо за идею. Я получаю ту же ошибку.

TThe 28.05.2019 20:05
Ответ принят как подходящий

Эта проблема с gmsh и spyder была исправлена ​​в FiPy 3.3, выпущенном ранее сегодня; спасибо, что сообщили об этом.

Другой проблема, о которой вы сообщили в чате отличается. Как задокументировано для Gmsh2D, но не для Gmsh3D:

... // attention: if you use any "Physical" labels, you *must* label
... // all elements that correspond to FiPy Cells (Physical Surface in 2D
... // and Physical Volume in 3D) or Gmsh will not include them and FiPy
... // will not be able to include them in the Mesh.
...
... // note: if you do not use any labels, all Cells will be included.

Добавление Physical Volumes("cells") = {1}; к вашему скрипту .geo решит эту проблему.

Другие вопросы по теме