From 8f657458cc04b31fba6a3131697ab3fa0f517503 Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi Date: Wed, 18 Jan 2023 14:20:08 +0330 Subject: [PATCH 1/2] bug fix for max_capacity of pStruct --- utilities/particlesPhasicFlow/empty/empty.cpp | 3 +-- .../positionParticles/positionParticles.hpp | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/utilities/particlesPhasicFlow/empty/empty.cpp b/utilities/particlesPhasicFlow/empty/empty.cpp index e75d0dac..1b938c00 100755 --- a/utilities/particlesPhasicFlow/empty/empty.cpp +++ b/utilities/particlesPhasicFlow/empty/empty.cpp @@ -29,8 +29,7 @@ pFlow::empty::empty( positionParticles(dict), position_ ( - maxNumberOfParticles_, RESERVE() + maxNumberOfParticles_, 0, RESERVE() ) { - position_.clear(); } \ No newline at end of file diff --git a/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp b/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp index fe579e71..3bcf7807 100755 --- a/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp +++ b/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp @@ -153,7 +153,10 @@ public: } else { - return position(); + realx3Vector vec(position().capacity(), RESERVE()); + vec.assign( position().begin(), position().end()); + + return std::move(vec); } } From ded25ab7b3d2a0e631f79123d4cffd722ff1009a Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi Date: Wed, 18 Jan 2023 17:48:11 +0330 Subject: [PATCH 2/2] max particle correction for position particles --- .../positionParticles/positionParticles.cpp | 18 ++++++++++++++++-- .../positionParticles/positionParticles.hpp | 17 ++--------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/utilities/particlesPhasicFlow/positionParticles/positionParticles.cpp b/utilities/particlesPhasicFlow/positionParticles/positionParticles.cpp index 0d3b8409..fcfb4616 100755 --- a/utilities/particlesPhasicFlow/positionParticles/positionParticles.cpp +++ b/utilities/particlesPhasicFlow/positionParticles/positionParticles.cpp @@ -98,9 +98,23 @@ pFlow::positionParticles::positionParticles } +pFlow::realx3Vector pFlow::positionParticles::getFinalPosition() +{ + if(mortonSorting_) + { + return sortByMortonCode(position()); + } + else + { + realx3Vector vec(position().capacity(), RESERVE()); + vec.assign( position().begin(), position().end()); + + return std::move(vec); + } +} - -pFlow::uniquePtr pFlow::positionParticles::create(const dictionary & dict) +pFlow::uniquePtr + pFlow::positionParticles::create(const dictionary & dict) { word method = dict.getVal("method"); diff --git a/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp b/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp index 3bcf7807..48fc222b 100755 --- a/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp +++ b/utilities/particlesPhasicFlow/positionParticles/positionParticles.hpp @@ -145,24 +145,11 @@ public: // - access to position virtual realx3Vector& position() = 0; - virtual realx3Vector getFinalPosition() - { - if(mortonSorting_) - { - return sortByMortonCode(position()); - } - else - { - realx3Vector vec(position().capacity(), RESERVE()); - vec.assign( position().begin(), position().end()); - - return std::move(vec); - } - } - + virtual realx3Vector getFinalPosition(); static uniquePtr create(const dictionary & dict); + };