Class for managing spherical particles. More...
Public Types | |
using | ShapeType = sphereShape |
Public Member Functions | |
sphereParticles (systemControl &control, const property &prop) | |
construct from systemControl and property More... | |
~sphereParticles () override=default | |
bool | initializeParticles () |
Insert new particles in position with specified shapes. More... | |
const auto & | spheres () const |
const reference to shapes object More... | |
const auto & | I () const |
const reference to inertia pointField More... | |
auto & | I () |
reference to inertia pointField More... | |
const auto & | rVelocity () const |
auto & | rVelocity () |
bool | hearChanges (real t, real dt, uint32 iter, const message &msg, const anyList &varList) override |
const uint32PointField_D & | propertyId () const override |
const realPointField_D & | diameter () const override |
const realPointField_D & | mass () const override |
bool | beforeIteration () override |
before iteration step More... | |
bool | iterate () override |
iterate particles More... | |
bool | insertParticles (const realx3Vector &position, const wordVector &shapesNames, const anyList &setVarList) override |
realx3PointField_D & | rAcceleration () override |
const realx3PointField_D & | rAcceleration () const override |
const realPointField_D & | boundingSphere () const override |
word | shapeTypeName () const override |
const shape & | getShapes () const override |
void | boundingSphereMinMax (real &minDiam, real &maxDiam) const override |
![]() | |
TypeInfo ("particles") | |
particles (systemControl &control) | |
const auto & | dynPointStruct () const |
const pointStructure & | pStruct () const |
const auto & | simDomain () const |
const auto & | thisDomain () const |
const auto & | extendedDomain () const |
auto | size () const |
auto | capacity () const |
auto | numActive () const |
bool | isAllActive () const |
const auto & | pointPosition () const |
const auto & | velocity () const |
const auto & | accelertion () const |
auto & | accelertion () |
auto & | contactForce () |
const auto & | contactForce () const |
auto & | contactTorque () |
const auto & | contactTorque () const |
uint | maxId () const |
bool | afterIteration () override |
This is called in time loop, after iterate. More... | |
![]() | |
observer (message msg) | |
observer (const subscriber *subscrbr, message msg) | |
virtual | ~observer () |
void | subscribe (const subscriber *subscrbr, message msg) |
observer & | addEvent (message::EVENT event) |
bool | subscribed () const |
void | addToSubscriber (const subscriber *subscrbr, message msg) |
bool | addToSubscriber (const subscriber &subscriber) |
![]() | |
TypeInfo ("demComponent") | |
Type info. More... | |
demComponent (const word &name, systemControl &control) | |
construct from components More... | |
demComponent (const demComponent &)=delete | |
No copy constructor. More... | |
demComponent (demComponent &&)=delete | |
No move constructor. More... | |
demComponent & | operator= (const demComponent &)=delete |
No copy assignment. More... | |
demComponent & | operator= (demComponent &&)=delete |
No move assignment. More... | |
virtual | ~demComponent ()=default |
destructor More... | |
const auto & | control () const |
Const ref to systemControl. More... | |
auto & | control () |
Ref to systemControl. More... | |
real | dt () const |
Time step of integration. More... | |
real | currentTime () const |
Current simulation time. More... | |
uint32 | currentIter () const |
return current iteration number More... | |
timeInfo | TimeInfo () const |
return time info of the simulaiton More... | |
const auto & | time () const |
auto & | time () |
const auto & | timers () const |
Const ref to timers. More... | |
auto & | timers () |
Ref to timers. More... | |
virtual bool | beforeTimeLoop () |
This is called before the start of time loop. More... | |
virtual bool | afterTimeLoop () |
This is called after the time loop. More... | |
Protected Member Functions | |
Timer & | accelerationTimer () |
Timer & | intCorrectTimer () |
integration & | rVelIntegration () |
![]() | |
void | zeroForce () |
void | zeroTorque () |
auto & | dynPointStruct () |
auto & | pointPosition () |
auto & | idHandler () |
auto & | shapeIndex () |
Private Member Functions | |
bool | getParticlesInfoFromShape (const wordVector &shapeNames, uint32Vector &propIds, realVector &diams, realVector &m, realVector &Is, uint32Vector &shIndex) |
Private Attributes | |
ShapeType | spheres_ |
reference to shapes More... | |
uint32PointField_D | propertyId_ |
property id on device More... | |
realPointField_D | diameter_ |
diameter / boundig sphere size of particles on device More... | |
realPointField_D | mass_ |
mass of particles field More... | |
realPointField_D | I_ |
pointField of inertial of particles More... | |
realx3PointField_D | rVelocity_ |
pointField of rotational Velocity of particles on device More... | |
realx3PointField_D | rAcceleration_ |
pointField of rotational acceleration of particles on device More... | |
boundarySphereParticlesList | boundarySphereParticles_ |
boundaries More... | |
uniquePtr< integration > | rVelIntegration_ = nullptr |
rotational velocity integrator More... | |
Timer | accelerationTimer_ |
timer for acceleration computations More... | |
Timer | intPredictTimer_ |
timer for integration computations (prediction step) More... | |
Timer | intCorrectTimer_ |
timer for integration computations (correction step) More... | |
Timer | fieldUpdateTimer_ |
Additional Inherited Members | |
![]() | |
static constexpr auto | numEvents () |
Class for managing spherical particles.
This is a top-level class that contains the essential components for defining spherical prticles in a DEM simulation.
Definition at line 42 of file sphereParticles.hpp.
using ShapeType = sphereShape |
Definition at line 46 of file sphereParticles.hpp.
sphereParticles | ( | systemControl & | control, |
const property & | prop | ||
) |
construct from systemControl and property
Definition at line 308 of file sphereParticles.cpp.
References demComponent::control(), integration::create(), particles::dynPointStruct(), END_REPORT, END_WARNING, fatalErrorInFunction, fatalExit, internalField< T, MemorySpace >::field(), Green_Text, sphereParticles::initializeParticles(), REPORT, sphereParticles::rVelIntegration_, sphereParticles::rVelocity_, and WARNING.
|
overridedefault |
|
private |
Definition at line 259 of file sphereParticles.cpp.
References pFlow::endl(), fatalErrorInFunction, m, Vector< T, Allocator >::reserve(), and Vector< T, Allocator >::size().
|
inlineprotected |
Definition at line 109 of file sphereParticles.hpp.
References sphereParticles::accelerationTimer_.
|
inlineprotected |
Definition at line 114 of file sphereParticles.hpp.
References sphereParticles::intCorrectTimer_.
|
inlineprotected |
Definition at line 119 of file sphereParticles.hpp.
References sphereParticles::rVelIntegration_.
bool initializeParticles | ( | ) |
Insert new particles in position with specified shapes.
This function is involked by inserted object to insert new set of particles into the simulation.
position | position of new particles |
shape | shape of new particles |
setField | initial value of the selected fields for new particles |
Definition at line 201 of file sphereParticles.cpp.
References sphereShape::boundingDiameter(), internalField< T, MemorySpace >::deviceView(), VectorSingle< T, MemorySpace >::deviceView(), sphereParticles::diameter_, particles::dynPointStruct(), pFlow::endl(), fatalErrorInFunction, sphereParticles::I(), sphereParticles::I_, baseShapeNames::indexValid(), sphereShape::Inertia(), LAMBDA_HD, sphereShape::mass(), sphereParticles::mass(), sphereParticles::mass_, pFlow::minMax(), sphereParticles::propertyId_, particles::shapeIndex(), shape::shapePropertyIds(), and sphereParticles::spheres_.
Referenced by sphereParticles::sphereParticles().
|
inline |
const reference to shapes object
Definition at line 150 of file sphereParticles.hpp.
References sphereParticles::spheres_.
|
inline |
const reference to inertia pointField
Definition at line 156 of file sphereParticles.hpp.
References sphereParticles::I_.
Referenced by sphereParticles::initializeParticles().
|
inline |
reference to inertia pointField
Definition at line 162 of file sphereParticles.hpp.
References sphereParticles::I_.
|
inline |
Definition at line 167 of file sphereParticles.hpp.
References sphereParticles::rVelocity_.
|
inline |
Definition at line 172 of file sphereParticles.hpp.
References sphereParticles::rVelocity_.
|
inlineoverridevirtual |
Implements observer.
Definition at line 177 of file sphereParticles.hpp.
References notImplementedFunction.
|
inlineoverridevirtual |
Implements particles.
Definition at line 189 of file sphereParticles.hpp.
References sphereParticles::propertyId_.
|
inlineoverridevirtual |
Implements particles.
Definition at line 194 of file sphereParticles.hpp.
References sphereParticles::diameter_.
Referenced by sphereParticles::boundingSphere().
|
inlineoverridevirtual |
Implements particles.
Definition at line 199 of file sphereParticles.hpp.
References sphereParticles::mass_.
Referenced by sphereParticles::initializeParticles().
|
overridevirtual |
before iteration step
Reimplemented from particles.
Definition at line 515 of file sphereParticles.cpp.
References particles::beforeIteration().
Referenced by main().
|
overridevirtual |
iterate particles
Reimplemented from particles.
Definition at line 537 of file sphereParticles.cpp.
References pFlow::sphereParticlesKernels::acceleration(), and particles::iterate().
Referenced by main().
|
overridevirtual |
Implements particles.
Definition at line 581 of file sphereParticles.cpp.
References anyList::emplaceBack().
|
inlineoverridevirtual |
Implements particles.
Definition at line 216 of file sphereParticles.hpp.
References sphereParticles::rAcceleration_.
|
inlineoverridevirtual |
Implements particles.
Definition at line 221 of file sphereParticles.hpp.
References sphereParticles::rAcceleration_.
|
inlineoverridevirtual |
Implements particles.
Definition at line 226 of file sphereParticles.hpp.
References sphereParticles::diameter().
|
overridevirtual |
Implements particles.
Definition at line 634 of file sphereParticles.cpp.
|
overridevirtual |
Implements particles.
Definition at line 639 of file sphereParticles.cpp.
Implements particles.
Definition at line 645 of file sphereParticles.cpp.
|
private |
reference to shapes
Definition at line 51 of file sphereParticles.hpp.
Referenced by sphereParticles::initializeParticles(), and sphereParticles::spheres().
|
private |
property id on device
Definition at line 54 of file sphereParticles.hpp.
Referenced by sphereParticles::initializeParticles(), and sphereParticles::propertyId().
|
private |
diameter / boundig sphere size of particles on device
Definition at line 57 of file sphereParticles.hpp.
Referenced by sphereParticles::diameter(), and sphereParticles::initializeParticles().
|
private |
mass of particles field
Definition at line 60 of file sphereParticles.hpp.
Referenced by sphereParticles::initializeParticles(), and sphereParticles::mass().
|
private |
pointField of inertial of particles
Definition at line 63 of file sphereParticles.hpp.
Referenced by sphereParticles::I(), and sphereParticles::initializeParticles().
|
private |
pointField of rotational Velocity of particles on device
Definition at line 66 of file sphereParticles.hpp.
Referenced by sphereParticles::rVelocity(), and sphereParticles::sphereParticles().
|
private |
pointField of rotational acceleration of particles on device
Definition at line 69 of file sphereParticles.hpp.
Referenced by sphereParticles::rAcceleration().
|
private |
boundaries
Definition at line 72 of file sphereParticles.hpp.
|
private |
rotational velocity integrator
Definition at line 75 of file sphereParticles.hpp.
Referenced by sphereParticles::rVelIntegration(), and sphereParticles::sphereParticles().
|
private |
timer for acceleration computations
Definition at line 78 of file sphereParticles.hpp.
Referenced by sphereParticles::accelerationTimer().
|
private |
timer for integration computations (prediction step)
Definition at line 81 of file sphereParticles.hpp.
|
private |
timer for integration computations (correction step)
Definition at line 84 of file sphereParticles.hpp.
Referenced by sphereParticles::intCorrectTimer().
|
private |
Definition at line 86 of file sphereParticles.hpp.