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")