DEMSystem updated for version 1.0

This commit is contained in:
HRN 2024-12-25 18:26:53 +03:30
parent a6a2d120e7
commit bc22012ecd
5 changed files with 31 additions and 23 deletions

View File

@ -1,9 +1,11 @@
set(SourceFiles set(SourceFiles
DEMSystem/DEMSystem.cpp
sphereDEMSystem/sphereDEMSystem.cpp
sphereDEMSystem/sphereFluidParticles.cpp
domainDistribute/domainDistribute.cpp domainDistribute/domainDistribute.cpp
DEMSystem/DEMSystem.cpp
sphereDEMSystem/sphereFluidParticles.cpp
#sphereDEMSystem/sphereDEMSystem.cpp
#
) )
set(link_libs Kokkos::kokkos phasicFlow Particles Geometry Property Interaction Interaction Utilities) set(link_libs Kokkos::kokkos phasicFlow Particles Geometry Property Interaction Interaction Utilities)

View File

@ -34,13 +34,13 @@ pFlow::DEMSystem::DEMSystem(
{ {
REPORT(0)<<"Initializing host/device execution spaces . . . \n"; REPORT(0)<<"Initializing host/device execution spaces . . . \n";
REPORT(1)<<"Host execution space is "<< greenText(DefaultHostExecutionSpace::name())<<endREPORT; REPORT(1)<<"Host execution space is "<< Green_Text(DefaultHostExecutionSpace::name())<<END_REPORT;
REPORT(1)<<"Device execution space is "<<greenText(DefaultExecutionSpace::name())<<endREPORT; REPORT(1)<<"Device execution space is "<<Green_Text(DefaultExecutionSpace::name())<<END_REPORT;
// initialize Kokkos // initialize Kokkos
Kokkos::initialize( argc, argv ); Kokkos::initialize( argc, argv );
REPORT(0)<<"\nCreating Control repository . . ."<<endREPORT; REPORT(0)<<"\nCreating Control repository . . ."<<END_REPORT;
Control_ = makeUnique<systemControl>( Control_ = makeUnique<systemControl>(
ControlDict_.startTime(), ControlDict_.startTime(),
ControlDict_.endTime(), ControlDict_.endTime(),
@ -87,4 +87,3 @@ pFlow::uniquePtr<pFlow::DEMSystem>
return nullptr; return nullptr;
} }

View File

@ -25,6 +25,7 @@ Licence:
#include "types.hpp" #include "types.hpp"
#include "span.hpp" #include "span.hpp"
#include "box.hpp"
#include "virtualConstructor.hpp" #include "virtualConstructor.hpp"
#include "uniquePtr.hpp" #include "uniquePtr.hpp"
#include "systemControl.hpp" #include "systemControl.hpp"
@ -111,19 +112,31 @@ public:
int32 numParInDomain(int32 di)const = 0; int32 numParInDomain(int32 di)const = 0;
virtual virtual
std::vector<int32> numParInDomain()const = 0; std::vector<int32> numParInDomains()const = 0;
virtual virtual
span<const int32> parIndexInDomain(int32 di)const = 0; span<const int32> parIndexInDomain(int32 domIndx)const = 0;
virtual virtual
span<real> parDiameter() = 0; span<real> parDiameter() = 0;
virtual virtual
span<realx3> parVelocity() = 0; span<realx3> acceleration()=0;
virtual virtual
span<realx3> parPosition() = 0; span<realx3> velocity() = 0;
virtual
span<realx3> position() = 0;
virtual
span<realx3> rAcceleration()=0;
virtual
span<realx3> rVelocity() = 0;
virtual
span<realx3> rPosition() = 0;
virtual virtual
span<realx3> parFluidForce() = 0; span<realx3> parFluidForce() = 0;
@ -153,7 +166,6 @@ public:
bool iterate(real upToTime) = 0; bool iterate(real upToTime) = 0;
static static
uniquePtr<DEMSystem> uniquePtr<DEMSystem>
create( create(
@ -162,8 +174,6 @@ public:
int argc, int argc,
char* argv[]); char* argv[]);
}; };

View File

@ -47,10 +47,10 @@ maxBoundingBoxSize_(maxBoundingBox)
} }
bool pFlow::domainDistribute::locateParticles( bool pFlow::domainDistribute::locateParticles(
ViewType1D<realx3,HostSpace> points, includeMask mask) ViewType1D<realx3,HostSpace> points, const pFlagTypeHost& mask)
{ {
range activeRange = mask.activeRange(); const rangeU32 activeRange = mask.activeRange();
for(int32 di=0; di<numDomains_; di++) for(int32 di=0; di<numDomains_; di++)
@ -59,7 +59,7 @@ bool pFlow::domainDistribute::locateParticles(
} }
for(int32 i=activeRange.first; i<activeRange.second; i++) for(int32 i=activeRange.start(); i<activeRange.end(); i++)
{ {
if(mask(i)) if(mask(i))
{ {

View File

@ -43,13 +43,10 @@ protected:
int32Vector_H numParInDomain_; int32Vector_H numParInDomain_;
real maxBoundingBoxSize_; real maxBoundingBoxSize_;
real domainExtension_ = 1.0; real domainExtension_ = 1.0;
using includeMask = typename pointStructure::activePointsHost;
void clcDomains(const std::vector<box>& domains); void clcDomains(const std::vector<box>& domains);
public: public:
@ -78,7 +75,7 @@ public:
{ {
return return
span<const int32>( span<const int32>(
particlesInDomains_[di].hostVectorAll().data(), particlesInDomains_[di].hostViewAll().data(),
numParInDomain_[di] numParInDomain_[di]
); );
} }
@ -91,7 +88,7 @@ public:
//template<typename includeMask> //template<typename includeMask>
bool locateParticles( bool locateParticles(
ViewType1D<realx3,HostSpace> points, includeMask mask); ViewType1D<realx3,HostSpace> points, const pFlagTypeHost& mask);
}; };