Make cartesian grids
Simple Cartesian Grid
To add a simple cartesian grid to the model, the following data are required:
nb X: The number of hexahedra along the X axis
nb Y: The number of hexahedra along the Y axis
nb Z: The number of hexahedra along the Z axis
Make a Simple Cartesian Grid:
elts = doc.makeCartesianTop(nbX, nbY, nbZ)
GUI command: Simple cartesian grid
Uniform Cartesian Grid
To add a uniform cartesian grid to the model, the following data are required:
origin: The vertex of the origin
vec X : The X vector
vec Y : The Y vector
vec Z : The Z vector
len X : The length of an hexahedra on the X axis
len Y : The length of an hexahedra on the Y axis
len Z : The length of an hexahedra on the Z axis
nb X : The number of hexahedra on the X axis
nb Y : The number of hexahedra on the Y axis
nb Z : The number of hexahedra on the Z axis
Make a Uniform Cartesian Grid:
elts = doc.makeCartesianUni(orig, vecX, vecY, vecZ, lenX, lenY, lenZ, nbX, nbY, nbZ)
GUI command: Uniform cartesian grid
Custom Cartesian Grid
To add a custom cartesian grid to the model, the following data are required:
origin: The vertex of the origin
vec X : The X vector
vec Y : The Y vector
vec Z : The Z vector
tx : A list of x coordinates in ascendant order
ty : A list of y coordinates in ascendant order
tz : A list of z coordinates in ascendant order
Make a Custom Cartesian Grid:
elts = doc.makeCartesian(orig, vecX, vecY, vecZ, tx, ty, tz)
GUI command: Custom cartesian grid
Operations on elts: Elements
Example
1# -*- coding: utf-8 -*-
2# Copyright (C) 2009-2026 CEA, EDF
3#
4# This library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8#
9# This library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12# Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public
15# License along with this library; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17#
18# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19#
20
21####### Test Cartesian Grid #################
22
23import hexablock
24
25
26doc = hexablock.addDocument ("Cartesian Grid Test")
27
28# Simple Cartesian Grid
29
30nbX = 3
31nbY = 4
32nbZ = 5
33
34grid0 = doc.makeCartesianTop(nbX, nbY, nbZ)
35grid0.saveVtk("makeCartesianTop.vtk")
36
37# Uniform Cartesian Grid
38
39orig1 = doc.addVertex(10, 0, 0)
40
41vecX = doc.addVector(1, 0, 0)
42vecY = doc.addVector(0, 1, 0)
43vecZ = doc.addVector(0, 0, 1)
44
45lenX = 5
46lenY = 3.5
47lenZ = 2
48
49grid1 = doc.makeCartesianUni(orig1, vecX, vecY, vecZ, lenX, lenY, lenZ, nbX, nbY, nbZ)
50grid1.saveVtk("makeCartesianUni.vtk")
51
52# Custom Cartesian Grid
53
54orig2 = doc.addVertex(20, 0, 0)
55
56tx = [] # a list of x coordinates
57ty = [] # a list of y coordinates
58tz = [] # a list of z coordinates
59for i in range(6):
60 tx.append(i+1)
61 ty.append(i+1)
62 tz.append(i+1)
63# tx=ty=tz=[1,2,3,4,5,6]
64
65grid2 = doc.makeCartesian(orig2, vecX, vecY, vecZ, tx, ty, tz)
66grid2.saveVtk("makeCartesian.vtk")