Skip to content

Commit 25ae147

Browse files
authored
Merge pull request #1491 from jessdtate/setdata_fix
fix for SetFieldData tensor mapping
2 parents 7883b6a + f721f54 commit 25ae147

File tree

1 file changed

+13
-42
lines changed

1 file changed

+13
-42
lines changed

src/Core/Algorithms/Legacy/Fields/FieldData/SetFieldData.cc

Lines changed: 13 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,7 @@ bool SetFieldDataAlgo::setvectordata(VField* ofield, DenseMatrixHandle data, siz
282282
else if (((nrows == 1) && (ncols == 3)) || ((ncols == 1) && (nrows == 3)))
283283
{
284284
Vector v;
285-
if ((nrows == 1) && (nrows == 3)) { v[0] = (*data)(0, 0); v[1] = (*data)(0, 1); v[2] = (*data)(0, 2); }
286-
if ((ncols == 1) && (ncols == 3)) { v[0] = (*data)(0, 0); v[1] = (*data)(1, 0); v[2] = (*data)(2, 0); }
285+
v[0] = (*data)(0, 0); v[1] = (*data)(0, 1); v[2] = (*data)(0, 2);
287286
ofield->set_all_values(v);
288287
}
289288
else
@@ -301,86 +300,58 @@ bool SetFieldDataAlgo::settensordata(VField* ofield, DenseMatrixHandle data, siz
301300
/// Handle 6 by n data
302301
if ((ncols == 6) && (nrows == numvals))
303302
{
304-
Vector v[6];
305303
for (VMesh::index_type i = 0; i < numnvals; i++)
306304
{
307-
v[0] = (*data)(i, 0); v[1] = (*data)(i, 1); v[2] = (*data)(i, 2);
308-
v[3] = (*data)(i, 3); v[4] = (*data)(i, 4); v[5] = (*data)(i, 5);
309-
ofield->set_values(v, i);
305+
ofield->set_value(Tensor((*data)(i, 0),(*data)(i, 1),(*data)(i, 2),(*data)(i, 3),(*data)(i, 4),(*data)(i, 5)), i);
310306
}
311307
for (VMesh::index_type i=numnvals; i< numevals+numnvals; i++)
312308
{
313-
v[0]=(* data)(i,0); v[1]=(* data)(i,1); v[2]=(* data)(i,2);
314-
v[3]=(* data)(i,3); v[4]=(* data)(i,4); v[5]=(* data)(i,5);
315-
ofield->set_evalues(v,i);
309+
ofield->set_evalue(Tensor((*data)(i, 0),(*data)(i, 1),(*data)(i, 2),(*data)(i, 3),(*data)(i, 4),(*data)(i, 5)), i);
316310
}
317311
}
318312
else if ((nrows == 6) && (ncols == numvals))
319313
{
320-
Vector v[6];
321314
for (VMesh::index_type i = 0; i < numnvals; i++)
322315
{
323-
v[0] = (*data)(0, i); v[1] = (*data)(1, i); v[2] = (*data)(2, i);
324-
v[3] = (*data)(3, i); v[4] = (*data)(4, i); v[5] = (*data)(5, i);
325-
ofield->set_values(v, i);
316+
ofield->set_value(Tensor((*data)(0,i),(*data)(1,i),(*data)(2,i),(*data)(3,i),(*data)(4,i),(*data)(5,i)), i);
317+
std::cout<<"nodes. vector = "<<(*data)(0,i)<<","<<(*data)(1,i)<<","<<(*data)(2,i)<<","<<(*data)(3,i)<<","<<(*data)(4,i)<<","<<(*data)(5,i)<<std::endl;
326318
}
327319
for (VMesh::index_type i=numnvals; i< numevals+numnvals; i++)
328320
{
329-
v[0]=(* data)(0,i); v[1]=(* data)(1,i); v[2]=(* data)(2,i);
330-
v[3]=(* data)(3,i); v[4]=(* data)(4,i); v[5]=(* data)(5,i);
331-
ofield->set_evalues(v,i);
321+
ofield->set_evalue(Tensor((*data)(0,i),(*data)(1,i),(*data)(2,i),(*data)(3,i),(*data)(4,i),(*data)(5,i)), i);
332322
}
333323
}
334324
else if (((nrows == 1) && (ncols == 6)) || ((ncols == 1) && (nrows == 6)))
335325
{
336-
Vector v;
337-
if ((nrows == 1) && (ncols == 6)) { v[0] = (*data)(0, 0); v[1] = (*data)(0, 1); v[2] = (*data)(0, 2); v[3] = (*data)(0, 3); v[4] = (*data)(0, 4); v[5] = (*data)(0, 5); }
338-
if ((ncols == 1) && (nrows == 6)) { v[0] = (*data)(0, 0); v[1] = (*data)(1, 0); v[2] = (*data)(2, 0); v[3] = (*data)(3, 0); v[4] = (*data)(4, 0); v[5] = (*data)(5, 0); }
339-
ofield->set_all_values(v);
326+
ofield->set_all_values(Tensor((*data)(0, 0),(*data)(0, 1),(*data)(0, 2),(*data)(0, 3),(*data)(0, 4),(*data)(0, 5)));
327+
340328
}
341329
/// Handle 9 by n data
342330
else if ((ncols == 9) && (nrows == numvals))
343331
{
344-
Vector v[9];
345332
for (VMesh::index_type i = 0; i < numnvals; i++)
346333
{
347-
v[0] = (*data)(i, 0); v[1] = (*data)(i, 1); v[2] = (*data)(i, 2);
348-
v[3] = (*data)(i, 3); v[4] = (*data)(i, 4); v[5] = (*data)(i, 5);
349-
v[6] = (*data)(i, 6); v[7] = (*data)(i, 7); v[8] = (*data)(i, 8);
350-
ofield->set_values(v, i);
334+
ofield->set_value(Tensor((*data)(i, 0),(*data)(i, 1),(*data)(i, 2),(*data)(i, 3),(*data)(i, 4),(*data)(i, 8)), i);
351335
}
352336
for (VMesh::index_type i=numnvals; i< numevals+numnvals; i++)
353337
{
354-
v[0]=(* data)(i,0); v[1]=(* data)(i,1); v[2]=(* data)(i,2);
355-
v[3]=(* data)(i,3); v[4]=(* data)(i,4); v[5]=(* data)(i,5);
356-
v[6]=(* data)(i,6); v[7]=(* data)(i,7); v[8]=(* data)(i,8);
357-
ofield->set_evalues(v,i);
338+
ofield->set_evalue(Tensor((*data)(i, 0),(*data)(i, 1),(*data)(i, 2),(*data)(i, 3),(*data)(i, 4),(*data)(i, 8)), i);
358339
}
359340
}
360341
else if ((nrows == 9) && (ncols == numvals))
361342
{
362-
Vector v[9];
363343
for (VMesh::index_type i = 0; i < numnvals; i++)
364344
{
365-
v[0] = (*data)(0, i); v[1] = (*data)(1, i); v[2] = (*data)(2, i);
366-
v[3] = (*data)(3, i); v[4] = (*data)(4, i); v[5] = (*data)(5, i);
367-
v[6] = (*data)(6, i); v[7] = (*data)(7, i); v[8] = (*data)(8, i);
368-
ofield->set_values(v, i);
345+
ofield->set_value(Tensor((*data)(0,i),(*data)(1,i),(*data)(2,i),(*data)(3,i),(*data)(4,i),(*data)(8,i)), i);
369346
}
370347
for (VMesh::index_type i=numnvals; i< numevals+numnvals; i++)
371348
{
372-
v[0]=(* data)(0,i); v[1]=(* data)(1,i); v[2]=(* data)(2,i);
373-
v[3]=(* data)(3,i); v[4]=(* data)(4,i); v[5]=(* data)(5,i);
374-
v[6]=(* data)(6,i); v[7]=(* data)(7,i); v[8]=(* data)(8,i);
375-
ofield->set_evalues(v,i);
349+
ofield->set_evalue(Tensor((*data)(0,i),(*data)(1,i),(*data)(2,i),(*data)(3,i),(*data)(4,i),(*data)(8,i)), i);
376350
}
377351
}
378352
else if (((nrows == 1) && (ncols == 9)) || ((ncols == 1) && (nrows == 9)))
379353
{
380-
Vector v;
381-
if ((nrows == 1) && (ncols == 9)) { v[0] = (*data)(0, 0); v[1] = (*data)(0, 1); v[2] = (*data)(0, 2); v[3] = (*data)(0, 3); v[4] = (*data)(0, 4); v[5] = (*data)(0, 5); }
382-
if ((ncols == 1) && (nrows == 9)) { v[0] = (*data)(0, 0); v[1] = (*data)(1, 0); v[2] = (*data)(2, 0); v[3] = (*data)(3, 0); v[4] = (*data)(4, 0); v[5] = (*data)(5, 0); }
383-
ofield->set_all_values(v);
354+
ofield->set_all_values(Tensor((*data)(0, 0),(*data)(0, 1),(*data)(0, 2),(*data)(0, 3),(*data)(0, 4),(*data)(0, 8)));
384355
}
385356
else
386357
{

0 commit comments

Comments
 (0)