# -*- coding: iso-8859-1 -*-

###
### This file is generated automatically by SALOME v7.2.0 with dump python functionality
###

import sys
import salome

salome.salome_init()
theStudy = salome.myStudy

import salome_notebook
notebook = salome_notebook.NoteBook(theStudy)
sys.path.insert( 0, r'/local00/home/ZG16E21N/TESTS/RB_Convection/RB/MESH')

###
### GEOM component
###

import GEOM
from salome.geom import geomBuilder
import math
import SALOMEDS


geompy = geomBuilder.New(theStudy)

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Cavity = geompy.MakeBoxDXDYDZ(8, 0.01, 1)
[Face_1,Face_2,Face_3,Face_4,Face_5,Face_6] = geompy.ExtractShapes(Cavity, geompy.ShapeType["FACE"], True)
[Edge_1,Edge_2,Edge_3,Edge_4,Edge_5,Edge_6,Edge_7,Edge_8,Edge_9,Edge_10,Edge_11,Edge_12] = geompy.ExtractShapes(Cavity, geompy.ShapeType["EDGE"], True)
listSubShapeIDs = geompy.SubShapeAllIDs(Cavity, geompy.ShapeType["FACE"])
Periodic = geompy.CreateGroup(Cavity, geompy.ShapeType["FACE"])
geompy.UnionIDs(Periodic, [3, 13])
Front_back = geompy.CreateGroup(Cavity, geompy.ShapeType["FACE"])
geompy.UnionIDs(Front_back, [23, 27])
Top = geompy.CreateGroup(Cavity, geompy.ShapeType["FACE"])
geompy.UnionIDs(Top, [33])
Bottom = geompy.CreateGroup(Cavity, geompy.ShapeType["FACE"])
geompy.UnionIDs(Bottom, [31])
X_edges = geompy.CreateGroup(Cavity, geompy.ShapeType["EDGE"])
geompy.UnionIDs(X_edges, [25, 26, 29, 30])
Z_edges = geompy.CreateGroup(Cavity, geompy.ShapeType["EDGE"])
geompy.UnionIDs(Z_edges, [5, 10, 15, 20])
Y_edges = geompy.CreateGroup(Cavity, geompy.ShapeType["EDGE"])
geompy.UnionIDs(Y_edges, [12, 8, 22, 18])
geompy.addToStudy( O, 'O' )
geompy.addToStudy( OX, 'OX' )
geompy.addToStudy( OY, 'OY' )
geompy.addToStudy( OZ, 'OZ' )
geompy.addToStudy( Cavity, 'Cavity' )
geompy.addToStudyInFather( Cavity, Face_1, 'Face_1' )
geompy.addToStudyInFather( Cavity, Face_2, 'Face_2' )
geompy.addToStudyInFather( Cavity, Face_3, 'Face_3' )
geompy.addToStudyInFather( Cavity, Face_4, 'Face_4' )
geompy.addToStudyInFather( Cavity, Face_5, 'Face_5' )
geompy.addToStudyInFather( Cavity, Face_6, 'Face_6' )
geompy.addToStudyInFather( Cavity, Edge_1, 'Edge_1' )
geompy.addToStudyInFather( Cavity, Edge_2, 'Edge_2' )
geompy.addToStudyInFather( Cavity, Edge_3, 'Edge_3' )
geompy.addToStudyInFather( Cavity, Edge_4, 'Edge_4' )
geompy.addToStudyInFather( Cavity, Edge_5, 'Edge_5' )
geompy.addToStudyInFather( Cavity, Edge_6, 'Edge_6' )
geompy.addToStudyInFather( Cavity, Edge_7, 'Edge_7' )
geompy.addToStudyInFather( Cavity, Edge_8, 'Edge_8' )
geompy.addToStudyInFather( Cavity, Edge_9, 'Edge_9' )
geompy.addToStudyInFather( Cavity, Edge_10, 'Edge_10' )
geompy.addToStudyInFather( Cavity, Edge_11, 'Edge_11' )
geompy.addToStudyInFather( Cavity, Edge_12, 'Edge_12' )
geompy.addToStudyInFather( Cavity, Periodic, 'Periodic' )
geompy.addToStudyInFather( Cavity, Front_back, 'Front_back' )
geompy.addToStudyInFather( Cavity, Top, 'Top' )
geompy.addToStudyInFather( Cavity, Bottom, 'Bottom' )
geompy.addToStudyInFather( Cavity, X_edges, 'X_edges' )
geompy.addToStudyInFather( Cavity, Z_edges, 'Z_edges' )
geompy.addToStudyInFather( Cavity, Y_edges, 'Y_edges' )

###
### SMESH component
###

import  SMESH, SALOMEDS
from salome.smesh import smeshBuilder

smesh = smeshBuilder.New(theStudy)
from salome.StdMeshers import StdMeshersBuilder
Cavity_mesh = smesh.Mesh(Cavity)
Quadrangle_2D = Cavity_mesh.Quadrangle(algo=smeshBuilder.QUADRANGLE)
Hexa_3D = Cavity_mesh.Hexahedron(algo=smeshBuilder.Hexa)
Regular_1D = Cavity_mesh.Segment(geom=X_edges)
X_discretisation = Regular_1D.NumberOfSegments(800)
X_discretisation.SetDistrType( 0 )
Regular_1D_1 = Cavity_mesh.Segment(geom=Y_edges)
Y_discretisation = Regular_1D_1.NumberOfSegments(1)
Y_discretisation.SetDistrType( 0 )
Regular_1D_2 = Cavity_mesh.Segment(geom=Z_edges)
Z_discretisation = Regular_1D_2.NumberOfSegments(100)
Z_discretisation.SetDistrType( 0 )
isDone = Cavity_mesh.Compute()
Periodic_1 = Cavity_mesh.GroupOnGeom(Periodic,'Periodic',SMESH.FACE)
Front_back_1 = Cavity_mesh.GroupOnGeom(Front_back,'Front_back',SMESH.FACE)
Front_back_1.SetColor( SALOMEDS.Color( 0.666667, 0, 0 ))
Top_1 = Cavity_mesh.GroupOnGeom(Top,'Top',SMESH.FACE)
Top_1.SetColor( SALOMEDS.Color( 0, 0.333333, 0 ))
Bottom_1 = Cavity_mesh.GroupOnGeom(Bottom,'Bottom',SMESH.FACE)
Bottom_1.SetColor( SALOMEDS.Color( 0.666667, 0.333333, 0 ))
Periodic_1.SetColor( SALOMEDS.Color( 1, 0.666667, 0 ))
smesh.SetName(Cavity_mesh, 'Cavity_mesh')
Cavity_mesh.ExportMED( r'/local00/home/ZG16E21N/TESTS/RB_Convection/RB/MESH/Cavity_mesh.med', 0, SMESH.MED_V2_2, 1 )
X_mesh = Regular_1D.GetSubMesh()
Y_mesh = Regular_1D_1.GetSubMesh()
Z_mesh = Regular_1D_2.GetSubMesh()

## set object names
smesh.SetName(Cavity_mesh.GetMesh(), 'Cavity_mesh')
smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D')
smesh.SetName(Hexa_3D.GetAlgorithm(), 'Hexa_3D')
smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D')
smesh.SetName(X_discretisation, 'X_discretisation')
smesh.SetName(Y_discretisation, 'Y_discretisation')
smesh.SetName(Z_discretisation, 'Z_discretisation')
smesh.SetName(Periodic_1, 'Periodic')
smesh.SetName(Front_back_1, 'Front_back')
smesh.SetName(Top_1, 'Top')
smesh.SetName(Bottom_1, 'Bottom')
smesh.SetName(X_mesh, 'X_mesh')
smesh.SetName(Y_mesh, 'Y_mesh')
smesh.SetName(Z_mesh, 'Z_mesh')

if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser(1)
