#python-3.x #fipy
Вопрос:
Я пытаюсь смоделировать элементарную единицу 2D-системы, которая имеет симметрию P6mm в fipy, и я хотел бы определить некартову сетку, описывающую систему, описанную ниже. Еще,
mesh = fipy.Grid2D(nx = 10, ny = 10, dx = 1., dy = 1.)
возвращает только однородные сетки. Я думал об изменении FaceVariable, но, похоже, он принимает только логические переменные. Я мог бы также смоделировать декартову систему, эквивалентную этой, но там были бы данные redondant. У кого-нибудь есть лучший подход?
В качестве альтернативы я мог бы определить свою систему таким образом. Есть ли какие-либо возражения против этого ?
Комментарии:
1. Grid2D-это заводская функция, которая создает либо однородную сетку 2D, либо неоднородную сетку 2D в зависимости от расстояний между сетками. Документация для UniformGrid2D ясно указывает, что она создает прямоугольные сетки, но в другой документации для GridND должно быть ясно , что декартовы сетки всегда создаются.
Ответ №1:
FiPy не предоставляет класс сетки для того, что вам нужно. UniformGrid2D можно использовать в качестве отправной точки для равносторонней треугольной сетки (или шестигранной сетки, если это действительно необходимо). Однако StackOverflow-неподходящее место для этого. Пожалуйста, откройте вопрос, если вы хотите продолжить это.
Gmsh будет создавать структурированные треугольные сетки, но я не уверен, что его можно заставить создавать правильные равносторонние треугольники.
Комментарии:
1. Спасибо. Я добавил проблему на GitHub: github.com/usnistgov/fipy/issues/819