Я сгенерировал gm sh me sh, который импортировал в FiPy через Gmsh2D. Я хотел бы обратиться к поверхности Faces для установки граничных условий, но я не знал, как это сделать.
В примерах FiPy, которые я нашел в документации, предлагается назвать определенные строки, чтобы обратиться к ним позже. Как мне сделать это после того, как я импортировал me sh в fipy?
// note: if you do not use any labels, all Cells will be included.
Physical Surface("Outer") = {1};
Physical Surface("Middle") = {2};
Physical Surface("Inner") = {3};
// label the "north-west" part of the exterior boundary
// note: you only need to label the Face elements
// (Physical Line in 2D and Physical Surface in 3D) that correspond
// to boundaries you are interested in. FiPy does not need them to
// construct the Mesh.
Physical Line("NW") = {5};
-----------------
Редактировать :
Для простых поверхностей это будет работать: я пропустил mesh.exteriorFaces
. Для простого круга это приводит к простому решению:
xfc, yfc = mesh.faceCenters() # returns x faceCenters coordinate, ...
xcc, ycc = mesh.cellCenters()
plot(xfc[where(mesh.exteriorFaces == False)],yfc[where(mesh.exteriorFaces == False)],'ro', label='inside')
plot(xfc[where(mesh.exteriorFaces == True)],yfc[where(mesh.exteriorFaces == True)],'ko', label='surface')
legend()
IdentifiedSurfaceCells
Тем не менее я все еще ищу ответ о том, как получить доступ к gm sh код извне, но, возможно, это поможет другим:)