Раздел OpenFOAM:
Я создал сетку для формы полого цилиндра в OpenFOAM с помощью метода обрезки кромок / а>. В этой модели поток будет течь от внешней стенки цилиндра к внутренней стенке цилиндра; Закон правой руки используется для точек сетки, как показано ниже: Я попытался построить нормали граней с помощью OpenFOAM, скомпилированного paraFoam, но не смог. Можно построить грани граничной сетки (которые находятся на верхней, нижней, внутренней и внешней стенках цилиндра) с помощью нормалей глифов, но не на внутренних гранях сетки.
Q OpenFOAM: Есть ли код функции или способ построить их внутри paraFoam?
Файл сетки был экспортирован для построения внутри Python, как показано на правом верхнем рисунке. Таким образом, очевидно, что грани сетки на плоскости перекрытия Start-End имеют противоположные направления по сравнению с нормалями других вращающихся граней.
Q OpenFOAM: Это нормальное направление приводит к неправильным результатам? или результаты контролируются только правилом правой руки? Есть ли какой-нибудь код или способ изменить эти направления, если это необходимо?
Примечание. Я импортировал этот файл сетки в python FiPy с помощью Gmsh3D и использовал его faceNormals и cellCenters для построения нормалей граней с помощью matplotlib.
Раздел FiPy:
Я изменил направление нормали граней сетки Start-End по часовой стрелке на против часовой стрелки с помощью следующего кода из-за того, что мне нужно использовать направление faceNormals против часовой стрелки:
for i in range(self.mesh.numberOfCells):
for f in self.mesh.cellFaceIDs.data.T[i]:
if self.mesh.faceCenters().T[f][0] > 0 > self.mesh.faceNormals.T[f][1] and self.mesh.faceCenters().T[f][1] == 0:
self.mesh.faceNormals.T[f] = np.multiply(np.array([-1, -1, 1]), self.mesh.faceNormals.T[f])
Q FiPy: Влияют ли эти изменения направления нормали на результаты решения FiPy? Как я понял из недавнего объяснения (я не мог задать этот вопрос там, дуэт не имеет достаточного кворума репутации), FiPy рассматривает лицевую сторону ячейкиНормальное направление общей стороны наружу к соответствующей соседней ячейке, а направления faceNormal (которые показаны на картинке с использованием FiPy mesh.FaceNormals) не влияют на решение, сами; Это означает, что решатель может рассматривать его в противоположных направлениях в зависимости от обстоятельств. Это правильно?? Существуют ли какие-либо модули сетки FiPy для создания такой системы сеток цилиндрического типа O'grid, в которой могут быть доступны координаты x, y и z узлов? Я пробовал CylindricalGrid2D для радиальной сетки, но он дает только координаты r и z узлов.