diff --git a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp index 489961fb99f49117e9a1861eb4fc86a5de8e530e..8af6cbc794c035ceef595249b9a7e7cc3585fd09 100644 --- a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp +++ b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp @@ -111,7 +111,7 @@ int main(int argc, char** argv) //////////////////// auto numBlocks = Vector3<uint_t> (1,1,1); - auto cellsPerBlock = Vector3<uint_t>(128, 128, 128); + auto cellsPerBlock = Vector3<uint_t>(256, 256, 256); auto domainAABB = AABB(0,0,0,1,1,1); auto blocks = walberla::blockforest::createUniformBlockGrid(domainAABB, numBlocks[0], numBlocks[1], numBlocks[2], cellsPerBlock[0], cellsPerBlock[1], cellsPerBlock[2], true); @@ -128,6 +128,8 @@ int main(int argc, char** argv) #if defined(WALBERLA_BUILD_WITH_GPU_SUPPORT) const BlockDataID fractionFieldGPUId = gpu::addGPUFieldToStorage< FracField_T >(blocks, fractionFieldId, "fractionFieldGPU", true); const BlockDataID objectVelocitiesFieldGPUId = gpu::addGPUFieldToStorage< VectorField_T >(blocks, objectVelocitiesFieldId, "object velocity field on GPU", true); + const BlockDataID forceFieldGPUId = gpu::addGPUFieldToStorage< VectorField_T >(blocks, objectVelocitiesFieldId, "force field on GPU", true); + #endif @@ -154,8 +156,8 @@ int main(int argc, char** argv) ///////////// #if defined(WALBERLA_BUILD_WITH_GPU_SUPPORT) - SweepCollection_T sweepCollection(blocks, fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, densityFieldGPUId, velocityFieldGPUId, omega); - pystencils::PSM_Conditional_Sweep psmConditionalSweep( fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, omega ); + SweepCollection_T sweepCollection(blocks, forceFieldGPUId, fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, densityFieldGPUId, velocityFieldGPUId, omega); + pystencils::PSM_Conditional_Sweep psmConditionalSweep( forceFieldGPUId, fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, omega ); #else SweepCollection_T sweepCollection(blocks, fractionFieldId, objectVelocitiesFieldId, pdfFieldId, densityFieldId, velocityFieldId, omega); pystencils::PSM_Conditional_Sweep psmConditionalSweep( fractionFieldId, objectVelocitiesFieldId, pdfFieldId, omega ); diff --git a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py index 136d29a2b5b96992c8a73f1f5aeb38537fc4d7e7..35e08828f7e4d21841310432de9f2144735ef22d 100644 --- a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py +++ b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py @@ -51,21 +51,26 @@ with CodeGeneration() as ctx: velocity = ps.fields(f"velocity({stencil.D}): {data_type}[3D]", layout=layout) density = ps.fields(f"density({1}): {data_type}[3D]", layout=layout) macroscopic_fields = {'density': density, 'velocity': velocity} + force_field = ps.fields(f"forec({stencil.D}): {data_type}[3D]", layout=layout,) - fraction_field = ps.fields(f"frac_field({1}): {data_type}[3D]", layout=layout,) + + fraction_field = ps.fields(f"frac_field({2}): {data_type}[3D]", layout=layout,) object_velocity_field = ps.fields(f"obj_vel({stencil.D}): {data_type}[3D]", layout=layout,) psm_config = PSMConfig( fraction_field=fraction_field, object_velocity_field=object_velocity_field, SC=1, + particle_force_field=force_field, + MaxParticlesPerCell=1 ) lbm_config = LBMConfig( stencil=stencil, - method=Method.SRT, + method=Method.TRT, relaxation_rate=omega, - compressible=False, + smagorinsky=True, + compressible=True, zero_centered=True, psm_config=psm_config, )