MPI-parallelization upto IO file

This commit is contained in:
Hamidreza Norouzi
2024-01-13 09:54:23 +03:30
parent 280f53a230
commit f5d8daa608
78 changed files with 1594 additions and 1503 deletions

View File

@ -23,7 +23,7 @@ Licence:
#include "cylinder.hpp"
#include "sphere.hpp"
#include "cells.hpp"
#include "contactSearchFunctions.hpp"
//#include "contactSearchFunctions.hpp"
#include "streams.hpp"
@ -32,20 +32,20 @@ pFlow::realx3Vector pFlow::positionParticles::sortByMortonCode(realx3Vector& pos
{
struct indexMorton
{
size_t morton;
size_t index;
uint64 morton;
uint64 index;
};
realx3 minP = min(position);
/*realx3 minP = min(position);
realx3 maxP = max(position);
real cellsize = maxDiameter();
cells<size_t> allCells( box(minP, maxP), cellsize);
cells<uint64> allCells( box(minP, maxP), cellsize);
Vector<indexMorton> indMor(position.size(),RESERVE());
indMor.clear();
size_t ind=0;
uint64 ind=0;
for(const auto& p:position)
{
auto cellInd = allCells.pointIndex(p);
@ -68,9 +68,10 @@ pFlow::realx3Vector pFlow::positionParticles::sortByMortonCode(realx3Vector& pos
for(auto& ind:indMor)
{
sortedPos.push_back( position[ind.index] );
}
}*/
return sortedPos;
WARNING<<"Morton sorting is inactive!"<<END_WARNING;
return position;
}
@ -80,7 +81,7 @@ pFlow::positionParticles::positionParticles
const dictionary& dict
)
{
maxNumberOfParticles_ = dict.getValOrSet("maxNumberOfParticles", static_cast<size_t>(10000));
maxNumberOfParticles_ = dict.getValOrSet("maxNumberOfParticles", static_cast<uint64>(10000));
mortonSorting_ = dict.getValOrSet("mortonSorting", Logical("Yes"));
@ -90,11 +91,13 @@ pFlow::positionParticles::positionParticles
}
else if(dict.containsDictionay("cylinder"))
{
region_ = makeUnique<region<cylinder>>(dict.subDict("cylinder"));
WARNING<<"cylinder region is not set!"<<END_WARNING;
//region_ = makeUnique<region<cylinder>>(dict.subDict("cylinder"));
}
else if(dict.containsDictionay("sphere"))
{
region_ = makeUnique<region<sphere>>(dict.subDict("sphere"));
WARNING<<"sphere region is not set!"<<END_WARNING;
//region_ = makeUnique<region<sphere>>(dict.subDict("sphere"));
}
else
{
@ -112,7 +115,7 @@ pFlow::realx3Vector pFlow::positionParticles::getFinalPosition()
}
else
{
realx3Vector vec(position().capacity(), RESERVE());
realx3Vector vec("final position",position().capacity(), 0 , RESERVE());
vec.assign( position().begin(), position().end());
return std::move(vec);
@ -132,7 +135,7 @@ pFlow::uniquePtr<pFlow::positionParticles>
if( dictionaryvCtorSelector_.search(method) )
{
return dictionaryvCtorSelector_[method] (dict);
return dictionaryvCtorSelector_[method] (control, dict);
}
else
{