Reply To: About VTI file in porousmedia
OpenLB – Open Source Lattice Boltzmann Code › Forums › on OpenLB › General Topics › About VTI file in porousmedia › Reply To: About VTI file in porousmedia
I sincerely appreciate your guidance and support. I have recently started working with OpenLB and have been enthusiastically following the user-guide and actively monitoring the forum discussions.
You are absolutely right. Despite assigning 16 cores (mpirun -np 16) and allowing the simulation to run for over 2 hours, with iterations proceeding as expected, the process remains computationally intensive and time-consuming.
I’m also facing another challenge in this regard. Due to the above, I intend to run the simulation using my RTX 4050 GPU with CUDA. I have carefully studied all the relevant sections on parallel computing in the user-guide and followed them step by step without encountering any errors.
I have successfully managed to run some of examples using this approach. But I’m encountering errors and warnings when attempting to run certain examples (especially gasStorage2d) that involve GPU computing (in the make step).
make -C ../../../external
make[1]: Entering directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1/external’
make -C zlib
make[2]: Entering directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1/external/zlib’
make[2]: Nothing to be done for ‘all’.
make[2]: Leaving directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1/external/zlib’
cp zlib/build/libz.a lib/
make -C tinyxml2
make[2]: Entering directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1/external/tinyxml2’
make[2]: Nothing to be done for ‘all’.
make[2]: Leaving directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1/external/tinyxml2’
cp tinyxml2/build/libtinyxml2.a lib/
make[1]: Leaving directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1/external’
make -C ../../.. core
make[1]: Entering directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1’
make[1]: Nothing to be done for ‘core’.
make[1]: Leaving directory ‘/home/amirmansourjafari/Downloads/OpenLB/release-1.8.1’
nvcc -O3 -std=c++20 –forward-unknown-to-host-compiler -pthread –forward-unknown-to-host-compiler -x cu -O3 -std=c++20 –generate-code=arch=compute_89,code=[compute_89,sm_89] –extended-lambda –expt-relaxed-constexpr -rdc=true -Xcudafe “–diag_suppress=implicit_return_from_non_void_function –display_error_number –diag_suppress=20014 –diag_suppress=20011” -DPLATFORM_CPU_SISD -DPLATFORM_GPU_CUDA -DDEFAULT_FLOATING_POINT_TYPE=float -I../../../src -I../../../external/zlib -I../../../external/tinyxml2 -c -o gasStorage2d.o gasStorage2d.cpp
../../../src/core/multiPhaseUnitConverter.h(210): warning #611-D: overloaded virtual function “olb::UnitConverterBase::print” is only partially overridden in class “olb::MultiPhaseUnitConverterFromRelaxationTime<T, NSDESCRIPTOR>”
class MultiPhaseUnitConverterFromRelaxationTime : public UnitConverter<T, DESCRIPTOR> {
^
detected during instantiation of class “olb::MultiPhaseUnitConverterFromRelaxationTime<T, DESCRIPTOR> [with T=T, DESCRIPTOR=NSDESCRIPTOR]” at line 91 of gasStorage2d.cpp
Remark: The warnings can be suppressed with “-diag-suppress <warning-number>”
../../../src/functors/analytical/indicator/indicatorF2D.h(69): warning #611-D: overloaded virtual function “olb::IndicatorF2D<S>::operator() [with S=T]” is only partially overridden in class “olb::IndicatorCuboid2D<T>”
class IndicatorCuboid2D : public IndicatorF2D<S> {
^
detected during instantiation of class “olb::IndicatorCuboid2D<S> [with S=T]” at line 94 of gasStorage2d.cpp
gasStorage2d.cpp(94): error: invalid narrowing conversion from “double” to “float”
IndicatorCuboid2D<T> inlet( dx, length[1] – dx, { -inletLength, length[1]/2. }, 0 );
^
gasStorage2d.cpp(97): error: invalid narrowing conversion from “double” to “float”
IndicatorCuboid2D<T> outlet( dx, length[1] – dx, { outletLength + length[0] – 0.5*dx, length[1]/2. }, 0);
^
gasStorage2d.cpp(97): error: invalid narrowing conversion from “double” to “float”
IndicatorCuboid2D<T> outlet( dx, length[1] – dx, { outletLength + length[0] – 0.5*dx, length[1]/2. }, 0);
^
gasStorage2d.cpp(129): error: invalid narrowing conversion from “double” to “float”
IndicatorCuboid2D<T> beforeOutlet_( 1.1*dx, length[1], { length[0] + outletLength – 2.*dx, length[1]/2. }, 0 );
^
gasStorage2d.cpp(129): error: invalid narrowing conversion from “double” to “float”
IndicatorCuboid2D<T> beforeOutlet_( 1.1*dx, length[1], { length[0] + outletLength – 2.*dx, length[1]/2. }, 0 );
^
gasStorage2d.cpp(180): error: invalid narrowing conversion from “double” to “float”
SmoothIndicatorFactoredCuboid2D<T, T> phi0( {-inletLength, length[1]/2.},
^
gasStorage2d.cpp(186): error: invalid narrowing conversion from “double” to “float”
SmoothIndicatorFactoredCuboid2D<T,T> fringe( {-inletLength, length[1]/2.},
^
gasStorage2d.cpp(406): error: invalid narrowing conversion from “double” to “float”
{ ( length[0] + outletLength – inletLength )/2., length[1]/2. }, 0);
^
gasStorage2d.cpp(406): error: invalid narrowing conversion from “double” to “float”
{ ( length[0] + outletLength – inletLength )/2., length[1]/2. }, 0);
^
9 errors detected in the compilation of “gasStorage2d.cpp”.
make: *** [../../../default.single.mk:41: gasStorage2d.o] Error 2
I would greatly appreciate any guidance you could provide on this matter.
Best regards,
Amirmansour
- This reply was modified 2 weeks, 3 days ago by Amirmansour Jafari.