diff --git a/.gitignore b/.gitignore index 3b5e42021e5b116661d021caeb56c744e12e8c77..dda09f671af7eb11a3046db72d9108a771419dbe 100644 --- a/.gitignore +++ b/.gitignore @@ -65,4 +65,4 @@ cmake_install.cmake CMakeDefs.h /moduleStatistics.json /walberla-config.cmake -cmake-build-* \ No newline at end of file +/cmake-build-* \ No newline at end of file diff --git a/python/waLBerla/tools/lbm_unitconversion/pint_unit_converter.py b/python/waLBerla/tools/lbm_unitconversion/pint_unit_converter.py index 83b6ab0f982007f5ae363472799155fc553d2c25..c7eb51733ae7cfd9e52b2ea44eb305e81212646d 100644 --- a/python/waLBerla/tools/lbm_unitconversion/pint_unit_converter.py +++ b/python/waLBerla/tools/lbm_unitconversion/pint_unit_converter.py @@ -88,15 +88,26 @@ class PintUnitConverter: def conv_config(self, config): result = {} + def round10(f): + s = '%.10g' % f + try: + return int(s) + except ValueError: + return float(s) + #if int(f) == f: + # print("convert f to int") + # return int(f) + #return f + for key,value in config.items(): if type(value) is dict: result[key] = self.conv_config( value ) elif type(value) is self.ureg.Quantity: - result[key] = self.to_sl_units_mag( value ) + result[key] = round10(self.to_sl_units_mag( value )) elif type(value) is tuple: - result[key] = tuple( [ self.to_sl_units_mag(e) for e in value ] ) + result[key] = tuple( [ round10(self.to_sl_units_mag(e)) for e in value ] ) elif type(value) is list: - result[key] = [ self.to_sl_units_mag(e) for e in value ] + result[key] = [ round10(self.to_sl_units_mag(e)) for e in value ] else: result[key] = value diff --git a/src/lbm/srt/AdvectionDiffusionSweep.impl.h b/src/lbm/srt/AdvectionDiffusionSweep.impl.h index c5e37dd84d125660e552dce3ca3131b14e60a24d..11a80bd78f888152ad9218fdbc74a49202320f18 100644 --- a/src/lbm/srt/AdvectionDiffusionSweep.impl.h +++ b/src/lbm/srt/AdvectionDiffusionSweep.impl.h @@ -1214,13 +1214,18 @@ void AdvectionDiffusionSweep< LM_AdvDiff, VelocityAdapter_T, FlagField_T, Vector LM_AdvDiff::equilibriumAccuracyOrder == 1 >::type > ::stream( IBlock * const block, const uint_t numberOfGhostLayersToInclude ) { + std::cout << "Entering AdvectionDiffusionSweep::stream\n"; AdvDiffPdfField_T * src( NULL ); AdvDiffPdfField_T * dst( NULL ); const FlagField_T * flagField( NULL ); auto lbm = this->getLbmMaskAndFields( block, src, dst, flagField ); + std::cout << "AdvectionDiffusionSweep::stream::getLbmMaskAndFields src:" << src <<std::endl; + std::cout << "AdvectionDiffusionSweep::stream::getLbmMaskAndFields dst:" << dst <<std::endl; Stream< LM_AdvDiff, FlagField_T >::execute( src, dst, flagField, lbm, numberOfGhostLayersToInclude ); + std::cout << "AdvectionDiffusionSweep::stream::execute src:" << src <<std::endl; + std::cout << "AdvectionDiffusionSweep::stream::execute dst:" << dst <<std::endl; } template< typename LM_AdvDiff, typename VelocityAdapter_T, typename FlagField_T, typename VectorField_T > @@ -1233,10 +1238,12 @@ void AdvectionDiffusionSweep< LM_AdvDiff, VelocityAdapter_T, FlagField_T, Vector LM_AdvDiff::equilibriumAccuracyOrder == 1 >::type > ::collide( IBlock * const block, const uint_t numberOfGhostLayersToInclude ) { + std::cout << "AdvectionDiffusionSweep::collide\n"; AdvDiffPdfField_T * src( NULL ); const FlagField_T * flagField( NULL ); auto lbm = this->getLbmMaskAndFields( block, src, flagField ); + std::cout << "AdvectionDiffusionSweep::collide::getLbmMaskAndFields src:" << src <<std::endl; WALBERLA_ASSERT_NOT_NULLPTR( src ); WALBERLA_ASSERT_NOT_NULLPTR( flagField ); diff --git a/src/lbm/sweeps/CellwiseSweep.h b/src/lbm/sweeps/CellwiseSweep.h index 2879f19ae2c56d5244706ec8c3cd9be5f6e852ae..8cb649d36372576f52c734582a135fd45013726f 100644 --- a/src/lbm/sweeps/CellwiseSweep.h +++ b/src/lbm/sweeps/CellwiseSweep.h @@ -152,22 +152,26 @@ class CellwiseSweep void CellwiseSweep< LatticeModel_T, Filter_T, DensityVelocityIn_T, DensityVelocityOut_T, typename std::enable_if< specialization >::type \ >::streamCollide( IBlock * const block, const uint_t numberOfGhostLayersToInclude ) \ { \ + std::cout << "-----Entering CellwiseSweep::streamCollide-----" << std::endl; \ PdfField_T * src( NULL ); \ PdfField_T * dst( NULL ); \ \ this->getFields( block, src, dst ); \ + std::cout << "CellwiseSweep::streamCollide src: " << src << std::endl; \ + std::cout << "CellwiseSweep::streamCollide dst: " << dst << std::endl; \ \ WALBERLA_ASSERT_GREATER( src->nrOfGhostLayers(), numberOfGhostLayersToInclude ); \ WALBERLA_ASSERT_GREATER_EQUAL( dst->nrOfGhostLayers(), numberOfGhostLayersToInclude ); \ \ const auto & lm = src->latticeModel(); \ dst->resetLatticeModel( lm ); /* required so that member functions for getting density and equilibrium velocity can be called for dst! */ \ + std::cout << "CellwiseSweep::streamCollide::resetLatticeModel dst: " << dst << std::endl; \ \ this->filter( *block ); \ this->densityVelocityIn( *block ); \ this->densityVelocityOut( *block ); -#define WALBERLA_LBM_CELLWISE_SWEEP_STREAM_COLLIDE_FOOT() src->swapDataPointers( dst ); } +#define WALBERLA_LBM_CELLWISE_SWEEP_STREAM_COLLIDE_FOOT() src->swapDataPointers( dst ); std::cout << "Data Pointers Swapped in CellwiseSweep!\nCellwiseSweep::streamCollide src: " << src << "\nCellwiseSweep::streamCollide dst: " << dst << std::endl; } diff --git a/src/lbm/sweeps/Streaming.h b/src/lbm/sweeps/Streaming.h index f4d87fe4a4427591f7873d61d2a24932efe71902..42d6ef3a4c2fe0e96c4cac308fddd9d60a4c5f10 100644 --- a/src/lbm/sweeps/Streaming.h +++ b/src/lbm/sweeps/Streaming.h @@ -112,6 +112,8 @@ void Stream< LatticeModel_T, FlagField_T, typename std::enable_if< std::is_same< >::execute( PdfField_T * src, PdfField_T * dst, const FlagField_T * flagField, const typename FlagField_T::flag_t lbm, const uint_t numberOfGhostLayersToInclude ) { + std::cout << "Stream::execute src:" << src << std::endl; + std::cout << "Stream::execute dst:" << dst << std::endl; WALBERLA_ASSERT_NOT_NULLPTR( src ); WALBERLA_ASSERT_NOT_NULLPTR( dst ); WALBERLA_ASSERT_NOT_NULLPTR( flagField ); @@ -149,7 +151,11 @@ void Stream< LatticeModel_T, FlagField_T, typename std::enable_if< std::is_same< ) // WALBERLA_FOR_ALL_CELLS_INCLUDING_GHOST_LAYER_XYZ + std::cout << "Stream::execute before swapDataPointers src:" << src << std::endl; + std::cout << "Stream::execute before swapDataPointers dst:" << dst << std::endl; src->swapDataPointers( dst ); + std::cout << "Stream::execute after swapDataPointers src:" << src << std::endl; + std::cout << "Stream::execute after swapDataPointers dst:" << dst << std::endl; } diff --git a/src/lbm/sweeps/SweepBase.h b/src/lbm/sweeps/SweepBase.h index d3389cc60e612975851b885922f2dfd91279abb0..39015e3d89ed46da067f0455b422a7c3451de526 100644 --- a/src/lbm/sweeps/SweepBase.h +++ b/src/lbm/sweeps/SweepBase.h @@ -113,6 +113,7 @@ SweepBase< LatticeModel_T, Filter_T, DensityVelocityIn_T, DensityVelocityOut_T > WALBERLA_ASSERT_NOT_NULLPTR( block ); PdfField_T * src = block->getData<PdfField_T>( src_ ); + std::cout << "SweepBase::getSrcField src: " << src << std::endl; WALBERLA_ASSERT_NOT_NULLPTR( src ); @@ -146,6 +147,7 @@ SweepBase< LatticeModel_T, Filter_T, DensityVelocityIn_T, DensityVelocityOut_T > } PdfField_T * dst = src->cloneUninitialized(); + std::cout << "SweepBase::getDstField dst: " << dst << std::endl; WALBERLA_ASSERT_NOT_NULLPTR( dst ); // take care of proper thread<->memory assignment (first-touch allocation policy !) diff --git a/src/timeloop/Timeloop.cpp b/src/timeloop/Timeloop.cpp index 6b2f548d54ec9922200488243eec2355e3a9f676..05986bdd706a7d10648900c85a815c52d14b55f6 100644 --- a/src/timeloop/Timeloop.cpp +++ b/src/timeloop/Timeloop.cpp @@ -54,8 +54,9 @@ void Timeloop::run( const bool logTimeStep ) void Timeloop::run( WcTimingPool & tp, const bool logTimeStep ) { WALBERLA_LOG_PROGRESS( "Running timeloop for " << nrOfTimeSteps_ << " time steps" ); - + std::cout << "-----Executing Timeloop-----\n"; while(curTimeStep_ < nrOfTimeSteps_) { + std::cout << "\nTimestep: " << curTimeStep_ << std::endl; singleStep( tp, logTimeStep ); if ( stop_ ) { stop_ = false;