Class for managing spherical particles. More...
Inheritance diagram for sphereParticles:
Collaboration diagram for sphereParticles: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 |
Public Member Functions inherited from particles | |
| 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... | |
Public Member Functions inherited from observer | |
| 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) |
Public Member Functions inherited from demComponent | |
| 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 () |
Protected Member Functions inherited from particles | |
| 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 Public Member Functions inherited from observer | |
| 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.
Here is the call graph for this function:
|
overridedefault |
|
private |
Definition at line 259 of file sphereParticles.cpp.
References pFlow::endl(), fatalErrorInFunction, m, Vector< T, Allocator >::reserve(), and Vector< T, Allocator >::size().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
inlineoverridevirtual |
Implements particles.
Definition at line 199 of file sphereParticles.hpp.
References sphereParticles::mass_.
Referenced by sphereParticles::initializeParticles().
Here is the caller graph for this function:
|
overridevirtual |
before iteration step
Reimplemented from particles.
Definition at line 515 of file sphereParticles.cpp.
References particles::beforeIteration().
Referenced by main().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
iterate particles
Reimplemented from particles.
Definition at line 537 of file sphereParticles.cpp.
References pFlow::sphereParticlesKernels::acceleration(), and particles::iterate().
Referenced by main().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
Implements particles.
Definition at line 581 of file sphereParticles.cpp.
References anyList::emplaceBack().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
|
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.