Salome HOME
0a50f88f8b69bb9fb4a9eb80db49cb071b13b468
[tools/medcoupling.git] / src / MEDCoupling_Swig / MEDCouplingTypemaps.i
1 // Copyright (C) 2007-2014  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 // Author : Anthony Geay (CEA/DEN)
20
21 #include "MEDCouplingDataArrayTypemaps.i"
22
23 static PyObject *convertMesh(ParaMEDMEM::MEDCouplingMesh *mesh, int owner) throw(INTERP_KERNEL::Exception)
24 {
25   PyObject *ret=0;
26   if(!mesh)
27     {
28       Py_XINCREF(Py_None);
29       return Py_None;
30     }
31   if(dynamic_cast<ParaMEDMEM::MEDCouplingUMesh *>(mesh))
32     ret=SWIG_NewPointerObj((void*)mesh,SWIGTYPE_p_ParaMEDMEM__MEDCouplingUMesh,owner);
33   if(dynamic_cast<ParaMEDMEM::MEDCoupling1SGTUMesh *>(mesh))
34     ret=SWIG_NewPointerObj((void*)mesh,SWIGTYPE_p_ParaMEDMEM__MEDCoupling1SGTUMesh,owner);
35   if(dynamic_cast<ParaMEDMEM::MEDCoupling1DGTUMesh *>(mesh))
36     ret=SWIG_NewPointerObj((void*)mesh,SWIGTYPE_p_ParaMEDMEM__MEDCoupling1DGTUMesh,owner);
37   if(dynamic_cast<ParaMEDMEM::MEDCouplingExtrudedMesh *>(mesh))
38     ret=SWIG_NewPointerObj((void*)mesh,SWIGTYPE_p_ParaMEDMEM__MEDCouplingExtrudedMesh,owner);
39   if(dynamic_cast<ParaMEDMEM::MEDCouplingCMesh *>(mesh))
40     ret=SWIG_NewPointerObj((void*)mesh,SWIGTYPE_p_ParaMEDMEM__MEDCouplingCMesh,owner);
41   if(dynamic_cast<ParaMEDMEM::MEDCouplingCurveLinearMesh *>(mesh))
42     ret=SWIG_NewPointerObj((void*)mesh,SWIGTYPE_p_ParaMEDMEM__MEDCouplingCurveLinearMesh,owner);
43   if(dynamic_cast<ParaMEDMEM::MEDCouplingIMesh *>(mesh))
44     ret=SWIG_NewPointerObj((void*)mesh,SWIGTYPE_p_ParaMEDMEM__MEDCouplingIMesh,owner);
45   if(!ret)
46     throw INTERP_KERNEL::Exception("Not recognized type of mesh on downcast !");
47   return ret;
48 }
49
50 static PyObject *convertFieldDiscretization(ParaMEDMEM::MEDCouplingFieldDiscretization *fd, int owner) throw(INTERP_KERNEL::Exception)
51 {
52   PyObject *ret=0;
53   if(!fd)
54     {
55       Py_XINCREF(Py_None);
56       return Py_None;
57     }
58   if(dynamic_cast<ParaMEDMEM::MEDCouplingFieldDiscretizationP0 *>(fd))
59     ret=SWIG_NewPointerObj(reinterpret_cast<void*>(fd),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDiscretizationP0,owner);
60   if(dynamic_cast<ParaMEDMEM::MEDCouplingFieldDiscretizationP1 *>(fd))
61     ret=SWIG_NewPointerObj(reinterpret_cast<void*>(fd),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDiscretizationP1,owner);
62   if(dynamic_cast<ParaMEDMEM::MEDCouplingFieldDiscretizationGauss *>(fd))
63     ret=SWIG_NewPointerObj(reinterpret_cast<void*>(fd),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDiscretizationGauss,owner);
64   if(dynamic_cast<ParaMEDMEM::MEDCouplingFieldDiscretizationGaussNE *>(fd))
65     ret=SWIG_NewPointerObj(reinterpret_cast<void*>(fd),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDiscretizationGaussNE,owner);
66   if(dynamic_cast<ParaMEDMEM::MEDCouplingFieldDiscretizationKriging *>(fd))
67     ret=SWIG_NewPointerObj(reinterpret_cast<void*>(fd),SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDiscretizationKriging,owner);
68   if(!ret)
69     throw INTERP_KERNEL::Exception("Not recognized type of field discretization on downcast !");
70   return ret;
71 }
72
73 static PyObject* convertMultiFields(ParaMEDMEM::MEDCouplingMultiFields *mfs, int owner) throw(INTERP_KERNEL::Exception)
74 {
75   PyObject *ret=0;
76   if(!mfs)
77     {
78       Py_XINCREF(Py_None);
79       return Py_None;
80     }
81   if(dynamic_cast<ParaMEDMEM::MEDCouplingFieldOverTime *>(mfs))
82     ret=SWIG_NewPointerObj((void*)mfs,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldOverTime,owner);
83   else
84     ret=SWIG_NewPointerObj((void*)mfs,SWIGTYPE_p_ParaMEDMEM__MEDCouplingMultiFields,owner);
85   return ret;
86 }
87
88 static PyObject *convertCartesianAMRMesh(ParaMEDMEM::MEDCouplingCartesianAMRMeshGen *mesh, int owner) throw(INTERP_KERNEL::Exception)
89 {
90   if(!mesh)
91     {
92       Py_XINCREF(Py_None);
93       return Py_None;
94     }
95   if(dynamic_cast<ParaMEDMEM::MEDCouplingCartesianAMRMeshSub *>(mesh))
96     {
97       return SWIG_NewPointerObj(reinterpret_cast<void*>(mesh),SWIGTYPE_p_ParaMEDMEM__MEDCouplingCartesianAMRMeshSub,owner);
98     }
99   if(dynamic_cast<ParaMEDMEM::MEDCouplingCartesianAMRMesh *>(mesh))
100     {
101       return SWIG_NewPointerObj(reinterpret_cast<void*>(mesh),SWIGTYPE_p_ParaMEDMEM__MEDCouplingCartesianAMRMesh,owner);
102     }
103   throw INTERP_KERNEL::Exception("convertCartesianAMRMesh wrap : unrecognized type of cartesian AMR mesh !");
104 }
105
106 static PyObject *convertCartesianAMRPatch(ParaMEDMEM::MEDCouplingCartesianAMRPatchGen *patch, int owner) throw(INTERP_KERNEL::Exception)
107 {
108   if(!patch)
109     {
110       Py_XINCREF(Py_None);
111       return Py_None;
112     }
113   if(dynamic_cast<ParaMEDMEM::MEDCouplingCartesianAMRPatchGF *>(patch))
114     {
115       return SWIG_NewPointerObj(reinterpret_cast<void*>(patch),SWIGTYPE_p_ParaMEDMEM__MEDCouplingCartesianAMRPatchGF,owner);
116     }
117   if(dynamic_cast<ParaMEDMEM::MEDCouplingCartesianAMRPatch *>(patch))
118     {
119       return SWIG_NewPointerObj(reinterpret_cast<void*>(patch),SWIGTYPE_p_ParaMEDMEM__MEDCouplingCartesianAMRPatch,owner);
120     }
121   throw INTERP_KERNEL::Exception("convertCartesianAMRPatch wrap : unrecognized type of cartesian AMR patch !");
122 }
123
124 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___add__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
125 {
126   const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__add__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
127   const char msg2[]="in MEDCouplingFieldDouble.__add__ : self field has no Array of values set !";
128   void *argp;
129   //
130   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
131     {
132       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
133       if(other)
134         return (*self)+(*other);
135       else
136         throw INTERP_KERNEL::Exception(msg);
137     }
138   //
139   double val;
140   ParaMEDMEM::DataArrayDouble *a;
141   ParaMEDMEM::DataArrayDoubleTuple *aa;
142   std::vector<double> bb;
143   int sw;
144   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
145   switch(sw)
146     {
147     case 1:
148       {
149         if(!self->getArray())
150           throw INTERP_KERNEL::Exception(msg2);
151         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
152         ret->applyLin(1.,val);
153         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
154         ret2->setArray(ret);
155         return ret2.retn();
156       }
157     case 2:
158       {
159         if(!self->getArray())
160           throw INTERP_KERNEL::Exception(msg2);
161         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Add(self->getArray(),a);
162         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
163         ret2->setArray(ret);
164         return ret2.retn();
165       }
166     case 3:
167       {
168         if(!self->getArray())
169           throw INTERP_KERNEL::Exception(msg2);
170         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
171         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Add(self->getArray(),aaa);
172         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
173         ret2->setArray(ret);
174         return ret2.retn();
175       }
176     case 4:
177       {
178         if(!self->getArray())
179           throw INTERP_KERNEL::Exception(msg2);
180         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
181         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Add(self->getArray(),aaa);
182         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
183         ret2->setArray(ret);
184         return ret2.retn();
185       }
186     default:
187       { throw INTERP_KERNEL::Exception(msg); }
188     }
189 }
190
191 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___radd__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
192 {
193   return ParaMEDMEM_MEDCouplingFieldDouble___add__Impl(self,obj);
194 }
195
196 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___rsub__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
197 {
198   const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__rsub__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
199   const char msg2[]="in MEDCouplingFieldDouble.__rsub__ : self field has no Array of values set !";
200   void *argp;
201   //
202   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
203     {
204       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
205       if(other)
206         return (*other)-(*self);
207       else
208         throw INTERP_KERNEL::Exception(msg);
209     }
210   //
211   double val;
212   ParaMEDMEM::DataArrayDouble *a;
213   ParaMEDMEM::DataArrayDoubleTuple *aa;
214   std::vector<double> bb;
215   int sw;
216   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
217   switch(sw)
218     {
219     case 1:
220       {
221         if(!self->getArray())
222           throw INTERP_KERNEL::Exception(msg2);
223         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
224         ret->applyLin(-1.,val);
225         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
226         ret2->setArray(ret);
227         return ret2.retn();
228       }
229     case 2:
230       {
231         if(!self->getArray())
232           throw INTERP_KERNEL::Exception(msg2);
233         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Substract(a,self->getArray());
234         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
235         ret2->setArray(ret);
236         return ret2.retn();
237       }
238     case 3:
239       {
240         if(!self->getArray())
241           throw INTERP_KERNEL::Exception(msg2);
242         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
243         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Substract(aaa,self->getArray());
244         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
245         ret2->setArray(ret);
246         return ret2.retn();
247       }
248     case 4:
249       {
250         if(!self->getArray())
251           throw INTERP_KERNEL::Exception(msg2);
252         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
253         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Substract(aaa,self->getArray());
254         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
255         ret2->setArray(ret);
256         return ret2.retn();
257       }
258     default:
259       { throw INTERP_KERNEL::Exception(msg); }
260     }
261 }
262
263 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___mul__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
264 {
265   const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__mul__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
266   const char msg2[]="in MEDCouplingFieldDouble.__mul__ : self field has no Array of values set !";
267   void *argp;
268   //
269   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
270     {
271       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
272       if(other)
273         return (*self)*(*other);
274       else
275         throw INTERP_KERNEL::Exception(msg);
276     }
277   //
278   double val;
279   ParaMEDMEM::DataArrayDouble *a;
280   ParaMEDMEM::DataArrayDoubleTuple *aa;
281   std::vector<double> bb;
282   int sw;
283   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
284   switch(sw)
285     {
286     case 1:
287       {
288         if(!self->getArray())
289           throw INTERP_KERNEL::Exception(msg2);
290         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
291         ret->applyLin(val,0.);
292         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
293         ret2->setArray(ret);
294         return ret2.retn();
295       }
296     case 2:
297       {
298         if(!self->getArray())
299           throw INTERP_KERNEL::Exception(msg2);
300         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Multiply(self->getArray(),a);
301         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
302         ret2->setArray(ret);
303         return ret2.retn();
304       }
305     case 3:
306       {
307         if(!self->getArray())
308           throw INTERP_KERNEL::Exception(msg2);
309         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
310         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Multiply(self->getArray(),aaa);
311         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
312         ret2->setArray(ret);
313         return ret2.retn();
314       }
315     case 4:
316       {
317         if(!self->getArray())
318           throw INTERP_KERNEL::Exception(msg2);
319         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
320         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Multiply(self->getArray(),aaa);
321         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
322         ret2->setArray(ret);
323         return ret2.retn();
324       }
325     default:
326       { throw INTERP_KERNEL::Exception(msg); }
327     }
328 }
329
330 ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___rmul__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
331 {
332   return ParaMEDMEM_MEDCouplingFieldDouble___mul__Impl(self,obj);
333 }
334
335 ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___rdiv__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
336 {
337   const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__rdiv__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
338   const char msg2[]="in MEDCouplingFieldDouble.__div__ : self field has no Array of values set !";
339   void *argp;
340   //
341   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
342     {
343       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
344       if(other)
345         return (*other)/(*self);
346       else
347         throw INTERP_KERNEL::Exception(msg);
348     }
349   //
350   double val;
351   ParaMEDMEM::DataArrayDouble *a;
352   ParaMEDMEM::DataArrayDoubleTuple *aa;
353   std::vector<double> bb;
354   int sw;
355   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
356   switch(sw)
357     {
358     case 1:
359       {
360         if(!self->getArray())
361           throw INTERP_KERNEL::Exception(msg2);
362         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
363         ret->applyInv(val);
364         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
365         ret2->setArray(ret);
366         return ret2.retn();
367       }
368     case 2:
369       {
370         if(!self->getArray())
371           throw INTERP_KERNEL::Exception(msg2);
372         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Divide(a,self->getArray());
373         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
374         ret2->setArray(ret);
375         return ret2.retn();
376       }
377     case 3:
378       {
379         if(!self->getArray())
380           throw INTERP_KERNEL::Exception(msg2);
381         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
382         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Divide(aaa,self->getArray());
383         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
384         ret2->setArray(ret);
385         return ret2.retn();
386       }
387     case 4:
388       {
389         if(!self->getArray())
390           throw INTERP_KERNEL::Exception(msg2);
391         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
392         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Divide(aaa,self->getArray());
393         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
394         ret2->setArray(ret);
395         return ret2.retn();
396       }
397     default:
398       { throw INTERP_KERNEL::Exception(msg); }
399     }
400 }