mirror of
https://github.com/PhasicFlow/phasicFlow.git
synced 2025-06-12 16:26:23 +00:00
modification for coupling, data transfer
This commit is contained in:
@ -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>
|
||||
|
@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user