Salome HOME
71f4227afc392498253f08b068cbaaf5f23a2dc4
[modules/med.git] / src / MEDOP / tut / medcoupling / test-paravis.py
1 import CORBA
2 import PARAVIS_Gen_idl
3 import SALOME_ContainerManager_idl
4
5 from SALOME_NamingServicePy import SALOME_NamingServicePy_i
6
7 from MEDCouplingCorba import *
8
9 def createALocalMesh():
10     targetCoords=[ 0., 0., 0., 50., 0., 0. , 200., 0., 0.  , 0., 50., 0., 50., 50., 0. , 200., 50., 0.,   0., 200., 0., 50., 200., 0. , 200., 200., 0. ,
11                        0., 0., 50., 50., 0., 50. , 200., 0., 50.  , 0., 50., 50., 50., 50., 50. , 200., 50., 50.,   0., 200., 50., 50., 200., 50. , 200., 200., 50. ,
12                        0., 0., 200., 50., 0., 200. , 200., 0., 200.  , 0., 50., 200., 50., 50., 200. , 200., 50., 200.,   0., 200., 200., 50., 200., 200. , 200., 200., 200. ];
13     targetConn=[0,1,4,3,9,10,13,12, 1,2,5,4,10,11,14,13, 3,4,7,6,12,13,16,15, 4,5,8,7,13,14,17,16,
14                 9,10,13,12,18,19,22,21, 10,11,14,13,19,20,23,22, 12,13,16,15,21,22,25,24, 13,14,17,16,22,23,26,25];
15     targetMesh=MEDCouplingUMesh.New();
16     targetMesh.setMeshDimension(3);
17     targetMesh.setName("MyMesh3D");
18     targetMesh.setDescription("build3DMesh");
19     targetMesh.allocateCells(12);
20     for i in xrange(8):
21         targetMesh.insertNextCell(NORM_HEXA8,8,targetConn[8*i:8*(i+1)]);
22         pass
23     targetMesh.finishInsertingCells();
24     myCoords=DataArrayDouble.New();
25     myCoords.setValues(targetCoords,27,3);
26     targetMesh.setCoords(myCoords)
27     myCoords.setName("check in case")
28     return targetMesh;
29
30 def createALocalField1():
31     m=createALocalMesh()
32     field=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
33     field.setMesh(m)
34     da=DataArrayDouble.New()
35     da.setValues([1.,11.,101.,1001., 2.,12.,102.,1002., 3.,13.,103.,1003., 4.,14.,104.,1004., 5.,15.,105.,1005., 6.,16.,106.,1006., 7.,17.,107.,1007., 8.,18.,108.,1008.,],8,4)
36     field.setArray(da)
37     field.setName("vitoo")
38     field.setTime(4.5,3,4)
39     return field
40
41 def createALocalField2():
42     m=createALocalMesh()
43     field=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME)
44     field.setMesh(m)
45     da=DataArrayDouble.New()
46     da.setValues([float(3*i) for i in xrange(27)],27,1)
47     field.setArray(da)
48     field.setName("vitooNode")
49     field.setTime(4.7,9,14)
50     return field
51
52 def createALocalMultiField3():
53     fName="FieldOverTimeCorba"
54     m=createALocalMesh()
55     nbOfFields=100
56     fs=nbOfFields*[None]
57     for i in xrange(nbOfFields):
58         fs[i]=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
59         fs[i].setMesh(m)
60         da=DataArrayDouble.New()
61         da.setValues([0.,1.,2.+i,3.,4.,5.,7.],8,1)
62         fs[i].setArray(da)
63         fs[i].setName(fName)
64         fs[i].setTime(1.2+i,9,14)
65         pass
66     ret=MEDCouplingFieldOverTime.New(fs);
67     return ret
68
69 def createALocalCMesh4():
70     mesh=MEDCouplingCMesh.New();
71     coordsX=DataArrayDouble.New();
72     arrX=[ -1., 1., 2., 4. ]
73     coordsX.setValues(arrX,4,1);
74     coordsY=DataArrayDouble.New();
75     arrY=[ -2., 4., 8. ]
76     coordsY.setValues(arrY,3,1);
77     coordsZ=DataArrayDouble.New();
78     arrZ=[ -3., 3., 6., 12., 17. ]
79     coordsZ.setValues(arrZ,5,1);
80     mesh.setCoords(coordsX,coordsY,coordsZ);
81     mesh.setName("CMeshSample")
82     return mesh
83
84 def createALocalField5():
85     m=createALocalCMesh4()
86     field=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
87     field.setMesh(m)
88     da=DataArrayDouble.New()
89     field.setTime(14.5,0,0)
90     da.setValues([float(7*i) for i in xrange(24)],24,1)
91     field.setName("MeshOnCMesh");
92     field.setArray(da)
93     return field;
94     
95
96 ######
97
98 orb = CORBA.ORB_init([], CORBA.ORB_ID)
99 poa=orb.resolve_initial_references("RootPOA");
100 mgr=poa._get_the_POAManager();
101 mgr.activate();
102
103 ###### Searching for 
104
105 naming_service = SALOME_NamingServicePy_i(orb)
106 rp=SALOME_ContainerManager_idl._0_Engines.ResourceParameters("","","",["PARAVIS"],1,10,10,1,1,"first",[])
107 cp=SALOME_ContainerManager_idl._0_Engines.ContainerParameters("","get","",1,False,"",rp)
108 sm=naming_service.Resolve("/ContainerManager")
109 cont=sm.GiveContainer(cp)
110 paraviz=naming_service.Resolve("/Containers/%s/FactoryServer/PARAVIS_inst_1"%(cont.getHostName()))
111
112 ######
113
114 meshCorba=MEDCouplingUMeshServant._this(createALocalMesh())
115 ior=orb.object_to_string(meshCorba)
116 print "mesh : ",ior
117
118 f1=MEDCouplingFieldDoubleServant._this(createALocalField1())
119 ior2=orb.object_to_string(f1)
120 print "Field on cell ",ior2
121
122 f2=MEDCouplingFieldDoubleServant._this(createALocalField2())
123 ior3=orb.object_to_string(f2)
124 print "Field on node ",ior3
125
126 fs3=MEDCouplingFieldOverTimeServant._this(createALocalMultiField3())
127 fs3.Register()
128 ior4=orb.object_to_string(fs3)
129 print "Fields over time ",ior4
130
131 m2=MEDCouplingCMeshServant._this(createALocalCMesh4())
132 ior5=orb.object_to_string(m2)
133 print "CMesh 2 : ",ior5
134
135 f5=MEDCouplingFieldDoubleServant._this(createALocalField5())
136 ior6=orb.object_to_string(f5)
137 print "Field on cell CMesh ",ior6
138
139 script="""
140 src1 = ParaMEDCorbaPluginSource()
141 src1.IORCorba = '%s'
142 asc=GetAnimationScene()
143 rw=GetRenderView()
144 dr=Show()\ndr.Visibility = 1
145 """
146
147 content=script%(ior4)
148 paraviz.ExecuteScript(content)