modification for coupling, data transfer

This commit is contained in:
hamidrezanorouzi
2023-01-02 14:31:40 +03:30
parent 7e858a116f
commit fef0c4fe96
14 changed files with 499 additions and 67 deletions

View File

@ -18,6 +18,9 @@ Licence:
-----------------------------------------------------------------------------*/
// from phasicFlow
#include "KokkosTypes.hpp"
#include "DEMSystem.hpp"
@ -27,10 +30,16 @@ pFlow::DEMSystem::DEMSystem(
int argc,
char* argv[])
:
ControlDict_(),
domains_(domains)
ControlDict_()
{
REPORT(0)<<"Initializing host/device execution spaces . . . \n";
REPORT(1)<<"Host execution space is "<< greenText(DefaultHostExecutionSpace::name())<<endREPORT;
REPORT(1)<<"Device execution space is "<<greenText(DefaultExecutionSpace::name())<<endREPORT;
// initialize Kokkos
Kokkos::initialize( argc, argv );
REPORT(0)<<"\nCreating Control repository . . ."<<endREPORT;
Control_ = makeUnique<systemControl>(
ControlDict_.startTime(),
@ -43,7 +52,13 @@ pFlow::DEMSystem::DEMSystem(
}
pFlow::DEMSystem::~DEMSystem()
{}
{
Control_.reset();
output<< "\nFinalizing host/device execution space ...."<<endl;
Kokkos::finalize();
}
pFlow::uniquePtr<pFlow::DEMSystem>

View File

@ -43,16 +43,8 @@ protected:
uniquePtr<systemControl> Control_ = nullptr;
std::vector<box> domains_;
uniquePtr<Timers> timers_;
// methods
auto& Control()
{
return Control_();
}
public:
@ -91,6 +83,17 @@ public:
return Control_->g();
}
// methods
auto& Control()
{
return Control_();
}
const auto& Control()const
{
return Control_();
}
auto inline constexpr usingDoulle()const
{
return pFlow::usingDouble__;
@ -101,6 +104,9 @@ public:
return Control_->timers();
}
virtual
bool updateParticleDistribution(real extentFraction, const std::vector<box> domains) = 0;
virtual
int32 numParInDomain(int32 di)const = 0;
@ -110,15 +116,33 @@ public:
virtual
span<const int32> parIndexInDomain(int32 di)const = 0;
virtual
bool changeDomainsSizeUpdateParticles(const std::vector<box>& domains) = 0;
virtual
span<real> parDiameter() = 0;
virtual
bool updateParticles() = 0;
span<realx3> parVelocity() = 0;
virtual
span<realx3> parPosition() = 0;
virtual
span<realx3> parFluidForce() = 0;
virtual
span<realx3> parFluidTorque() = 0;
virtual
bool sendFluidForceToDEM() = 0;
virtual
bool sendFluidTorqueToDEM() = 0;
virtual
real maxBounndingSphereSize()const = 0;
virtual
bool beforeIteration() = 0;
virtual
bool iterate(int32 n, real timeToWrite, word timeName) = 0;