diff --git a/benchmarks/python/auto_periodic_physical.py b/benchmarks/python/auto_periodic_physical.py new file mode 100755 index 0000000000000000000000000000000000000000..a20d8e6d70fa85dce159d7637a50ac76524ff12c --- /dev/null +++ b/benchmarks/python/auto_periodic_physical.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +from gmshpy import * +import numpy as np + +GmshSetOption('Mesh', 'CharacteristicLengthFactor', 10.) +GmshSetOption('Mesh', 'Algorithm', 1.0) +GmshSetOption('Mesh', 'Algorithm3D',4.0) + +myModel = GModel() + +R = np.pi + +myModel.addBlock([-R,-R,-R],[R,R,R]) +myModel.addSphere(0,0,0,R/4) +myModel.addBlock([-R,-R,R],[R,R,2*R]) +myModel.addBlock([-R,-R,2*R],[R,R,4*R]) +myModel.addBlock([-R,-R,4*R],[R,R,8*R]) +myModel.addBlock([-R,-R,8*R],[R,R,12*R]) +myModel.addBlock([-R,-R,-2*R],[R,R,-R]) + +### connect, geomanalyse with salome partition splitter +myModel.salomeconnect() + +### auto copy mesh from faces translated of a vector given vector T +### arg1: translation vector from master to slave +myModel.setPeriodicAllFaces([0.,2*R,0.]) +myModel.setPeriodicAllFaces([2*R,0,0.]) + +### assign Physical number to entities in a box with setPhysicalNumToEntitiesInBox +### arg1: (O:vertex, 1:edge, 2:face, 3:volume) +### arg2: physical number you want +### arg3: bounding box (2 diagonal corners) +myModel.setPhysicalNumToEntitiesInBox(2,11,[-R-R/4,-R-R/4,-2*R-R/4],[R+R/4,-R+R/4,12*R+R/4]) +myModel.setPhysicalNumToEntitiesInBox(2,12,[-R-R/4,R-R/4,-2*R-R/4],[R+R/4,R+R/4,12*R+R/4]) +myModel.setPhysicalNumToEntitiesInBox(2,21,[-R-R/4,-R-R/4,-2*R-R/4],[-R+R/4,R+R/4,12*R+R/4]) +myModel.setPhysicalNumToEntitiesInBox(2,22,[R-R/4,-R-R/4,-2*R-R/4],[R+R/4,R+R/4,12*R+R/4]) + +print myModel.noPhysicalGroups() + +myModel.mesh(2) + +myModel.setAsCurrent() +myModel.setVisibility(1) +FlGui.instance() +FlGui.run() +FlGui.close() +