#!/usr/bin/env python

###
### This file is generated automatically by SALOME v9.15.0 with dump python functionality
###

import sys
import salome

salome.salome_init()
import salome_notebook
notebook = salome_notebook.NoteBook()
sys.path.insert(0, r'/home/franco/Downloads/dummyFiles')

###
### GEOM component
###

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


geompy = geomBuilder.New()

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Cylinder_1 = geompy.MakeCylinderRH(100, 600)
geompy.TranslateDXDYDZ(Cylinder_1, 0, 0, -300)
Sphere_1 = geompy.MakeSphereR(50)
Sphere_2 = geompy.MakeSphereR(150)
Cut_1 = geompy.MakeCutList(Cylinder_1, [Sphere_1], True)
sphere = geompy.CreateGroup(Cut_1, geompy.ShapeType["FACE"])
geompy.UnionIDs(sphere, [15])
Group_1 = geompy.CreateGroup(Cut_1, geompy.ShapeType["FACE"])
geompy.UnionIDs(Group_1, [3])
[sphere, Group_1] = geompy.GetExistingSubObjects(Cut_1, False)
geompy.addToStudy( O, 'O' )
geompy.addToStudy( OX, 'OX' )
geompy.addToStudy( OY, 'OY' )
geompy.addToStudy( OZ, 'OZ' )
geompy.addToStudy( Cylinder_1, 'Cylinder_1' )
geompy.addToStudy( Sphere_1, 'Sphere_1' )
geompy.addToStudy( Sphere_2, 'Sphere_2' )
geompy.addToStudy( Cut_1, 'Cut_1' )
geompy.addToStudyInFather( Cut_1, sphere, 'sphere' )
geompy.addToStudyInFather( Cut_1, Group_1, 'Group_1' )

###
### SMESH component
###

import  SMESH, SALOMEDS
from salome.smesh import smeshBuilder

smesh = smeshBuilder.New()
#smesh.SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations:
                                 # multiples meshes built in parallel, complex and numerous mesh edition (performance)

Mesh_1 = smesh.Mesh(Cut_1,'Mesh_1')
NETGEN_1D_2D_3D = Mesh_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D)
NETGEN_3D_Parameters_1 = NETGEN_1D_2D_3D.Parameters()
NETGEN_3D_Parameters_1.SetMaxSize( 66.3325 )
NETGEN_3D_Parameters_1.SetMinSize( 1.41616 )
NETGEN_3D_Parameters_1.SetSecondOrder( 0 )
NETGEN_3D_Parameters_1.SetOptimize( 1 )
NETGEN_3D_Parameters_1.SetFineness( 2 )
NETGEN_3D_Parameters_1.SetChordalError( -1 )
NETGEN_3D_Parameters_1.SetChordalErrorEnabled( 0 )
NETGEN_3D_Parameters_1.SetUseSurfaceCurvature( 1 )
NETGEN_3D_Parameters_1.SetFuseEdges( 1 )
NETGEN_3D_Parameters_1.SetQuadAllowed( 0 )
NETGEN_3D_Parameters_1.SetLocalSizeOnShape(Sphere_2, 10)
NETGEN_3D_Parameters_1.SetCheckChartBoundary( 3 )
Viscous_Layers_1 = NETGEN_1D_2D_3D.ViscousLayers(1,1,1,[ 15 ],0,smeshBuilder.SURF_OFFSET_SMOOTH,'Viscous Layers')
Viscous_Layers_2 = NETGEN_1D_2D_3D.ViscousLayers(1,1,1,[ 3 ],1,smeshBuilder.SURF_OFFSET_SMOOTH,'Viscous Layers')
sphere_1 = Mesh_1.GroupOnGeom(sphere,'sphere',SMESH.FACE)
Group_1_1 = Mesh_1.GroupOnGeom(Group_1,'Group_1',SMESH.FACE)
[ sphere_1, Group_1_1 ] = Mesh_1.GetGroups()
Viscous_Layers = Mesh_1.GetGroups()[ 2 ]
[ sphere_1, Group_1_1, Viscous_Layers ] = Mesh_1.GetGroups()
Viscous_Layers_2.SetTotalThickness( 10 )
Viscous_Layers_2.SetNumberLayers( 1 )
Viscous_Layers_2.SetStretchFactor( 1 )
Viscous_Layers_2.SetMethod( smeshBuilder.SURF_OFFSET_SMOOTH )
Viscous_Layers_2.SetFaces( [ 15 ], 0 )
Viscous_Layers_1.SetTotalThickness( 10 )
Viscous_Layers_1.SetNumberLayers( 1 )
Viscous_Layers_1.SetStretchFactor( 1 )
Viscous_Layers_1.SetMethod( smeshBuilder.SURF_OFFSET_SMOOTH )
Viscous_Layers_1.SetFaces( [ 3 ], 0 )
isDone = Mesh_1.Compute()
Mesh_1.CheckCompute()
[ sphere_1, Group_1_1, Viscous_Layers ] = Mesh_1.GetGroups()


## Set names of Mesh objects
smesh.SetName(Viscous_Layers, 'Viscous Layers')
smesh.SetName(Viscous_Layers_1, 'Viscous Layers_1')
smesh.SetName(Mesh_1.GetMesh(), 'Mesh_1')
smesh.SetName(Viscous_Layers_2, 'Viscous Layers_2')
smesh.SetName(sphere_1, 'sphere')
smesh.SetName(NETGEN_3D_Parameters_1, 'NETGEN 3D Parameters_1')
smesh.SetName(Group_1_1, 'Group_1')
smesh.SetName(NETGEN_1D_2D_3D.GetAlgorithm(), 'NETGEN 1D-2D-3D')


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