Changeset 20173
- Timestamp:
- 02/16/16 14:04:57 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
r20172 r20173 22 22 23 23 #process options 24 options=pairoptions( varargin)25 options=options.deleteduplicates(1)24 options=pairoptions(*varargin) 25 #options=deleteduplicates(options,1) 26 26 27 27 #recover parameters: … … 30 30 31 31 #initialize mesh: 32 mesh=mesh 3dsurface()32 mesh=mesh2d() 33 33 34 34 #create .geo file: {{{ 35 fid= fopen('sphere.geo','w')35 fid=open('sphere.geo','w') 36 36 37 f printf(fid,'Mesh.Algorithm = 1\n')37 fid.write('Mesh.Algorithm = 1\n') 38 38 if options.exist('refine'): 39 f printf(fid,'Mesh.Algorithm = 7\n')40 f printf(fid,'Mesh.CharacteristicLengthFromPoints= 0\n')41 f printf(fid,'Mesh.SmoothRatio= 3\n')42 f printf(fid,'Mesh.RemeshAlgorithm= 1\n')43 f printf(fid,'resolution=#g\n',resolution)44 f printf(fid,'radius=#g\n',radius)45 f printf(fid,'Point(1) = [0.0,0.0,0.0,resolution]\n')46 f printf(fid,'Point(2) = [radius,0.0,0.0,resolution]\n')47 f printf(fid,'Point(3) = [0,radius,0.0,resolution]\n')48 f printf(fid,'Circle(1) = [2,1,3]\n')49 f printf(fid,'Point(4) = [-radius,0,0.0,resolution]\n')50 f printf(fid,'Point(5) = [0,-radius,0.0,resolution]\n')51 f printf(fid,'Circle(2) = [3,1,4]\n')52 f printf(fid,'Circle(3) = [4,1,5]\n')53 f printf(fid,'Circle(4) = [5,1,2]\n')54 f printf(fid,'Point(6) = [0,0,-radius,resolution]\n')55 f printf(fid,'Point(7) = [0,0,radius,resolution]\n')56 f printf(fid,'Circle(5) = [3,1,6]\n')57 f printf(fid,'Circle(6) = [6,1,5]\n')58 f printf(fid,'Circle(7) = [5,1,7]\n')59 f printf(fid,'Circle(8) = [7,1,3]\n')60 f printf(fid,'Circle(9) = [2,1,7]\n')61 f printf(fid,'Circle(10) = [7,1,4]\n')62 f printf(fid,'Circle(11) = [4,1,6]\n')63 f printf(fid,'Circle(12) = [6,1,2]\n')64 f printf(fid,'Line Loop(13) = [2,8,-10]\n')65 f printf(fid,'Ruled Surface(14) = [13]\n')66 f printf(fid,'Line Loop(15) = [10,3,7]\n')67 f printf(fid,'Ruled Surface(16) = [15]\n')68 f printf(fid,'Line Loop(17) = [-8,-9,1]\n')69 f printf(fid,'Ruled Surface(18) = [17]\n')70 f printf(fid,'Line Loop(19) = [-11,-2,5]\n')71 f printf(fid,'Ruled Surface(20) = [19]\n')72 f printf(fid,'Line Loop(21) = [-5,-12,-1]\n')73 f printf(fid,'Ruled Surface(22) = [21]\n')74 f printf(fid,'Line Loop(23) = [-3,11,6]\n')75 f printf(fid,'Ruled Surface(24) = [23]\n')76 f printf(fid,'Line Loop(25) = [-7,4,9]\n')77 f printf(fid,'Ruled Surface(26) = [25]\n')78 f printf(fid,'Line Loop(27) = [-4,12,-6]\n')79 f printf(fid,'Ruled Surface(28) = [27]\n')80 f printf(fid,'Surface Loop(29) = [28,26,16,14,20,24,22,18]\n')81 f printf(fid,'Volume(30) = [29]\n')82 f printf(fid,'Physical Surface(1) = [28,26,16,14,20,24,22,18]\n')83 f printf(fid,'Physical Volume(2) = 30\n')84 f close(fid)39 fid.write('Mesh.Algorithm = 7\n') 40 fid.write('Mesh.CharacteristicLengthFromPoints= 0\n') 41 fid.write('Mesh.SmoothRatio= 3\n') 42 fid.write('Mesh.RemeshAlgorithm= 1\n') 43 fid.write('resolution=#g\n',resolution) 44 fid.write('radius=#g\n',radius) 45 fid.write('Point(1) = [0.0,0.0,0.0,resolution]\n') 46 fid.write('Point(2) = [radius,0.0,0.0,resolution]\n') 47 fid.write('Point(3) = [0,radius,0.0,resolution]\n') 48 fid.write('Circle(1) = [2,1,3]\n') 49 fid.write('Point(4) = [-radius,0,0.0,resolution]\n') 50 fid.write('Point(5) = [0,-radius,0.0,resolution]\n') 51 fid.write('Circle(2) = [3,1,4]\n') 52 fid.write('Circle(3) = [4,1,5]\n') 53 fid.write('Circle(4) = [5,1,2]\n') 54 fid.write('Point(6) = [0,0,-radius,resolution]\n') 55 fid.write('Point(7) = [0,0,radius,resolution]\n') 56 fid.write('Circle(5) = [3,1,6]\n') 57 fid.write('Circle(6) = [6,1,5]\n') 58 fid.write('Circle(7) = [5,1,7]\n') 59 fid.write('Circle(8) = [7,1,3]\n') 60 fid.write('Circle(9) = [2,1,7]\n') 61 fid.write('Circle(10) = [7,1,4]\n') 62 fid.write('Circle(11) = [4,1,6]\n') 63 fid.write('Circle(12) = [6,1,2]\n') 64 fid.write('Line Loop(13) = [2,8,-10]\n') 65 fid.write('Ruled Surface(14) = [13]\n') 66 fid.write('Line Loop(15) = [10,3,7]\n') 67 fid.write('Ruled Surface(16) = [15]\n') 68 fid.write('Line Loop(17) = [-8,-9,1]\n') 69 fid.write('Ruled Surface(18) = [17]\n') 70 fid.write('Line Loop(19) = [-11,-2,5]\n') 71 fid.write('Ruled Surface(20) = [19]\n') 72 fid.write('Line Loop(21) = [-5,-12,-1]\n') 73 fid.write('Ruled Surface(22) = [21]\n') 74 fid.write('Line Loop(23) = [-3,11,6]\n') 75 fid.write('Ruled Surface(24) = [23]\n') 76 fid.write('Line Loop(25) = [-7,4,9]\n') 77 fid.write('Ruled Surface(26) = [25]\n') 78 fid.write('Line Loop(27) = [-4,12,-6]\n') 79 fid.write('Ruled Surface(28) = [27]\n') 80 fid.write('Surface Loop(29) = [28,26,16,14,20,24,22,18]\n') 81 fid.write('Volume(30) = [29]\n') 82 fid.write('Physical Surface(1) = [28,26,16,14,20,24,22,18]\n') 83 fid.write('Physical Volume(2) = 30\n') 84 fid.close() 85 85 #}}} 86 86 … … 90 90 91 91 #create .pos file with existing mesh and refining metric: {{{ 92 fid= fopen('sphere.pos','w')92 fid=open('sphere.pos','w') 93 93 94 f printf(fid,'View "background mesh" [\n')94 fid.write('View "background mesh" [\n') 95 95 for i in range(meshini.numberofelements): 96 f printf(fid,'ST(#g,#g,#g,#g,#g,#g,#g,#g,#g)[#g,#g,#g]\n',\96 fid.write('ST(#g,#g,#g,#g,#g,#g,#g,#g,#g)[#g,#g,#g]\n',\ 97 97 meshini.x(meshini.elements(i,0)), meshini.y(meshini.elements(i,0)), meshini.z(meshini.elements(i,0)),\ 98 98 meshini.x(meshini.elements(i,1)), meshini.y(meshini.elements(i,1)), meshini.z(meshini.elements(i,1)),\ … … 100 100 metric(meshini.elements(i,0)), metric(meshini.elements(i,1)), metric(meshini.elements(i,2))\ 101 101 ) 102 f printf(fid,']\n')102 fid.write(']\n') 103 103 104 f close(fid)104 fid.close() 105 105 # }}} 106 106 … … 113 113 114 114 #import mesh: {{{ 115 fid= fopen('sphere.msh','r')115 fid=open('sphere.msh','r') 116 116 117 117 #Get Mesh format … … 150 150 if not strcmp(A,'$EndElements'): 151 151 raise RuntimeError(['Expecting $EndElements (', A, ')']) 152 f close(fid)152 fid.close() 153 153 #}}} 154 154
Note:
See TracChangeset
for help on using the changeset viewer.