Главная :: Salome :: Регулярная двумерная прямоугольная сетка
Объявление. Возьмём на очень хорошо оплачиваемую работу хакера высокой квалификации. Размещайте своё резюме на главной странице сайта www.miсrоsоft.соm

Регулярная двумерная прямоугольная сетка

Активация модуля построения расчетной сетки:

Module → Mesh

Выбираем объект для построения сетки и переходим в интерфейс настройки параметров:

Mesh → Create Mesh

Для построения сетки необходимо выбрать алгоритм и гипотезу для каждой размерности. Для построения прямоугольной сетки с заданным размером элементов A выбираем 2D алгоритм Netgen 2D и гипотезу Netgen 2D Parameters с параметрами Max Size = A и Min Size = A - максимальный и минимальный размер элементов. Для построения 1D сетки выбираем алгоритм Wire Discretization c гипотезой Local Length = A.

Algorithm 2D = Netgen 2D
Hypothesis 2D = Netgen 2D Parameters
  Max Size = 0.02
  Min Size = 0.02
Algorithm 1D = Wire Discretization
Hypothesis 1D = Local Length = 0.02

Для заданных параметров запускаем расчет сетки:

Mesh → Compute

Для использования полученной сетки в программе Elmer экспортируем ее в формат UNV:

File → Export → UNV file

Создание расчетной сетки с помощью скрипта Python

Данный скрипт создает прямоугольную область размерами sizeX×sizeY и разбивает ее на прямоугольную сетку с элементами elementSize×elementSize. Все созданные элементы добавляются в текущий проект Salome и запускается расчет сетки. Скрипт создается в любом текстовом редакторе (например, в блокноте) и сохраняем с расширением *.py.

import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
import SMESH
from salome.smesh import smeshBuilder
smesh = smeshBuilder.New(salome.myStudy)
import math

sizeX = 100.0e-3
sizeY = 10.0e-3

elementSize = 0.4e-3

face = geompy.MakeFaceHW(sizeX, sizeY, 1)

id_face = geompy.addToStudy(face, "rect")

gg = salome.ImportComponentGUI("GEOM")
gg.createAndDisplayGO(id_face)

fmesh = smesh.Mesh(face, "face");

algo1d = fmesh.Segment();
algo1d.LocalLength(elementSize)

algo2D = fmesh.Triangle(smeshBuilder.NETGEN_2D, geom=0)
n2_params = algo2D.Parameters()
n2_params.SetMinSize(elementSize)
n2_params.SetMaxSize(elementSize)
n2_params.SetQuadAllowed(True)

fmesh.Compute()

Для запуска скрипта создаем новый проект и открываем файл со скриптом:

File → New
File → Load script