#python-2.7 #mesh #fipy
#python-2.7 #сетка #fipy
Вопрос:
Я работаю над связанной моделью DEM-CFD. Я использую Fipy для его части CFD, и моя геометрия — цилиндр. Как я могу импортировать сгенерированную сетку в Gmsh в Fipy?
Мне нужно сгенерировать цилиндрическую геометрию и дискретизировать ее, сгенерировав треугольную сетку в 3D в Fipy. Я попытался найти в справке Fipy команду для создания 3D треугольной сетки в цилиндрической геометрии, но я не смог найти ничего подходящего для 3D. Я сгенерировал сетку в программном обеспечении Gmsh, которое принимается Fipy на основе его справки. Теперь у меня есть файл сетки, но я не могу импортировать его в Fipy.
Всякий раз, когда я пытался импортировать ее в модель, я сталкивался с этой ошибкой Gmsh version must be >= 2.0
. Однако моя версия Gmsh была 4.
Я также использовал Gmsh версии 5, но ошибка была той же. Я искал ошибку, и я вижу, что некоторые люди также боролись с этим. Они рекомендовали поместить Gmsh.exe файл в папке script для решения проблемы. Я сделал это, но у меня возникла другая ошибка. Новая ошибка
Windows Error: [Error 32] The process cannot access the file because it is being used by another process
когда команда была mesh = fp.Gmsh3D("Cylinder.msh")
.
Я также искал эту ошибку, и кто-то предложил упомянуть файл геометрии после сетки, mesh = fp.Gmsh3D("Cylinder.msh, Cylinder.geo")
. Теперь я получаю это
GmshException: Gmsh hasn't produced any cells! Check your Gmsh code.
Я попытался создать круговую сетку, которая представляет собой 2D треугольную сетку по кругу (это есть в справке Fipy), но у меня получилось вот что
GmshException: Gmsh hasn't produced any cells! Check your Gmsh code
Python scritp, cylinder.msh, cylinder.geo и Gmsh.exe файлы находятся в той же папке.
Ошибка:
File "C:UsersjpethatiAppDataLocalContinuumanaconda2libsite-packagesfipymeshesgmshMesh.py", line 809, in read
raise GmshException(errStr)
GmshException: Gmsh hasn't produced any cells! Check your Gmsh code.
Вывод Gmsh:
Info : Running 'gmsh c:usersjpethatiappdatalocaltemptmpsw2tzg.geo -3 -nopopup -format msh -o c:usersjpethatiappdatalocaltemptmp6gbww9.msh' [Gmsh 4.2.2, 1 node, max. 1 thread]
Info : Started on Fri Mar 29 10:25:25 2019
Info : Reading 'c:usersjpethatiappdatalocaltemptmpsw2tzg.geo'...
Info : Done reading 'c:usersjpethatiappdatalocaltemptmpsw2tzg.geo'
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:usersjpethatiappdatalocaltemptmp6gbww9.msh'...
Info : Done writing 'c:usersjpethatiappdatalocaltemptmp6gbww9.msh'
Info : Stopped on Fri Mar 29 10:25:25 2019
import fipy as fp
Первая попытка
mesh = fp.Gmsh3D("Cylinder.msh")
Вторая попытка
mesh = fp.Gmsh3D("Cylinder.msh, Cylinder.geo")
Комментарии:
1. Пожалуйста, попробуйте версию 3.0.7 Gmsh или более раннюю: gmsh.info/bin/Windows . Gmsh 4 кое-что изменил для нас, и у нас пока не было времени разобраться в этом.
2. Я не смог найти версию 3.0.7. Я использовал Gmsh версии 3.0.6, 2.5.0, 2.7.0 и 2.11.0, но все они выдали мне одно и то же: GmshException: Gmsh не произвел ни одной ячейки! Проверьте свой Gmsh-код.
3. Извините, я имел в виду, что 3.0.6.
mesh = fp.Gmsh3D("Cylinder.msh, Cylinder.geo")
недопустимый синтаксис. Вы можете попробоватьmesh = fp.Gmsh3D("Cylinder.msh")
илиmesh = fp.Gmsh3D("Cylinder.geo")
.
Ответ №1:
FiPy 3.3 решил некоторые проблемы с Gmsh в Windows. Пожалуйста, обновите и сообщите нам, если у вас все еще возникают проблемы.