Salome HOME
Merge remote branch 'origin/V7_4_BR'
[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 *convertDataForGodFather(ParaMEDMEM::MEDCouplingDataForGodFather *data, int owner) throw(INTERP_KERNEL::Exception)
107 {
108   if(!data)
109     {
110       Py_XINCREF(Py_None);
111       return Py_None;
112     }
113   if(dynamic_cast<ParaMEDMEM::MEDCouplingAMRAttribute *>(data))
114     {
115       return SWIG_NewPointerObj(reinterpret_cast<void*>(data),SWIGTYPE_p_ParaMEDMEM__MEDCouplingAMRAttribute,owner);
116     }
117   throw INTERP_KERNEL::Exception("convertDataForGodFather wrap : unrecognized data type for AMR !");
118 }
119
120 static PyObject *convertCartesianAMRPatch(ParaMEDMEM::MEDCouplingCartesianAMRPatchGen *patch, int owner) throw(INTERP_KERNEL::Exception)
121 {
122   if(!patch)
123     {
124       Py_XINCREF(Py_None);
125       return Py_None;
126     }
127   if(dynamic_cast<ParaMEDMEM::MEDCouplingCartesianAMRPatchGF *>(patch))
128     {
129       return SWIG_NewPointerObj(reinterpret_cast<void*>(patch),SWIGTYPE_p_ParaMEDMEM__MEDCouplingCartesianAMRPatchGF,owner);
130     }
131   if(dynamic_cast<ParaMEDMEM::MEDCouplingCartesianAMRPatch *>(patch))
132     {
133       return SWIG_NewPointerObj(reinterpret_cast<void*>(patch),SWIGTYPE_p_ParaMEDMEM__MEDCouplingCartesianAMRPatch,owner);
134     }
135   throw INTERP_KERNEL::Exception("convertCartesianAMRPatch wrap : unrecognized type of cartesian AMR patch !");
136 }
137
138 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___add__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
139 {
140   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.";
141   const char msg2[]="in MEDCouplingFieldDouble.__add__ : self field has no Array of values set !";
142   void *argp;
143   //
144   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
145     {
146       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
147       if(other)
148         return (*self)+(*other);
149       else
150         throw INTERP_KERNEL::Exception(msg);
151     }
152   //
153   double val;
154   ParaMEDMEM::DataArrayDouble *a;
155   ParaMEDMEM::DataArrayDoubleTuple *aa;
156   std::vector<double> bb;
157   int sw;
158   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
159   switch(sw)
160     {
161     case 1:
162       {
163         if(!self->getArray())
164           throw INTERP_KERNEL::Exception(msg2);
165         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
166         ret->applyLin(1.,val);
167         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
168         ret2->setArray(ret);
169         return ret2.retn();
170       }
171     case 2:
172       {
173         if(!self->getArray())
174           throw INTERP_KERNEL::Exception(msg2);
175         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Add(self->getArray(),a);
176         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
177         ret2->setArray(ret);
178         return ret2.retn();
179       }
180     case 3:
181       {
182         if(!self->getArray())
183           throw INTERP_KERNEL::Exception(msg2);
184         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
185         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Add(self->getArray(),aaa);
186         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
187         ret2->setArray(ret);
188         return ret2.retn();
189       }
190     case 4:
191       {
192         if(!self->getArray())
193           throw INTERP_KERNEL::Exception(msg2);
194         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
195         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Add(self->getArray(),aaa);
196         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
197         ret2->setArray(ret);
198         return ret2.retn();
199       }
200     default:
201       { throw INTERP_KERNEL::Exception(msg); }
202     }
203 }
204
205 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___radd__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
206 {
207   return ParaMEDMEM_MEDCouplingFieldDouble___add__Impl(self,obj);
208 }
209
210 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___rsub__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
211 {
212   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.";
213   const char msg2[]="in MEDCouplingFieldDouble.__rsub__ : self field has no Array of values set !";
214   void *argp;
215   //
216   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
217     {
218       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
219       if(other)
220         return (*other)-(*self);
221       else
222         throw INTERP_KERNEL::Exception(msg);
223     }
224   //
225   double val;
226   ParaMEDMEM::DataArrayDouble *a;
227   ParaMEDMEM::DataArrayDoubleTuple *aa;
228   std::vector<double> bb;
229   int sw;
230   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
231   switch(sw)
232     {
233     case 1:
234       {
235         if(!self->getArray())
236           throw INTERP_KERNEL::Exception(msg2);
237         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
238         ret->applyLin(-1.,val);
239         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
240         ret2->setArray(ret);
241         return ret2.retn();
242       }
243     case 2:
244       {
245         if(!self->getArray())
246           throw INTERP_KERNEL::Exception(msg2);
247         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Substract(a,self->getArray());
248         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
249         ret2->setArray(ret);
250         return ret2.retn();
251       }
252     case 3:
253       {
254         if(!self->getArray())
255           throw INTERP_KERNEL::Exception(msg2);
256         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
257         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Substract(aaa,self->getArray());
258         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
259         ret2->setArray(ret);
260         return ret2.retn();
261       }
262     case 4:
263       {
264         if(!self->getArray())
265           throw INTERP_KERNEL::Exception(msg2);
266         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
267         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Substract(aaa,self->getArray());
268         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
269         ret2->setArray(ret);
270         return ret2.retn();
271       }
272     default:
273       { throw INTERP_KERNEL::Exception(msg); }
274     }
275 }
276
277 static ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___mul__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
278 {
279   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.";
280   const char msg2[]="in MEDCouplingFieldDouble.__mul__ : self field has no Array of values set !";
281   void *argp;
282   //
283   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
284     {
285       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
286       if(other)
287         return (*self)*(*other);
288       else
289         throw INTERP_KERNEL::Exception(msg);
290     }
291   //
292   double val;
293   ParaMEDMEM::DataArrayDouble *a;
294   ParaMEDMEM::DataArrayDoubleTuple *aa;
295   std::vector<double> bb;
296   int sw;
297   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
298   switch(sw)
299     {
300     case 1:
301       {
302         if(!self->getArray())
303           throw INTERP_KERNEL::Exception(msg2);
304         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
305         ret->applyLin(val,0.);
306         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
307         ret2->setArray(ret);
308         return ret2.retn();
309       }
310     case 2:
311       {
312         if(!self->getArray())
313           throw INTERP_KERNEL::Exception(msg2);
314         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Multiply(self->getArray(),a);
315         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
316         ret2->setArray(ret);
317         return ret2.retn();
318       }
319     case 3:
320       {
321         if(!self->getArray())
322           throw INTERP_KERNEL::Exception(msg2);
323         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
324         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Multiply(self->getArray(),aaa);
325         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
326         ret2->setArray(ret);
327         return ret2.retn();
328       }
329     case 4:
330       {
331         if(!self->getArray())
332           throw INTERP_KERNEL::Exception(msg2);
333         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
334         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Multiply(self->getArray(),aaa);
335         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
336         ret2->setArray(ret);
337         return ret2.retn();
338       }
339     default:
340       { throw INTERP_KERNEL::Exception(msg); }
341     }
342 }
343
344 ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___rmul__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
345 {
346   return ParaMEDMEM_MEDCouplingFieldDouble___mul__Impl(self,obj);
347 }
348
349 ParaMEDMEM::MEDCouplingFieldDouble *ParaMEDMEM_MEDCouplingFieldDouble___rdiv__Impl(ParaMEDMEM::MEDCouplingFieldDouble *self, PyObject *obj) throw(INTERP_KERNEL::Exception)
350 {
351   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.";
352   const char msg2[]="in MEDCouplingFieldDouble.__div__ : self field has no Array of values set !";
353   void *argp;
354   //
355   if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_ParaMEDMEM__MEDCouplingFieldDouble,0|0)))
356     {
357       ParaMEDMEM::MEDCouplingFieldDouble *other=reinterpret_cast< ParaMEDMEM::MEDCouplingFieldDouble * >(argp);
358       if(other)
359         return (*other)/(*self);
360       else
361         throw INTERP_KERNEL::Exception(msg);
362     }
363   //
364   double val;
365   ParaMEDMEM::DataArrayDouble *a;
366   ParaMEDMEM::DataArrayDoubleTuple *aa;
367   std::vector<double> bb;
368   int sw;
369   convertObjToPossibleCpp5(obj,sw,val,a,aa,bb);
370   switch(sw)
371     {
372     case 1:
373       {
374         if(!self->getArray())
375           throw INTERP_KERNEL::Exception(msg2);
376         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=self->getArray()->deepCpy();
377         ret->applyInv(val);
378         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
379         ret2->setArray(ret);
380         return ret2.retn();
381       }
382     case 2:
383       {
384         if(!self->getArray())
385           throw INTERP_KERNEL::Exception(msg2);
386         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Divide(a,self->getArray());
387         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
388         ret2->setArray(ret);
389         return ret2.retn();
390       }
391     case 3:
392       {
393         if(!self->getArray())
394           throw INTERP_KERNEL::Exception(msg2);
395         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
396         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Divide(aaa,self->getArray());
397         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
398         ret2->setArray(ret);
399         return ret2.retn();
400       }
401     case 4:
402       {
403         if(!self->getArray())
404           throw INTERP_KERNEL::Exception(msg2);
405         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> aaa=ParaMEDMEM::DataArrayDouble::New(); aaa->useArray(&bb[0],false,ParaMEDMEM::CPP_DEALLOC,1,(int)bb.size());
406         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::DataArrayDouble> ret=ParaMEDMEM::DataArrayDouble::Divide(aaa,self->getArray());
407         ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr<ParaMEDMEM::MEDCouplingFieldDouble> ret2=self->clone(false);
408         ret2->setArray(ret);
409         return ret2.retn();
410       }
411     default:
412       { throw INTERP_KERNEL::Exception(msg); }
413     }
414 }