code recovery regular part

This commit is contained in:
HRN
2024-10-18 23:13:20 +03:30
parent 173d3c4917
commit d3ccf354b7
54 changed files with 1108 additions and 695 deletions

View File

@ -9,6 +9,8 @@ particles/regularParticleIdHandler/regularParticleIdHandler.cpp
SphereParticles/sphereShape/sphereShape.cpp
SphereParticles/sphereParticles/sphereParticles.cpp
SphereParticles/sphereParticles/sphereParticlesKernels.cpp
SphereParticles/boundarySphereParticles.cpp
SphereParticles/boundarySphereParticlesList.cpp
Insertion/collisionCheck/collisionCheck.cpp
Insertion/insertionRegion/insertionRegion.cpp
Insertion/insertion/insertion.cpp
@ -18,7 +20,8 @@ Insertion/Insertion/Insertions.cpp
if(pFlow_Build_MPI)
list(APPEND SourceFiles
particles/MPIParticleIdHandler/MPIParticleIdHandler.cpp)
particles/MPIParticleIdHandler/MPIParticleIdHandler.cpp
SphereParticles/processorBoundarySphereParticles.cpp)
endif()
set(link_libs Kokkos::kokkos phasicFlow Integration Property)

View File

@ -384,6 +384,11 @@ pFlow::sphereParticles::sphereParticles(
dynPointStruct(),
zero3
),
boundarySphereParticles_
(
dynPointStruct().boundaries(),
*this
),
accelerationTimer_(
"Acceleration", &this->timers() ),
intPredictTimer_(
@ -523,6 +528,7 @@ bool pFlow::sphereParticles::beforeIteration()
I_.updateBoundariesSlaveToMasterIfRequested();
rVelocity_.updateBoundariesSlaveToMasterIfRequested();
rAcceleration_.updateBoundariesSlaveToMasterIfRequested();
rVelIntegration_().updateBoundariesSlaveToMasterIfRequested();
fieldUpdateTimer_.end();
return true;
@ -531,10 +537,13 @@ bool pFlow::sphereParticles::beforeIteration()
bool pFlow::sphereParticles::iterate()
{
timeInfo ti = TimeInfo();
realx3 g = control().g();
particles::iterate();
accelerationTimer_.start();
pFlow::sphereParticlesKernels::acceleration(
control().g(),
g,
mass().deviceViewAll(),
contactForce().deviceViewAll(),
I().deviceViewAll(),
@ -543,6 +552,10 @@ bool pFlow::sphereParticles::iterate()
accelertion().deviceViewAll(),
rAcceleration().deviceViewAll()
);
for(auto& bndry:boundarySphereParticles_)
{
bndry->acceleration(ti, g);
}
accelerationTimer_.end();
intCorrectTimer_.start();

View File

@ -33,6 +33,7 @@ Licence:
#include "particles.hpp"
#include "property.hpp"
#include "sphereShape.hpp"
#include "boundarySphereParticlesList.hpp"
#include "systemControl.hpp"
namespace pFlow
@ -67,6 +68,9 @@ private:
/// pointField of rotational acceleration of particles on device
realx3PointField_D rAcceleration_;
/// boundaries
boundarySphereParticlesList boundarySphereParticles_;
/// rotational velocity integrator
uniquePtr<integration> rVelIntegration_ = nullptr;

View File

@ -85,6 +85,8 @@ bool pFlow::dynamicPointStructure::beforeIteration()
if(!pointStructure::beforeIteration())return false;
velocityUpdateTimer_.start();
velocity_.updateBoundariesSlaveToMasterIfRequested();
integrationPos_->updateBoundariesSlaveToMasterIfRequested();
integrationVel_->updateBoundariesSlaveToMasterIfRequested();
velocityUpdateTimer_.end();
return true;
}
@ -118,7 +120,7 @@ bool pFlow::dynamicPointStructure::correct
{
//auto& pos = pStruct().pointPosition();
if(!integrationPos_().correct(dt, pointPosition(), velocity_) )return false;
if(!integrationPos_().correctPStruct(dt, *this, velocity_) )return false;
if(!integrationVel_().correct(dt, velocity_, acceleration))return false;