8 _printf0_(
"INTERPFROMMESHTOMESH3D - interpolation from a 3d hexahedron mesh onto a list of point\n");
10 _printf0_(
" This function is a multi-threaded mex file that interpolates a field\n");
11 _printf0_(
" defined on a triangular mesh onto a list of point\n");
14 _printf0_(
" data_prime=InterpFromMeshToMesh3d(index,x,y,z,data,x_prime,y_prime,z_prime,default_value);\n");
16 _printf0_(
" index: index of the mesh where data is defined\n");
17 _printf0_(
" x,y,z: coordinates of the nodes where data is defined\n");
18 _printf0_(
" data: matrix holding the data to be interpolated onto the mesh.\n");
19 _printf0_(
" x_prime,y_prime,z_prime: coordinates of the points onto which we interpolate.\n");
20 _printf0_(
" default_value: default value if no data is found (holes).\n");
21 _printf0_(
" data_prime: vector of mesh interpolated data.\n");
25 _printf0_(
" md.initialization.temperature=InterpFromMeshToMesh3d(index,x,y,z,temperature,md.mesh.x,md.mesh.y,md.mesh.z,253);\n");
31 double* index_data=NULL;
68 #ifdef _HAVE_MATLAB_MODULES_
73 FetchData(&index_data,&index_data_rows,NULL,INDEXHANDLE);
74 FetchData(&x_data,&x_data_rows,NULL,XHANDLE);
75 FetchData(&y_data,&y_data_rows,NULL,YHANDLE);
76 FetchData(&z_data,&z_data_rows,NULL,ZHANDLE);
77 FetchData(&data,&data_rows,&data_cols,DATAHANDLE);
78 FetchData(&x_prime,&x_prime_rows,NULL,XPRIMEHANDLE);
79 FetchData(&y_prime,&y_prime_rows,NULL,YPRIMEHANDLE);
80 FetchData(&z_prime,&z_prime_rows,NULL,ZPRIMEHANDLE);
84 if (x_data_rows!=y_data_rows || x_data_rows!=z_data_rows){
85 _error_(
"vectors x, y and z should have the same length!");
87 if (x_prime_rows!=y_prime_rows || x_prime_rows!=z_prime_rows){
88 _error_(
"vectors x_prime, y_prime and z_prime should have the same length!");
91 nels_data=index_data_rows;
92 nods_data=x_data_rows;
93 nods_prime=x_prime_rows;
96 InterpFromMeshToMesh3dx(&data_prime,index_data,x_data,y_data,z_data,nods_data,nels_data,data,data_rows,x_prime,y_prime,z_prime,nods_prime,default_value);
102 xDelete<double>(index_data);
103 xDelete<double>(x_data);
104 xDelete<double>(y_data);
105 xDelete<double>(z_data);
106 xDelete<double>(data);
107 xDelete<double>(x_prime);
108 xDelete<double>(y_prime);
109 xDelete<double>(z_prime);