CFD-GO / TCLB

TCLB - Templated MPI+CUDA/CPU Lattice Boltzmann code
https://tclb.io
GNU General Public License v3.0
177 stars 70 forks source link

Inconsistency between RunR export and VTK #470

Open shkodm opened 8 months ago

shkodm commented 8 months ago

In VTK export we have , when assigning numerical values for the BOUNDARY export:

for (size_t i=0;i<size;i++) {
    small[i] = (NodeType[i] & it.flag) >> it.shift;
}

So the minimum value would be 0.

Meawhile in cbRunR.cpp we have also for BOUNDARY:

for (size_t i=0;i<size;i++) {
    small[i] = 1 + ((NodeType[i] & it.flag) >> it.shift);
}

So it will start from 1.

This is not a bug I think, just inconsistent behaviour, not sure what to do with this. Occurred to me when passing BOUNDARY values from R to Python and trying to filter by numerical value (which was off by 1, because I was using the value I remember from VTK export).

Not critical, just wanted to document somewhere.

llaniewski commented 8 months ago

@shkodm R has indexing from 1, so there is no way around this for the factor representation in R. But I could easily add an additional class to the array, make the r_to_py convertion for it convert it to numpy array of integers and subtract 1.