1 // Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 #ifndef MEDMEM_ARRAY_CONVERT_HXX
24 #define MEDMEM_ARRAY_CONVERT_HXX
28 template <class T, class CHECKING_POLICY >
29 MEDMEM_Array<T, FullInterlaceGaussPolicy, CHECKING_POLICY> *
31 const MEDMEM_Array< T, NoInterlaceGaussPolicy, CHECKING_POLICY > &array, T* values=0
34 MEDMEM_Array<T,FullInterlaceGaussPolicy,CHECKING_POLICY> * myArray;
36 myArray = new MEDMEM_Array<T,FullInterlaceGaussPolicy,CHECKING_POLICY>
41 array.getNbElemGeoC(),
42 array.getNbGaussGeo(),
46 myArray= new MEDMEM_Array<T,FullInterlaceGaussPolicy,CHECKING_POLICY>
50 array.getNbElemGeoC(),
53 for (int i=1; i <= array.getNbElem() ; i++ )
54 for (int k=1; k<= array.getNbGauss(i); k++ )
55 for (int j=1; j<= array.getDim(); j++ )
56 myArray->setIJK(i,j,k,array.getIJK(i,j,k));
62 template <class T, class CHECKING_POLICY>
63 MEDMEM_Array<T, NoInterlaceGaussPolicy, CHECKING_POLICY> *
65 const MEDMEM_Array< T, FullInterlaceGaussPolicy, CHECKING_POLICY > &array, T* values=0
68 MEDMEM_Array<T,NoInterlaceGaussPolicy,CHECKING_POLICY> * myArray;
70 myArray = new MEDMEM_Array<T, NoInterlaceGaussPolicy,CHECKING_POLICY> (
75 array.getNbElemGeoC(),
76 array.getNbGaussGeo(),
80 myArray = new MEDMEM_Array<T, NoInterlaceGaussPolicy,CHECKING_POLICY> (
84 array.getNbElemGeoC(),
87 for (int i=1; i <= array.getNbElem() ; i++ )
88 for (int k=1; k<= array.getNbGauss(i); k++ )
89 for (int j=1; j<= array.getDim(); j++ )
90 myArray->setIJK(i,j,k,array.getIJK(i,j,k));
96 template <class T, class CHECKING_POLICY>
97 MEDMEM_Array<T, FullInterlaceGaussPolicy, CHECKING_POLICY> *
99 const MEDMEM_Array< T, NoInterlaceByTypeGaussPolicy, CHECKING_POLICY > &array, T* values=0
102 MEDMEM_Array<T,FullInterlaceGaussPolicy,CHECKING_POLICY> * myArray;
104 myArray = new MEDMEM_Array<T, FullInterlaceGaussPolicy,CHECKING_POLICY> (
108 array.getNbGeoType(),
109 array.getNbElemGeoC(),
110 array.getNbGaussGeo(),
114 myArray = new MEDMEM_Array<T, FullInterlaceGaussPolicy,CHECKING_POLICY> (
117 array.getNbGeoType(),
118 array.getNbElemGeoC(),
119 array.getNbGaussGeo()
121 for (int i=1; i <= array.getNbElem() ; i++ )
122 for (int k=1; k<= array.getNbGauss(i); k++ )
123 for (int j=1; j<= array.getDim(); j++ )
124 myArray->setIJK(i,j,k,array.getIJK(i,j,k));
130 template <class T, class CHECKING_POLICY>
131 MEDMEM_Array<T, NoInterlaceGaussPolicy, CHECKING_POLICY> *
133 const MEDMEM_Array< T, NoInterlaceByTypeGaussPolicy, CHECKING_POLICY > &array, T* values=0
136 MEDMEM_Array<T,NoInterlaceGaussPolicy,CHECKING_POLICY> * myArray;
138 myArray = new MEDMEM_Array<T, NoInterlaceGaussPolicy,CHECKING_POLICY> (
142 array.getNbGeoType(),
143 array.getNbElemGeoC(),
144 array.getNbGaussGeo(),
148 myArray = new MEDMEM_Array<T, NoInterlaceGaussPolicy,CHECKING_POLICY> (
151 array.getNbGeoType(),
152 array.getNbElemGeoC(),
153 array.getNbGaussGeo()
155 for (int i=1; i <= array.getNbElem() ; i++ )
156 for (int k=1; k<= array.getNbGauss(i); k++ )
157 for (int j=1; j<= array.getDim(); j++ )
158 myArray->setIJK(i,j,k,array.getIJK(i,j,k));
164 template <class T, class CHECKING_POLICY>
165 MEDMEM_Array<T, NoInterlaceNoGaussPolicy, CHECKING_POLICY> *
167 const MEDMEM_Array< T, FullInterlaceNoGaussPolicy, CHECKING_POLICY > &array, T* values=0
170 MEDMEM_Array<T,NoInterlaceNoGaussPolicy,CHECKING_POLICY> * myArray;
172 myArray=new MEDMEM_Array<T, NoInterlaceNoGaussPolicy, CHECKING_POLICY> ( values,
178 myArray = new MEDMEM_Array<T, NoInterlaceNoGaussPolicy, CHECKING_POLICY> (
182 for (int i=1; i <= array.getNbElem() ; i++ )
183 for (int j=1; j<= array.getDim(); j++ )
184 myArray->setIJ(i,j,array.getIJ(i,j));
190 template <class T, class CHECKING_POLICY>
191 MEDMEM_Array<T, FullInterlaceNoGaussPolicy, CHECKING_POLICY> *
193 const MEDMEM_Array< T, NoInterlaceByTypeNoGaussPolicy, CHECKING_POLICY > &array, T* values=0
196 MEDMEM_Array<T,FullInterlaceNoGaussPolicy,CHECKING_POLICY> * myArray;
198 myArray=new MEDMEM_Array<T, FullInterlaceNoGaussPolicy, CHECKING_POLICY> ( values,
204 myArray = new MEDMEM_Array<T, FullInterlaceNoGaussPolicy, CHECKING_POLICY> (
208 for (int i=1; i <= array.getNbElem() ; i++ )
209 for (int j=1; j<= array.getDim(); j++ )
210 myArray->setIJ(i,j,array.getIJ(i,j));
216 template <class T, class CHECKING_POLICY>
217 MEDMEM_Array<T, NoInterlaceNoGaussPolicy, CHECKING_POLICY> *
219 const MEDMEM_Array< T, NoInterlaceByTypeNoGaussPolicy, CHECKING_POLICY > &array, T* values=0
222 MEDMEM_Array<T,NoInterlaceNoGaussPolicy,CHECKING_POLICY> * myArray;
224 myArray=new MEDMEM_Array<T, NoInterlaceNoGaussPolicy, CHECKING_POLICY> ( values,
230 myArray = new MEDMEM_Array<T, NoInterlaceNoGaussPolicy, CHECKING_POLICY> (
234 for (int i=1; i <= array.getNbElem() ; i++ )
235 for (int j=1; j<= array.getDim(); j++ )
236 myArray->setIJ(i,j,array.getIJ(i,j));
242 template <class T, class CHECKING_POLICY>
243 MEDMEM_Array<T, FullInterlaceNoGaussPolicy, CHECKING_POLICY> *
245 const MEDMEM_Array< T, NoInterlaceNoGaussPolicy, CHECKING_POLICY > &array, T* values=0
248 MEDMEM_Array<T,FullInterlaceNoGaussPolicy,CHECKING_POLICY> * myArray;
250 myArray= new MEDMEM_Array<T, FullInterlaceNoGaussPolicy, CHECKING_POLICY> (values,
256 myArray= new MEDMEM_Array<T, FullInterlaceNoGaussPolicy, CHECKING_POLICY> (
260 for (int i=1; i <= array.getNbElem() ; i++ )
261 for (int j=1; j<= array.getDim(); j++ )
262 myArray->setIJ(i,j,array.getIJ(i,j));
270 // template <class T,class INTERLACING_POLICY,class INTERLACING_POLICY_OTHER,
271 // class CHECKING_POLICY>
272 // void ArrayConvert(
273 // const MEDMEM_Array< T, INTERLACING_POLICY, CHECKING_POLICY > & arrayin,
274 // MEDMEM_Array< T, INTERLACING_POLICY_OTHER, CHECKING_POLICY> * & arrayout
278 // MEDMEM_Array<T,INTERLACING_POLICY_OTHER,CHECKING_POLICY> * myArray;
279 // myArray= new MEDMEM_Array< T, INTERLACING_POLICY_OTHER, CHECKING_POLICY > (
281 // arrayin.getNbElem(),
282 // arrayin.getNbGeoType(),
283 // arrayin.getNbElemGeoC(),
284 // arrayin.getNbGaussGeo()
287 // for (int i=1; i <= arrayin.getNbElem() ; i++ )
288 // for (int k=1; k<= arrayin.getNbGauss(i); k++ )
289 // for (int j=1; j<= arrayin.getDim(); j++ )
290 // myArray->setIJK(i,j,k,arrayin.getIJK(i,j,k));
300 // template <class ARRAY_ELEMENT_TYPE,
301 // class GAUSS_TAG,class CHECKING_POLICY=IndexCheckPolicy>
302 // typename MEDMEM_ArrayInterface<ARRAY_ELEMENT_TYPE,
305 // CHECKING_POLICY>::Array &
306 // convertBis(const typename MEDMEM_ArrayInterface<
307 // ARRAY_ELEMENT_TYPE,
310 // CHECKING_POLICY>::Array & array ) {
311 // std::cout << "-------- Convert 3" << std::endl;