mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 09:20:34 +05:00
0023591: [EDF] Add test to check meshing plug-ins to SMESH module
This commit is contained in:
parent
54ac9a308a
commit
646d8ac2aa
@ -34,7 +34,7 @@ SALOME_INSTALL_SCRIPTS("${EXAMPLES_TESTS}" ${SALOME_INSTALL_DOC}/examples/SMESH)
|
|||||||
# Application tests
|
# Application tests
|
||||||
|
|
||||||
SET(TEST_INSTALL_DIRECTORY ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test)
|
SET(TEST_INSTALL_DIRECTORY ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test)
|
||||||
INSTALL(FILES ${GOOD_TESTS} DESTINATION ${TEST_INSTALL_DIRECTORY})
|
INSTALL(FILES ${GOOD_TESTS} ${BAD_TESTS} DESTINATION ${TEST_INSTALL_DIRECTORY})
|
||||||
|
|
||||||
INSTALL(FILES CTestTestfileInstall.cmake
|
INSTALL(FILES CTestTestfileInstall.cmake
|
||||||
DESTINATION ${TEST_INSTALL_DIRECTORY}
|
DESTINATION ${TEST_INSTALL_DIRECTORY}
|
||||||
|
@ -46,13 +46,13 @@ import MEDLoader, os
|
|||||||
# exported mesh is in 2D space because it is a planar mesh lying
|
# exported mesh is in 2D space because it is a planar mesh lying
|
||||||
# on XOY plane, and autoDimension=True by default
|
# on XOY plane, and autoDimension=True by default
|
||||||
mesh2D.ExportMED( medFile )
|
mesh2D.ExportMED( medFile )
|
||||||
medMesh = MEDLoader.MEDLoader.ReadUMeshFromFile(medFile,mesh2D.GetName(),0)
|
medMesh = MEDLoader.ReadUMeshFromFile(medFile,mesh2D.GetName(),0)
|
||||||
print("autoDimension==True, exported mesh is in %sD"%medMesh.getSpaceDimension())
|
print("autoDimension==True, exported mesh is in %sD"%medMesh.getSpaceDimension())
|
||||||
|
|
||||||
# exported mesh is in 3D space, same as in Mesh module,
|
# exported mesh is in 3D space, same as in Mesh module,
|
||||||
# thanks to autoDimension=False
|
# thanks to autoDimension=False
|
||||||
mesh2D.ExportMED( medFile, autoDimension=False )
|
mesh2D.ExportMED( medFile, autoDimension=False )
|
||||||
medMesh = MEDLoader.MEDLoader.ReadUMeshFromFile(medFile,mesh2D.GetName(),0)
|
medMesh = MEDLoader.ReadUMeshFromFile(medFile,mesh2D.GetName(),0)
|
||||||
print("autoDimension==False, exported mesh is in %sD"%medMesh.getSpaceDimension())
|
print("autoDimension==False, exported mesh is in %sD"%medMesh.getSpaceDimension())
|
||||||
|
|
||||||
os.remove( medFile )
|
os.remove( medFile )
|
||||||
|
206
doc/salome/examples/test_smeshplugins.py
Normal file
206
doc/salome/examples/test_smeshplugins.py
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
Test000
|
||||||
|
Checks the availability of the external plugins :
|
||||||
|
1 NETGENPLUGIN
|
||||||
|
2 GMSHPLUGIN
|
||||||
|
3 MG-CADSURF (BLSURFPLUGIN)
|
||||||
|
4 MG-TETRA (GHS3DPLUGIN)
|
||||||
|
5 MG-HEXA (HEXOTICPLUGIN)
|
||||||
|
6 MG-HYBRID (HYBRIDPLUGIN)
|
||||||
|
7 MG-TETRA-PARALLELE (GHS3DPRLPLUGIN)
|
||||||
|
Copyright EDF R&D 2017
|
||||||
|
"""
|
||||||
|
__revision__ = "V1.0"
|
||||||
|
#
|
||||||
|
# Computation of the meshes: T/F
|
||||||
|
ComputeMeshes = True
|
||||||
|
|
||||||
|
import salome
|
||||||
|
|
||||||
|
salome.salome_init()
|
||||||
|
theStudy = salome.myStudy
|
||||||
|
#
|
||||||
|
import iparameters
|
||||||
|
IPAR = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
|
||||||
|
|
||||||
|
# fill list AP_MODULES_LIST
|
||||||
|
IPAR.append("AP_MODULES_LIST", "Geometry")
|
||||||
|
IPAR.append("AP_MODULES_LIST", "Mesh")
|
||||||
|
|
||||||
|
ERROR = 0
|
||||||
|
MESSAGE = ""
|
||||||
|
#
|
||||||
|
while not ERROR :
|
||||||
|
|
||||||
|
###
|
||||||
|
### A. GEOM component
|
||||||
|
###
|
||||||
|
import GEOM
|
||||||
|
from salome.geom import geomBuilder
|
||||||
|
geompy = geomBuilder.New()
|
||||||
|
O = geompy.MakeVertex(0, 0, 0, "0")
|
||||||
|
OX = geompy.MakeVectorDXDYDZ(1, 0, 0, "OX")
|
||||||
|
OY = geompy.MakeVectorDXDYDZ(0, 1, 0, "OY")
|
||||||
|
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1, "OZ")
|
||||||
|
BOX = geompy.MakeBoxDXDYDZ(200, 200, 200, "BOX")
|
||||||
|
|
||||||
|
###
|
||||||
|
### B. SMESH component
|
||||||
|
###
|
||||||
|
|
||||||
|
import SMESH
|
||||||
|
from salome.smesh import smeshBuilder
|
||||||
|
|
||||||
|
smesh = smeshBuilder.New()
|
||||||
|
|
||||||
|
# B.1. NETGEN
|
||||||
|
TEXTE = "NETGEN_1D2D3D"
|
||||||
|
MESH_1 = smesh.Mesh(BOX)
|
||||||
|
smesh.SetName(MESH_1.GetMesh(), "M_"+TEXTE)
|
||||||
|
try :
|
||||||
|
NETGEN_2D3D = MESH_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D)
|
||||||
|
except :
|
||||||
|
MESSAGE += "\nImpossible d'utiliser "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
if ComputeMeshes :
|
||||||
|
smesh.SetName(NETGEN_2D3D.GetAlgorithm(), TEXTE)
|
||||||
|
OK_COMPUTE = MESH_1.Compute()
|
||||||
|
if not OK_COMPUTE :
|
||||||
|
MESSAGE += "\nErreur avec "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
print(TEXTE+": OK")
|
||||||
|
|
||||||
|
# B.2. Gmsh
|
||||||
|
TEXTE = "Gmsh"
|
||||||
|
MESH_2 = smesh.Mesh(BOX)
|
||||||
|
smesh.SetName(MESH_2.GetMesh(), "M_"+TEXTE)
|
||||||
|
try :
|
||||||
|
GMSH = MESH_2.Tetrahedron(algo=smeshBuilder.GMSH)
|
||||||
|
except :
|
||||||
|
MESSAGE += "\nImpossible d'utiliser "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
if ComputeMeshes :
|
||||||
|
smesh.SetName(GMSH.GetAlgorithm(), TEXTE)
|
||||||
|
OK_COMPUTE = MESH_2.Compute()
|
||||||
|
if not OK_COMPUTE :
|
||||||
|
MESSAGE += "\nErreur avec "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
print(TEXTE+": OK")
|
||||||
|
|
||||||
|
# B.3. MG_CADSurf
|
||||||
|
TEXTE = "MG_CADSurf"
|
||||||
|
MESH_3 = smesh.Mesh(BOX)
|
||||||
|
smesh.SetName(MESH_3.GetMesh(), "M_"+TEXTE)
|
||||||
|
try :
|
||||||
|
MG_CADSurf = MESH_3.Triangle(algo=smeshBuilder.MG_CADSurf)
|
||||||
|
except :
|
||||||
|
MESSAGE += "\nImpossible d'utiliser "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
# On arrete tout en cas de problème car les suivants en dépendent
|
||||||
|
break
|
||||||
|
else :
|
||||||
|
if ComputeMeshes :
|
||||||
|
smesh.SetName(MG_CADSurf.GetAlgorithm(), TEXTE)
|
||||||
|
OK_COMPUTE = MESH_3.Compute()
|
||||||
|
if not OK_COMPUTE :
|
||||||
|
MESSAGE += "\nErreur avec "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
print(TEXTE+": OK")
|
||||||
|
|
||||||
|
# B.4. MG_Tetra
|
||||||
|
TEXTE = "MG_Tetra"
|
||||||
|
MESH_4 = smesh.Mesh(BOX)
|
||||||
|
smesh.SetName(MESH_4.GetMesh(), "M_"+TEXTE)
|
||||||
|
MG_CADSurf_Te = MESH_4.Triangle(algo=smeshBuilder.MG_CADSurf)
|
||||||
|
try :
|
||||||
|
MG_Tetra = MESH_4.Tetrahedron(algo=smeshBuilder.MG_Tetra)
|
||||||
|
except :
|
||||||
|
MESSAGE += "\nImpossible d'utiliser "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
if ComputeMeshes :
|
||||||
|
smesh.SetName(MG_Tetra.GetAlgorithm(), TEXTE)
|
||||||
|
OK_COMPUTE = MESH_4.Compute()
|
||||||
|
if not OK_COMPUTE :
|
||||||
|
MESSAGE += "\nErreur avec "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
print(TEXTE+": OK")
|
||||||
|
|
||||||
|
# B.5. MG_Hexa
|
||||||
|
TEXTE = "MG_Hexa"
|
||||||
|
MESH_5 = smesh.Mesh(BOX)
|
||||||
|
smesh.SetName(MESH_5.GetMesh(), "M_"+TEXTE)
|
||||||
|
MG_CADSurf_He = MESH_5.Triangle(algo=smeshBuilder.MG_CADSurf)
|
||||||
|
try :
|
||||||
|
MG_Hexa = MESH_5.Hexahedron(algo=smeshBuilder.MG_Hexa)
|
||||||
|
except :
|
||||||
|
MESSAGE += "\nImpossible d'utiliser "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
if ComputeMeshes :
|
||||||
|
smesh.SetName(MG_Hexa.GetAlgorithm(), TEXTE)
|
||||||
|
OK_COMPUTE = MESH_5.Compute()
|
||||||
|
if not OK_COMPUTE :
|
||||||
|
MESSAGE += "\nErreur avec "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
print(TEXTE+": OK")
|
||||||
|
|
||||||
|
# B.6. MG_Hybrid
|
||||||
|
TEXTE = "MG_Hybrid"
|
||||||
|
MESH_6 = smesh.Mesh(BOX)
|
||||||
|
smesh.SetName(MESH_6.GetMesh(), "M_"+TEXTE)
|
||||||
|
MG_CADSurf_Hy = MESH_6.Triangle(algo=smeshBuilder.MG_CADSurf)
|
||||||
|
try :
|
||||||
|
MG_Hybrid = MESH_6.Tetrahedron(algo=smeshBuilder.HYBRID)
|
||||||
|
except :
|
||||||
|
MESSAGE += "\nImpossible d'utiliser "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
if ComputeMeshes :
|
||||||
|
smesh.SetName(MG_Hybrid.GetAlgorithm(), TEXTE)
|
||||||
|
OK_COMPUTE = MESH_6.Compute()
|
||||||
|
if not OK_COMPUTE :
|
||||||
|
MESSAGE += "\nErreur avec "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
print(TEXTE+": OK")
|
||||||
|
|
||||||
|
# B.7. MG_Tetra_Parallel
|
||||||
|
TEXTE = "MG_Tetra_Parallel"
|
||||||
|
MESH_7 = smesh.Mesh(BOX)
|
||||||
|
smesh.SetName(MESH_7.GetMesh(), "M_"+TEXTE)
|
||||||
|
MG_CADSurf_Tp = MESH_7.Triangle(algo=smeshBuilder.MG_CADSurf)
|
||||||
|
try :
|
||||||
|
MG_Tetra_Parallel = MESH_7.Tetrahedron(algo=smeshBuilder.MG_Tetra_Parallel)
|
||||||
|
except :
|
||||||
|
MESSAGE += "\nImpossible d'utiliser "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
if ComputeMeshes :
|
||||||
|
smesh.SetName(MG_Tetra_Parallel.GetAlgorithm(), TEXTE)
|
||||||
|
OK_COMPUTE = MESH_7.Compute()
|
||||||
|
if not OK_COMPUTE :
|
||||||
|
MESSAGE += "\nErreur avec "+TEXTE
|
||||||
|
ERROR += 1
|
||||||
|
else :
|
||||||
|
print(TEXTE+": OK")
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
###
|
||||||
|
### C. End
|
||||||
|
###
|
||||||
|
if ERROR :
|
||||||
|
raise Exception("\n\nNombre d'erreurs : %d" % ERROR + MESSAGE + "\n")
|
||||||
|
else :
|
||||||
|
print("\nAucun problème\n")
|
||||||
|
|
@ -43,6 +43,7 @@ SET(BAD_TESTS
|
|||||||
quality_controls_ex22.py
|
quality_controls_ex22.py
|
||||||
viewing_meshes_ex01.py
|
viewing_meshes_ex01.py
|
||||||
radial_prism_3d_algo.py
|
radial_prism_3d_algo.py
|
||||||
|
test_smeshplugins.py
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(GOOD_TESTS
|
SET(GOOD_TESTS
|
||||||
|
Loading…
Reference in New Issue
Block a user