Changing T typedef to float - generalExternalFlow

Hi all,

I am getting a compiling error when trying to change typedef to float. I tried to look in the cited file on myself but everything seems to be correct.


/scratch2/drodriguez/palabos-v1.5r0/src/latticeBoltzmann/geometricOperationTemplates.h: In function \u2018plb::Array<T, 3ul> plb::getRotatedPosition(const plb::Array<T, 3ul>&, const plb::Array<T, 3ul>&, const plb::Array<T, 3ul>&, const plb::Array<T, 3ul>&) [with T = float]\u2019:
generalExternalFlow_v6.cpp:1061:   instantiated from here
/scratch2/drodriguez/palabos-v1.5r0/src/latticeBoltzmann/geometricOperationTemplates.h:723: error: no match for \u2018operator*\u2019 in \u2018sqrt(((double)(normSqrOldR / normSqrNewR))) * newR\u2019
In file included from /scratch2/drodriguez/palabos-v1.5r0/src/offLattice/headers3D.hh:48,
                 from /scratch2/drodriguez/palabos-v1.5r0/src/palabos3D.hh:39,
                 from generalExternalFlow_v6.cpp:67:

/scratch2/drodriguez/palabos-v1.5r0/src/offLattice/immersedWalls3D.hh:999: error: no match for \u2018operator*\u2019 in \u2018((((double)((plb::RecomputeImmersedForce3D<float, plb::descriptors::D3Q19Descriptor, SurfaceNormalFunction>*)this)->plb::RecomputeImmersedForce3D<float, plb::descriptors::D3Q19Descriptor, SurfaceNormalFunction>::omega) * 5.0e-1) - 1.0e+0) * averagePi_n\u2019
generalExternalFlow_v6.cpp:1630:   instantiated from here
/scratch2/drodriguez/palabos-v1.5r0/src/offLattice/immersedWalls3D.hh:1002: error: no match for \u2018operator*\u2019 in \u2018(((double)plb::DefaultRoundOffPolicy<T>::invRho [with T = float](averageRhoBar)) * ((((double)((plb::RecomputeImmersedForce3D<float, plb::descriptors::D3Q19Descriptor, SurfaceNormalFunction>*)this)->plb::RecomputeImmersedForce3D<float, plb::descriptors::D3Q19Descriptor, SurfaceNormalFunction>::omega) * 5.0e-1) - 1.0e+0)) * averagePi_n\u2019
/scratch2/drodriguez/palabos-v1.5r0/src/offLattice/immersedWalls3D.hh: In member function \u2018void plb::IndexedInamuroIteration3D<T, VelFunction>::processGenericBlocks(plb::Box3D, std::vector<plb::AtomicBlock3D*, std::allocator<plb::AtomicBlock3D*> >) [with T = float, VelFunction = VelocityFunction]\u2019:
generalExternalFlow_v6.cpp:1630:   instantiated from here
/scratch2/drodriguez/palabos-v1.5r0/src/offLattice/immersedWalls3D.hh:439: error: no match for \u2018operator*\u2019 in \u2018(((double)averageRhoBar) + 1.0e+0) * wallVelocity\u2019
/scratch2/drodriguez/palabos-v1.5r0/src/offLattice/immersedWalls3D.hh:441: error: no match for \u2018operator/\u2019 in \u2018deltaG.std::vector<_Tp, _Alloc>::operator[] [with _Tp = plb::Array<float, 3ul>, _Alloc = std::allocator<plb::Array<float, 3ul> >](i) / (((double)averageRhoBar) + 1.0e+0)\u2019
generalExternalFlow_v6.cpp: At global scope:
generalExternalFlow_v6.cpp:815: warning: \u2018T poiseuillePressure(const SimulationParameters&, plb::plint)\u2019 defined but not used
scons: *** [generalExternalFlow_v6.o] Error 1
scons: building terminated because of errors.
make: *** [compile] Error 2


My code is slightly modified but get the same error with the original one.

Thanks for the help
Regards

Hi David,

Thanks for reporting the bug. We fixed it, and published an updated release 1 of Palabos v1.5.

Please let us know if you still experience any issues.

Regards,
Jonas

I am trying it during today and we’ll let you know.
edit: all solved, great work

Regards