X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=test%2Fbody_fitting_viscous_layer_tpipe.py;fp=test%2Fbody_fitting_viscous_layer_tpipe.py;h=ec2f52a9b7204eb6ca05cb9c5cdc1f62bab78093;hp=0000000000000000000000000000000000000000;hb=58f6f92639b496f4bd2c8439c6fa9538e017ace2;hpb=c9294ee68826be2746e5cc00291a8641731d6e29 diff --git a/test/body_fitting_viscous_layer_tpipe.py b/test/body_fitting_viscous_layer_tpipe.py new file mode 100644 index 000000000..ec2f52a9b --- /dev/null +++ b/test/body_fitting_viscous_layer_tpipe.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python + +import sys +import salome + +salome.salome_init() + +### +### SHAPER component +### + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() + +### Create Part +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() + +### Create Cylinder +Cylinder_1 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 0.5, 5) + +### Create Point +Point_2 = model.addPoint(Part_1_doc, -3, 0, 1.5) + +### Create Cylinder +Cylinder_2 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "PartSet/OX"), 0.3, 3) + +### Create Fuse +Fuse_1 = model.addFuse(Part_1_doc, [model.selection("SOLID", "Cylinder_1_1"), model.selection("SOLID", "Cylinder_2_1")], keepSubResults = True) + +### Create Group +Group_1 = model.addGroup(Part_1_doc, "Faces", [model.selection("FACE", "Cylinder_2_1/Face_3")]) +Group_1.setName("Inlet_x") +Group_1.result().setName("Inlet_x") +Group_1.result().setColor(0, 85, 255) + +### Create Group +Group_2 = model.addGroup(Part_1_doc, "Faces", [model.selection("FACE", "Cylinder_1_1/Face_3")]) +Group_2.setName("Inlet_z") +Group_2.result().setName("Inlet_z") +Group_2.result().setColor(170, 0, 0) + +### Create Group +Group_3 = model.addGroup(Part_1_doc, "Faces", [model.selection("FACE", "Cylinder_1_1/Face_2")]) +Group_3.setName("Outlet") +Group_3.result().setName("Outlet") +Group_3.result().setColor(255, 170, 0) + +### Create Group +Group_4 = model.addGroup(Part_1_doc, "Faces", [model.selection("FACE", "Fuse_1_1/Modified_Face&Cylinder_1_1/Face_1"), model.selection("FACE", "Fuse_1_1/Modified_Face&Cylinder_2_1/Face_1")]) +Group_4.setName("Wall") +Group_4.result().setName("Wall") +Group_4.result().setColor(85, 255, 0) + +### Create Group +Group_5 = model.addGroup(Part_1_doc, "Vertices", [model.selection("VERTEX", "Fuse_1_1/Generated_Vertex&Cylinder_1_1/Face_1")]) +Group_5.setName("corner") +Group_5.result().setName("corner") + +model.end() + +### +### SHAPERSTUDY component +### + +model.publishToShaperStudy() +import SHAPERSTUDY +Fuse_1_1, Inlet_x, Inlet_z, Outlet, Wall, corner, = SHAPERSTUDY.shape(model.featureStringId(Fuse_1)) + +### +### SMESH component +### + +import SMESH, SALOMEDS +from salome.smesh import smeshBuilder + +smesh = smeshBuilder.New() + +Mesh_1 = smesh.Mesh(Fuse_1_1,'Mesh_1') +Cartesian_3D_1 = Mesh_1.BodyFitted() +CartesianParameters3D = Cartesian_3D_1.SetGrid([ [ '0.05' ], [ 0, 1 ]],[ [ '0.05' ], [ 0, 1 ]],[ [ '0.05' ], [ 0, 1 ]],5e+07,1) +CartesianParameters3D.SetToCreateFaces( 1 ) +ViscousLayers_0_05_3 = Cartesian_3D_1.ViscousLayers(0.05,3,1.1,[ Inlet_x, Inlet_z, Outlet ],1,smeshBuilder.SURF_OFFSET_SMOOTH,'Viscous_Layers') + +isDone = Mesh_1.Compute() + +if not isDone: + raise Exception("Mesh_1 not computed") + +# Check volume of mesh +volume_mesh = Mesh_1.GetVolume() +volume_geom = 4.640535669879 + +assert abs(volume_mesh-volume_geom)/volume_geom < 0.005 + +# Check volume of Viscous layer +gr_Viscous_Layers = Mesh_1.GetGroupByName("Viscous_Layers")[0] + +volume_mesh_VL = smesh.GetVolume(gr_Viscous_Layers) +volume_geom_reduced = 3.685108989376 +volume_geom_VL = volume_geom - volume_geom_reduced + +assert abs(volume_mesh_VL-volume_geom_VL)/volume_geom_VL < 0.005 + + + +if salome.sg.hasDesktop(): + salome.sg.updateObjBrowser()