OpenLB 1.7
|
The class superParticleSystem is the basis for particulate flows within OpenLB. More...
#include <superParticleSystem3D.h>
Public Types | |
enum | particleProperties : unsigned short { position = 1 , velocity = 2 , radius = 4 , mass = 8 , force = 16 , storeForce = 32 } |
Public Types inherited from olb::SuperStructure< T, 3 > | |
using | value_t |
Public Member Functions | |
SuperParticleSystem3D (CuboidGeometry3D< T > &cuboidGeometry, LoadBalancer< T > &loadBalancer, SuperGeometry< T, 3 > &) | |
Constructor for SuperParticleSystem. | |
SuperParticleSystem3D (SuperGeometry< T, 3 > &) | |
SuperParticleSystem3D (SuperParticleSystem3D< T, PARTICLETYPE > &spSys) | |
Copy Constructor for SuperParticleSystem. | |
SuperParticleSystem3D (SuperParticleSystem3D< T, PARTICLETYPE > const &spSys) | |
SuperParticleSystem3D (SuperParticleSystem3D< T, PARTICLETYPE > &&spSys) | |
Move Constructor for SuperParticleSystem. | |
~SuperParticleSystem3D () override | |
Destructor. | |
void | addParticle (PARTICLETYPE< T > &p) |
Add a Particle to SuperParticleSystem. | |
void | addParticle (IndicatorF3D< T > &ind, T mas, T rad, int no=1, std::vector< T > vel={0., 0., 0.}) |
Add a number of identical particles randomly distributed in a given IndicatorF3D. | |
void | addParticle (IndicatorF3D< T > &ind, T mas, T rad, int no, int id, std::vector< T > vel, std::vector< T > dMoment, std::vector< T > aVel, std::vector< T > torque, T magnetisation, int sActivity) |
void | addParticle (IndicatorF3D< T > &ind, std::set< int > material, T mas, T rad, int no=1, std::vector< T > vel={0., 0., 0.}) |
Add a number of identical particles randomly distributed in a given IndicatorF3D and in given Material Number. | |
void | addHL3DParticle (IndicatorF3D< T > &ind, std::set< int > material, T mas, T rad, int no=1, std::vector< T > vel={0., 0., 0.}, T surface=1., T volume=1.) |
void | addParticle (IndicatorF3D< T > &ind, std::set< int > material, T mas, T rad, int no, int id, std::vector< T > vel, std::vector< T > dMoment, std::vector< T > aVel, std::vector< T > torque, T magnetisation, int sActivity) |
void | addParticle (std::set< int > material, int no, T mas, T rad, std::vector< T > vel={0., 0., 0.}) |
Add a number of identical particles randomly distributed in a given Material Number. | |
void | addParticleEquallyDistributed (IndicatorCuboid3D< T > &cuboid, T pMass, T pRad, int nox, int noy, int noz, std::vector< T > vel={0., 0., 0.}) |
Add a number of identical particles equally distributed in a given Material Number. | |
void | addParticleEquallyDistributed (IndicatorCuboid3D< T > &cuboid, int nox, int noy, int noz, PARTICLETYPE< T > &p) |
template<typename DESCRIPTOR > | |
void | generateParticlesCircleInletMassConcentration (IndicatorCircle3D< T > &indicatorCircle, T particleMassConcentration, T charPhysVelocity, T conversionFactorTime, SuperLatticeInterpPhysVelocity3D< T, DESCRIPTOR > &getVel, PARTICLETYPE< T > &p, std::set< int > material, int iT, T &particlesPerPhyTimeStep, std::vector< T > &inletVec, std::deque< std::vector< T > > &posDeq, int deqSize) |
Generates particle at a circle shaped inlet, amount given by mass concentration in feedstream. | |
void | addParticlesFromFile (std::string name, T mass, T radius) |
Add particles form a File. Save using saveToFile(std::string name) | |
void | addParticlesFromParaviewFile (std::string name) |
Add particles form a File. Save using saveToFile(std::string name) | |
void | addTracerParticle (IndicatorF3D< T > &ind, int idTP, T mas, T rad, int noTP=1, std::vector< T > vel={0., 0., 0.}) |
Add a number of particles with a certain ID (TracerParticle) equally distributed in a given IndicatorF3D. | |
void | addParticleBoxMuller (IndicatorF3D< T > &ind, T partRho, T mu, T sigma, int no=1, T appProb=1., std::vector< T > vel={0., 0., 0.}) |
Add a number of nonidentical particles with normally distributed radius (Box-Muller Method) in a given IndicatorF3D with specific appearance probability. | |
void | clearParticles () |
Removes all particles from System. | |
void | addParticleWithDistance (IndicatorCuboid3D< T > &ind, T pMass, T pRad, std::vector< T > vel, T conc, T minDist, bool checkDist) |
Generates particles with specific volume concentration conc equally and randomly distributed in given IndicatorCuboid maintaining a minimum distance between each other. | |
void | simulate (T dT, bool scale=false) |
Integrate on Timestep dT, scale = true keeps the particle velocity in stable range. | |
void | simulate (T dT, std::set< int > sActivityOfFreeParticle, bool scale=false) |
void | simulateWithTwoWayCoupling_Mathias (T dT, ForwardCouplingModel< T, PARTICLETYPE > &forwardCoupling, BackCouplingModel< T, PARTICLETYPE > &backCoupling, int material, int subSteps=1, bool resetExternalField=true, bool scale=false) |
Integrate on Timestep dT with two-way coupling, scale = true keeps the particle velocity in stable range. | |
void | simulateWithTwoWayCoupling_Davide (T dT, ForwardCouplingModel< T, PARTICLETYPE > &forwardCoupling, BackCouplingModel< T, PARTICLETYPE > &backCoupling, int material, int subSteps=1, bool resetExternalField=true, bool scale=false) |
void | setParticlesVelRandom (T velFactor) |
Gives random velocity to all particles. | |
void | setParticlesPosRandom (T posFactor) |
Changes particle positions randomly. | |
void | setParticlesPosRandom (T posFactorX, T posFactorY, T posFactorZ) |
void | setMagneticParticlesdMomRandom () |
Gives random dipolemoment orientation to all MagneticParticle3D. | |
void | setMagneticParticles (std::vector< T > dMoment, std::vector< T > vel, std::vector< T > aVel, std::vector< T > torque, T magnetisation) |
Gives specific attributes to all MagneticParticle3D. | |
void | setMagneticParticles (std::vector< T > dMoment, std::vector< T > vel, std::vector< T > aVel, std::vector< T > torque, T magnetisation, int sActivity) |
void | prepareAgglomerates () |
Agglomerate detection functions: Todo: enable for parallel mode Initializes an empty agglomerate list in every particleSystem3D. | |
void | initAggloParticles () |
Adds new generated particles to the list of non agglomerated Particles. | |
void | findAgglomerates (int iT, int itVtkOutputMagParticles) |
Detects and manages particle agglomerates. | |
bool | particleSActivityTest (int sActivity) |
Tests if particles with specific sActivity exist. | |
void | setOverlap (T) |
Set overlap of ParticleSystems, overlap has to be in lattice units particle system _overlap+1 <= _superGeometry.getOverlap() | |
T | getOverlap () |
Get overlap of ParticleSystems. | |
void | saveToFile (std::string name) |
Save Particles to file. Add using addParticlesFromFile(std::string name, T mass, T radius);. | |
int | globalNumOfParticles () |
Get global number of particles. | |
int | globalNumOfShadowParticles () |
Get global number of shadow particles (particles hold in overlap) | |
int | globalNumOfActiveParticles () |
Get global number of active particles. | |
int | rankNumOfParticles () |
Get number of particles computed on this node. | |
int | rankNumOfShadowParticles () |
Get number of shadow particles computed on this node. | |
int | rankNumOfActiveParticles () |
Get number of active particles computed on this node. | |
int | rankNumOfTracerParticles () |
Get number of TracerParticles computed on this node. | |
int | globalNumOfTracerParticles () |
Get number of TracerParticles computed on this node. | |
std::vector< ParticleSystem3D< T, PARTICLETYPE > * > | getParticleSystems () |
Get ParticleSystems. | |
std::vector< ParticleSystem3D< T, PARTICLETYPE > * > & | getPSystems () |
Get ParticleSystems. | |
ParticleSystem3D< T, PARTICLETYPE > & | operator[] (int i) |
Get a ParticleSystem. | |
std::vector< int > | numOfForces () |
Get number of linked Forces. | |
int | numOfPSystems () |
Get number of ParticleSystems. | |
int | countMaterial (int mat) |
Get number of particles in the vicinity of material number mat. | |
void | addForce (std::shared_ptr< Force3D< T, PARTICLETYPE > > f) |
Add a force to system. | |
void | addBoundary (std::shared_ptr< Boundary3D< T, PARTICLETYPE > > b) |
Add a boundary to system. | |
void | addParticleOperation (std::shared_ptr< ParticleOperation3D< T, PARTICLETYPE > > o) |
Add an operation to system. | |
template<typename DESCRIPTOR > | |
void | setVelToFluidVel (SuperLatticeInterpPhysVelocity3D< T, DESCRIPTOR > &) |
Set particle velocity to fluid velocity (e.g. as initial condition. | |
void | setVelToAnalyticalVel (AnalyticalConst3D< T, T > &) |
Set particle velocity to analytical velocity (e.g. as initial condition. | |
void | setContactDetection (ContactDetection< T, PARTICLETYPE > &contactDetection) |
Set contact detection algorithm for particle-particle contact. Not yet implemented. | |
void | setContactDetectionForPSys (ContactDetection< T, PARTICLETYPE > &contactDetection, int pSysNr) |
Set contact detection algorithm for particle-particle contact. Not yet implemented. | |
void | print () |
void | printDeep (std::string message="") |
void | print (std::list< int > mat) |
console output number of particles at different material numbers mat | |
void | captureEscapeRate (std::list< int > mat) |
console output of escape (E), capture (C) rate for material numbers mat | |
void | diffEscapeRate (std::list< int > mat, int &globalPSum, int &pSumOutlet, T &diffEscapeRate, T &maxDiffEscapeRate, int iT, int iTConsole, T genPartPerTimeStep=0) |
Console output of differential escape rate for material numbers mat (e.g. | |
void | diffEscapeRate (std::list< int > mat, int &globalPSum, int &pSumOutlet, T &diffEscapeRate, T &maxDiffEscapeRate, int iT, int iTConsole, T genPartPerTimeStep, T &avDiffEscapeRate, T latticeTimeStart, T latticeTimeEnd) |
void | getOutput (std::string filename, int iT, T conversionFactorTime, unsigned short particleProperties) |
Get Output of particleMovement Write the data of the particle movement into an txtFile. | |
template<typename DESCRIPTOR > | |
T | getStokes (UnitConverter< T, DESCRIPTOR > &conv, T pRho, T rad) |
returns the Stokes number | |
bool | findCuboid (PARTICLETYPE< T > &, int overlap) |
Find the cuboid the particle is on. | |
bool | findCuboid (PARTICLETYPE< T > &) |
bool | checkCuboid (PARTICLETYPE< T > &p, T overlap) |
Check if particle is still on cuboid. | |
bool | checkCuboid (PARTICLETYPE< T > &p, T overlap, int iC) |
std::list< int > & | getRankNeighbours () |
void | setVelToFluidVel (SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19<> > &fVel) |
void | setVelToFluidVel (SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19<> > &fVel) |
void | setVelToFluidVel (SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19< descriptors::FORCE > > &fVel) |
void | setVelToFluidVel (SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19< descriptors::FORCE > > &fVel) |
void | addParticle (IndicatorF3D< double > &ind, double mas, double rad, int no, int id, std::vector< double > vel, std::vector< double > dMoment, std::vector< double > aVel, std::vector< double > torque, double magnetisation, int sActivity) |
void | addParticle (IndicatorF3D< double > &ind, double mas, double rad, int no, int id, std::vector< double > vel, std::vector< double > dMoment, std::vector< double > aVel, std::vector< double > torque, double magnetisation, int sActivity) |
void | addParticle (IndicatorF3D< double > &ind, std::set< int > material, double mas, double rad, int no, int id, std::vector< double > vel, std::vector< double > dMoment, std::vector< double > aVel, std::vector< double > torque, double magnetisation, int sActivity) |
void | setMagneticParticlesdMomRandom () |
void | setMagneticParticles (std::vector< double > dMoment, std::vector< double > vel, std::vector< double > aVel, std::vector< double > torque, double magnetisation, int sActivity) |
void | prepareAgglomerates () |
void | initAggloParticles () |
void | findAgglomerates (int iT, int itVtkOutputMagParticles) |
bool | particleSActivityTest (int sActivity) |
void | simulate (double dT, std::set< int > sActivityOfFreeParticle, bool scale) |
void | simulateWithTwoWayCoupling_Mathias (double dT, ForwardCouplingModel< double, MagneticParticle3D > &forwardCoupling, BackCouplingModel< double, MagneticParticle3D > &backCoupling, int material, int subSteps, bool resetExternalField, bool scale) |
void | simulateWithTwoWayCoupling_Davide (double dT, ForwardCouplingModel< double, MagneticParticle3D > &forwardCoupling, BackCouplingModel< double, MagneticParticle3D > &backCoupling, int material, int subSteps, bool resetExternalField, bool scale) |
void | simulate (double dT, std::set< int > sActivityOfParticle, bool scale) |
bool | particleSActivityTest (int sActivity) |
void | addParticle (IndicatorF3D< double > &ind, double mas, double rad, int no, int id, std::vector< double > vel, std::vector< double > dMoment, std::vector< double > aVel, std::vector< double > torque, double magnetisation, int sActivity) |
void | addParticle (IndicatorF3D< double > &ind, std::set< int > material, double mas, double rad, int no, int id, std::vector< double > vel, std::vector< double > dMoment, std::vector< double > aVel, std::vector< double > torque, double magnetisation, int sActivity) |
void | setMagneticParticlesdMomRandom () |
void | setMagneticParticles (std::vector< double > dMoment, std::vector< double > vel, std::vector< double > aVel, std::vector< double > torque, double magnetisation) |
void | setMagneticParticles (std::vector< double > dMoment, std::vector< double > vel, std::vector< double > aVel, std::vector< double > torque, double magnetisation, int sActivity) |
void | prepareAgglomerates () |
void | initAggloParticles () |
void | findAgglomerates (int iT, int itVtkOutputMagParticles) |
Public Member Functions inherited from olb::SuperStructure< T, 3 > | |
virtual | ~SuperStructure () |
Virtual Destructor for inheritance. | |
SuperStructure (CuboidGeometry< T, D > &cuboidGeometry, LoadBalancer< T > &loadBalancer, int overlap=2) | |
Construction of a super structure. | |
SuperStructure (int overlap=1) | |
Default Constructor for empty SuperStructure. | |
CuboidGeometry< T, D > & | getCuboidGeometry () |
Read and write access to cuboid geometry. | |
CuboidGeometry< T, D > const & | getCuboidGeometry () const |
Read only access to cuboid geometry. | |
int | getOverlap () |
Read and write access to the overlap. | |
int | getOverlap () const |
Read only access to the overlap. | |
LoadBalancer< T > & | getLoadBalancer () |
Read and write access to the load balancer. | |
LoadBalancer< T > const & | getLoadBalancer () const |
Read only access to the load balancer. | |
virtual void | communicate () |
void | forCorePhysLocations (F f) const |
Iterate over discrete physical locations. | |
void | forCorePhysLocations (PhysR< T, D > min, PhysR< T, D > max, F f) const |
Iterate over discrete physical locations between min and max. | |
void | forCoreSpatialLocations (F f) const |
Iterate over spatial locations NOTE: Based on physical locations (as opposed to its blockStructure version) | |
void | forCoreSpatialLocations (PhysR< T, D > min, PhysR< T, D > max, F f) const |
Iterate over spatial locations between min and max NOTE: Based on physical locations (as opposed to its blockStructure version) | |
Public Attributes | |
time_t | _stopSorting |
Protected Member Functions | |
void | init () |
Init the SuperParticleSystem. | |
void | updateParticleDistribution () |
Redistribute particles on compute nodes. | |
int | countLocMaterial (int mat) |
void | addShadowParticle (PARTICLETYPE< T > &p) |
Add a shadow particle to system. | |
Protected Attributes | |
OstreamManager | clout |
std::vector< ParticleSystem3D< T, PARTICLETYPE > * > | _pSystems |
The particleSystems. One per cuboid. | |
SuperGeometry< T, 3 > & | _superGeometry |
The superGeometry. | |
std::list< int > | _rankNeighbours |
Rank of neighboring cuboids. | |
std::vector< std::vector< int > > | _cuboidNeighbours |
Numbers of neighboring cuboids. | |
T | _overlap |
std::map< int, std::vector< double > > | _send_buffer |
temporary variables | |
std::multimap< int, PARTICLETYPE< T > > | _relocate |
std::multimap< int, PARTICLETYPE< T > > | _relocateShadow |
Protected Attributes inherited from olb::SuperStructure< T, 3 > | |
CuboidGeometry< T, D > & | _cuboidGeometry |
The grid structure is stored here. | |
LoadBalancer< T > & | _loadBalancer |
Distribution of the cuboids of the cuboid structure. | |
int | _overlap |
Size of ghost cell layer (must be greater than 1 and greater_overlapBC, default =1) | |
OstreamManager | clout |
class specific output stream | |
Friends | |
class | SuperParticleSysVtuWriter< T, PARTICLETYPE > |
class | SuperParticleSysVtuWriterMag< T > |
The class superParticleSystem is the basis for particulate flows within OpenLB.
Use one of the constructors to instantiate a superParticleSystem. This creates one particleSystem for each cuboid according to the structure found in cuboid Geometry.
Definition at line 79 of file superParticleSystem3D.h.
enum olb::SuperParticleSystem3D::particleProperties : unsigned short |
Enumerator | |
---|---|
position | |
velocity | |
radius | |
mass | |
force | |
storeForce |
Definition at line 316 of file superParticleSystem3D.h.
olb::SuperParticleSystem3D< T, PARTICLETYPE >::SuperParticleSystem3D | ( | CuboidGeometry3D< T > & | cuboidGeometry, |
LoadBalancer< T > & | loadBalancer, | ||
SuperGeometry< T, 3 > & | superGeometry ) |
Constructor for SuperParticleSystem.
Definition at line 47 of file superParticleSystem3D.hh.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::init().
olb::SuperParticleSystem3D< T, PARTICLETYPE >::SuperParticleSystem3D | ( | SuperGeometry< T, 3 > & | superGeometry | ) |
Definition at line 60 of file superParticleSystem3D.hh.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::init().
olb::SuperParticleSystem3D< T, PARTICLETYPE >::SuperParticleSystem3D | ( | SuperParticleSystem3D< T, PARTICLETYPE > & | spSys | ) |
Copy Constructor for SuperParticleSystem.
Definition at line 127 of file superParticleSystem3D.hh.
olb::SuperParticleSystem3D< T, PARTICLETYPE >::SuperParticleSystem3D | ( | SuperParticleSystem3D< T, PARTICLETYPE > const & | spSys | ) |
Definition at line 140 of file superParticleSystem3D.hh.
olb::SuperParticleSystem3D< T, PARTICLETYPE >::SuperParticleSystem3D | ( | SuperParticleSystem3D< T, PARTICLETYPE > && | spSys | ) |
Move Constructor for SuperParticleSystem.
Definition at line 153 of file superParticleSystem3D.hh.
|
inlineoverride |
Destructor.
Definition at line 96 of file superParticleSystem3D.h.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::_pSystems.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addBoundary | ( | std::shared_ptr< Boundary3D< T, PARTICLETYPE > > | b | ) |
Add a boundary to system.
Definition at line 2187 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addForce | ( | std::shared_ptr< Force3D< T, PARTICLETYPE > > | f | ) |
Add a force to system.
Definition at line 2178 of file superParticleSystem3D.hh.
References olb::ParticleSystem3D< T, PARTICLETYPE >::addForce().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addHL3DParticle | ( | IndicatorF3D< T > & | ind, |
std::set< int > | material, | ||
T | mas, | ||
T | rad, | ||
int | no = 1, | ||
std::vector< T > | vel = {0., 0., 0.}, | ||
T | surface = 1., | ||
T | volume = 1. ) |
Definition at line 1302 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::addParticle | ( | IndicatorF3D< double > & | ind, |
double | mas, | ||
double | rad, | ||
int | no, | ||
int | id, | ||
std::vector< double > | vel, | ||
std::vector< double > | dMoment, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation, | ||
int | sActivity ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::addParticle | ( | IndicatorF3D< double > & | ind, |
double | mas, | ||
double | rad, | ||
int | no, | ||
int | id, | ||
std::vector< double > | vel, | ||
std::vector< double > | dMoment, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation, | ||
int | sActivity ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::addParticle | ( | IndicatorF3D< double > & | ind, |
double | mas, | ||
double | rad, | ||
int | no, | ||
int | id, | ||
std::vector< double > | vel, | ||
std::vector< double > | dMoment, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation, | ||
int | sActivity ) |
Definition at line 1375 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::addParticle | ( | IndicatorF3D< double > & | ind, |
std::set< int > | material, | ||
double | mas, | ||
double | rad, | ||
int | no, | ||
int | id, | ||
std::vector< double > | vel, | ||
std::vector< double > | dMoment, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation, | ||
int | sActivity ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::addParticle | ( | IndicatorF3D< double > & | ind, |
std::set< int > | material, | ||
double | mas, | ||
double | rad, | ||
int | no, | ||
int | id, | ||
std::vector< double > | vel, | ||
std::vector< double > | dMoment, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation, | ||
int | sActivity ) |
Definition at line 1423 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
|
inline |
Definition at line 118 of file superParticleSystem3D.h.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticle().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticle | ( | IndicatorF3D< T > & | ind, |
std::set< int > | material, | ||
T | mas, | ||
T | rad, | ||
int | no = 1, | ||
std::vector< T > | vel = {0., 0., 0.} ) |
Add a number of identical particles randomly distributed in a given IndicatorF3D and in given Material Number.
Definition at line 1232 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
|
inline |
Definition at line 105 of file superParticleSystem3D.h.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticle().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticle | ( | IndicatorF3D< T > & | ind, |
T | mas, | ||
T | rad, | ||
int | no = 1, | ||
std::vector< T > | vel = {0., 0., 0.} ) |
Add a number of identical particles randomly distributed in a given IndicatorF3D.
Definition at line 1121 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticle | ( | PARTICLETYPE< T > & | p | ) |
Add a Particle to SuperParticleSystem.
Definition at line 1103 of file superParticleSystem3D.hh.
References olb::singleton::mpi().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticle | ( | std::set< int > | material, |
int | no, | ||
T | mas, | ||
T | rad, | ||
std::vector< T > | vel = {0., 0., 0.} ) |
Add a number of identical particles randomly distributed in a given Material Number.
Definition at line 1168 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::barrier(), olb::singleton::MpiManager::bCast(), olb::singleton::MpiManager::getRank(), olb::util::max(), olb::util::min(), and olb::singleton::mpi().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticleBoxMuller | ( | IndicatorF3D< T > & | ind, |
T | partRho, | ||
T | mu, | ||
T | sigma, | ||
int | no = 1, | ||
T | appProb = 1., | ||
std::vector< T > | vel = {0., 0., 0.} ) |
Add a number of nonidentical particles with normally distributed radius (Box-Muller Method) in a given IndicatorF3D with specific appearance probability.
Definition at line 1987 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::util::cos(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), olb::util::log(), M_PI, olb::singleton::mpi(), olb::util::pow(), and olb::util::sqrt().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticleEquallyDistributed | ( | IndicatorCuboid3D< T > & | cuboid, |
int | nox, | ||
int | noy, | ||
int | noz, | ||
PARTICLETYPE< T > & | p ) |
Definition at line 1892 of file superParticleSystem3D.hh.
References olb::IndicatorF3D< S >::getMax(), and olb::IndicatorF3D< S >::getMin().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticleEquallyDistributed | ( | IndicatorCuboid3D< T > & | cuboid, |
T | pMass, | ||
T | pRad, | ||
int | nox, | ||
int | noy, | ||
int | noz, | ||
std::vector< T > | vel = {0., 0., 0.} ) |
Add a number of identical particles equally distributed in a given Material Number.
Definition at line 1848 of file superParticleSystem3D.hh.
References olb::IndicatorF3D< S >::getMax(), and olb::IndicatorF3D< S >::getMin().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticleOperation | ( | std::shared_ptr< ParticleOperation3D< T, PARTICLETYPE > > | o | ) |
Add an operation to system.
Definition at line 2196 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticlesFromFile | ( | std::string | name, |
T | mass, | ||
T | radius ) |
Add particles form a File. Save using saveToFile(std::string name)
Definition at line 2245 of file superParticleSystem3D.hh.
References olb::createFileName(), and olb::util::nearZero().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticlesFromParaviewFile | ( | std::string | name | ) |
Add particles form a File. Save using saveToFile(std::string name)
Definition at line 2271 of file superParticleSystem3D.hh.
References olb::createFileName(), and olb::util::nearZero().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addParticleWithDistance | ( | IndicatorCuboid3D< T > & | ind, |
T | pMass, | ||
T | pRad, | ||
std::vector< T > | vel, | ||
T | conc, | ||
T | minDist, | ||
bool | checkDist ) |
Generates particles with specific volume concentration conc equally and randomly distributed in given IndicatorCuboid maintaining a minimum distance between each other.
Be aware that long calculation time can occur because of minDist check.
Definition at line 2057 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), M_PI, olb::singleton::mpi(), olb::norm(), and olb::util::pow().
|
protected |
Add a shadow particle to system.
Definition at line 2151 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::addTracerParticle | ( | IndicatorF3D< T > & | ind, |
int | idTP, | ||
T | mas, | ||
T | rad, | ||
int | noTP = 1, | ||
std::vector< T > | vel = {0., 0., 0.} ) |
Add a number of particles with a certain ID (TracerParticle) equally distributed in a given IndicatorF3D.
Definition at line 1939 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::bCast(), olb::IndicatorF3D< S >::getMax(), olb::IndicatorF3D< S >::getMin(), olb::singleton::MpiManager::getRank(), olb::singleton::mpi(), and olb::util::nearZero().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::captureEscapeRate | ( | std::list< int > | mat | ) |
console output of escape (E), capture (C) rate for material numbers mat
Definition at line 201 of file superParticleSystem3D.hh.
bool olb::SuperParticleSystem3D< T, PARTICLETYPE >::checkCuboid | ( | PARTICLETYPE< T > & | p, |
T | overlap ) |
Check if particle is still on cuboid.
Definition at line 834 of file superParticleSystem3D.hh.
bool olb::SuperParticleSystem3D< T, PARTICLETYPE >::checkCuboid | ( | PARTICLETYPE< T > & | p, |
T | overlap, | ||
int | iC ) |
Definition at line 841 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::clearParticles | ( | ) |
Removes all particles from System.
Definition at line 2330 of file superParticleSystem3D.hh.
|
protected |
Definition at line 691 of file superParticleSystem3D.hh.
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::countMaterial | ( | int | mat | ) |
Get number of particles in the vicinity of material number mat.
Definition at line 701 of file superParticleSystem3D.hh.
References olb::singleton::mpi(), and olb::singleton::MpiManager::reduceAndBcast().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::diffEscapeRate | ( | std::list< int > | mat, |
int & | globalPSum, | ||
int & | pSumOutlet, | ||
T & | diffEscapeRate, | ||
T & | maxDiffEscapeRate, | ||
int | iT, | ||
int | iTConsole, | ||
T | genPartPerTimeStep, | ||
T & | avDiffEscapeRate, | ||
T | latticeTimeStart, | ||
T | latticeTimeEnd ) |
Definition at line 271 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::diffEscapeRate | ( | std::list< int > | mat, |
int & | globalPSum, | ||
int & | pSumOutlet, | ||
T & | diffEscapeRate, | ||
T & | maxDiffEscapeRate, | ||
int | iT, | ||
int | iTConsole, | ||
T | genPartPerTimeStep = 0 ) |
Console output of differential escape rate for material numbers mat (e.g.
material of outlet). Initialization to be done for t=0: globalPSum = 0, pSumOutlet = 0, diffEscapeRate = 0, maxDiffEscapeRate = 0 Writes maximal escape rate in maxDiffEscapeRate and average rate between tStart and tEnd in avDiffEscapeRate Set genPartPerTimeStep to simulate a steady state when no new particles are generated
Definition at line 215 of file superParticleSystem3D.hh.
|
inline |
Detects and manages particle agglomerates.
Definition at line 212 of file superParticleSystem3D.h.
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::findAgglomerates | ( | int | iT, |
int | itVtkOutputMagParticles ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::findAgglomerates | ( | int | iT, |
int | itVtkOutputMagParticles ) |
Definition at line 1828 of file superParticleSystem3D.hh.
bool olb::SuperParticleSystem3D< T, PARTICLETYPE >::findCuboid | ( | PARTICLETYPE< T > & | p | ) |
Definition at line 809 of file superParticleSystem3D.hh.
bool olb::SuperParticleSystem3D< T, PARTICLETYPE >::findCuboid | ( | PARTICLETYPE< T > & | p, |
int | overlap ) |
Find the cuboid the particle is on.
Definition at line 815 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::generateParticlesCircleInletMassConcentration | ( | IndicatorCircle3D< T > & | indicatorCircle, |
T | particleMassConcentration, | ||
T | charPhysVelocity, | ||
T | conversionFactorTime, | ||
SuperLatticeInterpPhysVelocity3D< T, DESCRIPTOR > & | getVel, | ||
PARTICLETYPE< T > & | p, | ||
std::set< int > | material, | ||
int | iT, | ||
T & | particlesPerPhyTimeStep, | ||
std::vector< T > & | inletVec, | ||
std::deque< std::vector< T > > & | posDeq, | ||
int | deqSize ) |
Generates particle at a circle shaped inlet, amount given by mass concentration in feedstream.
It is taken care that the particles do not overlap during initialization, therefore they are saved in posDeq with size deqSize. The parameters particlesPerPhyTimeStep and inletVec are initialized for iT = 0 and given back by reference. They can be defined by an arbitrary value.
Definition at line 1497 of file superParticleSystem3D.hh.
References olb::crossProduct3D(), olb::IndicatorCircle3D< S >::getCenter(), olb::IndicatorCircle3D< S >::getNormal(), olb::IndicatorCircle3D< S >::getRadius(), olb::singleton::MpiManager::getRank(), M_PI, olb::singleton::mpi(), olb::normalize(), olb::util::pow(), and olb::util::sqrt().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::getOutput | ( | std::string | filename, |
int | iT, | ||
T | conversionFactorTime, | ||
unsigned short | particleProperties ) |
Get Output of particleMovement Write the data of the particle movement into an txtFile.
initialize Parameters for the desired ParticleOutput: ID, Radius, Position, Velocity, Force, storeForces
initialize iteration Parameters for the loops
setPrecision for the decimal places in the txtOutputFile
set size of list in correlation to the number of TracerParticles
get Information about each Particle in each particleSystem
check whether it is a tracerParticle(!=0) or not (==0)
loop for each coordinate [x,y,z]
prepare data vectors for parallel computing (mpi)
loop for each coordinate [x,y,z]
Particle Output to txtFile just on main process ID (==0)
write headers of each column at timeStep zero after header name, there is the number of the column
write the results in regart to the above defined headers
Definition at line 340 of file superParticleSystem3D.hh.
T olb::SuperParticleSystem3D< T, PARTICLETYPE >::getOverlap | ( | ) |
Get overlap of ParticleSystems.
Definition at line 621 of file superParticleSystem3D.hh.
std::vector< ParticleSystem3D< T, PARTICLETYPE > * > olb::SuperParticleSystem3D< T, PARTICLETYPE >::getParticleSystems | ( | ) |
Get ParticleSystems.
Definition at line 2165 of file superParticleSystem3D.hh.
std::vector< ParticleSystem3D< T, PARTICLETYPE > * > & olb::SuperParticleSystem3D< T, PARTICLETYPE >::getPSystems | ( | ) |
Get ParticleSystems.
Definition at line 482 of file superParticleSystem3D.hh.
|
inline |
Definition at line 337 of file superParticleSystem3D.h.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::_rankNeighbours.
|
inline |
returns the Stokes number
Definition at line 307 of file superParticleSystem3D.h.
References olb::UnitConverter< T, DESCRIPTOR >::getCharPhysLength(), olb::UnitConverter< T, DESCRIPTOR >::getCharPhysVelocity(), olb::UnitConverter< T, DESCRIPTOR >::getPhysDensity(), olb::UnitConverter< T, DESCRIPTOR >::getPhysViscosity(), and olb::util::pow().
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::globalNumOfActiveParticles | ( | ) |
Get global number of active particles.
Definition at line 713 of file superParticleSystem3D.hh.
References olb::singleton::mpi(), and olb::singleton::MpiManager::reduceAndBcast().
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::globalNumOfParticles | ( | ) |
Get global number of particles.
Definition at line 633 of file superParticleSystem3D.hh.
References olb::singleton::mpi(), and olb::singleton::MpiManager::reduceAndBcast().
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::globalNumOfShadowParticles | ( | ) |
Get global number of shadow particles (particles hold in overlap)
Definition at line 649 of file superParticleSystem3D.hh.
References olb::singleton::mpi(), and olb::singleton::MpiManager::reduceAndBcast().
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::globalNumOfTracerParticles | ( | ) |
Get number of TracerParticles computed on this node.
Definition at line 725 of file superParticleSystem3D.hh.
References olb::singleton::mpi(), and olb::singleton::MpiManager::reduceAndBcast().
|
protected |
Init the SuperParticleSystem.
Definition at line 73 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::getRank(), olb::singleton::MpiManager::getSize(), and olb::singleton::mpi().
|
inline |
Adds new generated particles to the list of non agglomerated Particles.
Definition at line 210 of file superParticleSystem3D.h.
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::initAggloParticles | ( | ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::initAggloParticles | ( | ) |
Definition at line 1820 of file superParticleSystem3D.hh.
std::vector< int > olb::SuperParticleSystem3D< T, PARTICLETYPE >::numOfForces | ( | ) |
Get number of linked Forces.
Definition at line 780 of file superParticleSystem3D.hh.
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::numOfPSystems | ( | ) |
Get number of ParticleSystems.
Definition at line 627 of file superParticleSystem3D.hh.
ParticleSystem3D< T, PARTICLETYPE > & olb::SuperParticleSystem3D< T, PARTICLETYPE >::operator[] | ( | int | i | ) |
Get a ParticleSystem.
Definition at line 2171 of file superParticleSystem3D.hh.
|
inline |
Tests if particles with specific sActivity exist.
Definition at line 215 of file superParticleSystem3D.h.
bool olb::SuperParticleSystem3D< double, MagneticParticle3D >::particleSActivityTest | ( | int | sActivity | ) |
bool olb::SuperParticleSystem3D< double, MagneticParticle3D >::particleSActivityTest | ( | int | sActivity | ) |
Definition at line 601 of file superParticleSystem3D.hh.
|
inline |
Agglomerate detection functions: Todo: enable for parallel mode Initializes an empty agglomerate list in every particleSystem3D.
Definition at line 208 of file superParticleSystem3D.h.
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::prepareAgglomerates | ( | ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::prepareAgglomerates | ( | ) |
Definition at line 1811 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::print | ( | ) |
Definition at line 166 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::print | ( | std::list< int > | mat | ) |
console output number of particles at different material numbers mat
Definition at line 187 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::printDeep | ( | std::string | message = "" | ) |
Definition at line 179 of file superParticleSystem3D.hh.
References olb::singleton::mpi().
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::rankNumOfActiveParticles | ( | ) |
Get number of active particles computed on this node.
Definition at line 681 of file superParticleSystem3D.hh.
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::rankNumOfParticles | ( | ) |
Get number of particles computed on this node.
Definition at line 661 of file superParticleSystem3D.hh.
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::rankNumOfShadowParticles | ( | ) |
Get number of shadow particles computed on this node.
Definition at line 671 of file superParticleSystem3D.hh.
int olb::SuperParticleSystem3D< T, PARTICLETYPE >::rankNumOfTracerParticles | ( | ) |
Get number of TracerParticles computed on this node.
Definition at line 737 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::saveToFile | ( | std::string | name | ) |
Save Particles to file. Add using addParticlesFromFile(std::string name, T mass, T radius);.
Definition at line 2205 of file superParticleSystem3D.hh.
References olb::createFileName(), olb::singleton::MpiManager::getRank(), olb::singleton::MpiManager::getSize(), and olb::singleton::mpi().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setContactDetection | ( | ContactDetection< T, PARTICLETYPE > & | contactDetection | ) |
Set contact detection algorithm for particle-particle contact. Not yet implemented.
Definition at line 2338 of file superParticleSystem3D.hh.
References olb::ContactDetection< T, PARTICLETYPE >::getName().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setContactDetectionForPSys | ( | ContactDetection< T, PARTICLETYPE > & | contactDetection, |
int | pSysNr ) |
Set contact detection algorithm for particle-particle contact. Not yet implemented.
Definition at line 2349 of file superParticleSystem3D.hh.
References olb::ContactDetection< T, PARTICLETYPE >::getName().
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::setMagneticParticles | ( | std::vector< double > | dMoment, |
std::vector< double > | vel, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation ) |
Definition at line 1767 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::setMagneticParticles | ( | std::vector< double > | dMoment, |
std::vector< double > | vel, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation, | ||
int | sActivity ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::setMagneticParticles | ( | std::vector< double > | dMoment, |
std::vector< double > | vel, | ||
std::vector< double > | aVel, | ||
std::vector< double > | torque, | ||
double | magnetisation, | ||
int | sActivity ) |
Definition at line 1789 of file superParticleSystem3D.hh.
|
inline |
Gives specific attributes to all MagneticParticle3D.
Definition at line 201 of file superParticleSystem3D.h.
|
inline |
Definition at line 203 of file superParticleSystem3D.h.
|
inline |
Gives random dipolemoment orientation to all MagneticParticle3D.
Definition at line 199 of file superParticleSystem3D.h.
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::setMagneticParticlesdMomRandom | ( | ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::setMagneticParticlesdMomRandom | ( | ) |
Definition at line 1656 of file superParticleSystem3D.hh.
References olb::util::pow(), and olb::util::sqrt().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setOverlap | ( | T | overlap | ) |
Set overlap of ParticleSystems, overlap has to be in lattice units particle system _overlap+1 <= _superGeometry.getOverlap()
Definition at line 614 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setParticlesPosRandom | ( | T | posFactor | ) |
Changes particle positions randomly.
Definition at line 1706 of file superParticleSystem3D.hh.
References olb::util::pow(), and olb::util::sqrt().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setParticlesPosRandom | ( | T | posFactorX, |
T | posFactorY, | ||
T | posFactorZ ) |
Definition at line 1735 of file superParticleSystem3D.hh.
References olb::util::pow(), and olb::util::sqrt().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setParticlesVelRandom | ( | T | velFactor | ) |
Gives random velocity to all particles.
Definition at line 1680 of file superParticleSystem3D.hh.
References olb::util::pow(), and olb::util::sqrt().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setVelToAnalyticalVel | ( | AnalyticalConst3D< T, T > & | aVel | ) |
Set particle velocity to analytical velocity (e.g. as initial condition.
Definition at line 800 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< double, Particle3D >::setVelToFluidVel< descriptors::D3Q19< descriptors::FORCE > > | ( | SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19< descriptors::FORCE > > & | fVel | ) |
Definition at line 66 of file superParticleSystem3D.cpp.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::setVelToFluidVel().
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::setVelToFluidVel< descriptors::D3Q19< descriptors::FORCE > > | ( | SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19< descriptors::FORCE > > & | fVel | ) |
Definition at line 77 of file superParticleSystem3D.cpp.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::setVelToFluidVel().
void olb::SuperParticleSystem3D< double, Particle3D >::setVelToFluidVel< descriptors::D3Q19<> > | ( | SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19<> > & | fVel | ) |
Definition at line 43 of file superParticleSystem3D.cpp.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::setVelToFluidVel().
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::setVelToFluidVel< descriptors::D3Q19<> > | ( | SuperLatticeInterpPhysVelocity3D< double, descriptors::D3Q19<> > & | fVel | ) |
Definition at line 54 of file superParticleSystem3D.cpp.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::setVelToFluidVel().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::setVelToFluidVel | ( | SuperLatticeInterpPhysVelocity3D< T, DESCRIPTOR > & | fVel | ) |
Set particle velocity to fluid velocity (e.g. as initial condition.
Definition at line 791 of file superParticleSystem3D.hh.
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::simulate | ( | double | dT, |
std::set< int > | sActivityOfFreeParticle, | ||
bool | scale ) |
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::simulate | ( | double | dT, |
std::set< int > | sActivityOfParticle, | ||
bool | scale ) |
Definition at line 584 of file superParticleSystem3D.hh.
References olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::simulate | ( | T | dT, |
bool | scale = false ) |
Integrate on Timestep dT, scale = true keeps the particle velocity in stable range.
Definition at line 488 of file superParticleSystem3D.hh.
|
inline |
Definition at line 179 of file superParticleSystem3D.h.
References olb::SuperParticleSystem3D< T, PARTICLETYPE >::simulate().
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::simulateWithTwoWayCoupling_Davide | ( | double | dT, |
ForwardCouplingModel< double, MagneticParticle3D > & | forwardCoupling, | ||
BackCouplingModel< double, MagneticParticle3D > & | backCoupling, | ||
int | material, | ||
int | subSteps, | ||
bool | resetExternalField, | ||
bool | scale ) |
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::simulateWithTwoWayCoupling_Davide | ( | T | dT, |
ForwardCouplingModel< T, PARTICLETYPE > & | forwardCoupling, | ||
BackCouplingModel< T, PARTICLETYPE > & | backCoupling, | ||
int | material, | ||
int | subSteps = 1, | ||
bool | resetExternalField = true, | ||
bool | scale = false ) |
Definition at line 565 of file superParticleSystem3D.hh.
References olb::BackCouplingModel< T, Particle >::communicate().
void olb::SuperParticleSystem3D< double, MagneticParticle3D >::simulateWithTwoWayCoupling_Mathias | ( | double | dT, |
ForwardCouplingModel< double, MagneticParticle3D > & | forwardCoupling, | ||
BackCouplingModel< double, MagneticParticle3D > & | backCoupling, | ||
int | material, | ||
int | subSteps, | ||
bool | resetExternalField, | ||
bool | scale ) |
void olb::SuperParticleSystem3D< T, PARTICLETYPE >::simulateWithTwoWayCoupling_Mathias | ( | T | dT, |
ForwardCouplingModel< T, PARTICLETYPE > & | forwardCoupling, | ||
BackCouplingModel< T, PARTICLETYPE > & | backCoupling, | ||
int | material, | ||
int | subSteps = 1, | ||
bool | resetExternalField = true, | ||
bool | scale = false ) |
Integrate on Timestep dT with two-way coupling, scale = true keeps the particle velocity in stable range.
Definition at line 543 of file superParticleSystem3D.hh.
References olb::BackCouplingModel< T, Particle >::resetExternalField().
|
protected |
Redistribute particles on compute nodes.
Definition at line 852 of file superParticleSystem3D.hh.
References olb::singleton::MpiNonBlockingHelper::allocate(), olb::singleton::MpiManager::barrier(), olb::singleton::MpiNonBlockingHelper::free(), olb::singleton::MpiNonBlockingHelper::get_mpiRequest(), olb::singleton::MpiManager::iSend(), olb::singleton::mpi(), olb::singleton::MpiManager::receive(), and olb::singleton::MpiManager::waitAll().
|
friend |
Definition at line 307 of file superParticleSystem3D.h.
|
friend |
Definition at line 307 of file superParticleSystem3D.h.
|
protected |
Numbers of neighboring cuboids.
Definition at line 354 of file superParticleSystem3D.h.
|
protected |
Definition at line 357 of file superParticleSystem3D.h.
|
protected |
The particleSystems. One per cuboid.
Definition at line 348 of file superParticleSystem3D.h.
|
protected |
Rank of neighboring cuboids.
Definition at line 352 of file superParticleSystem3D.h.
|
protected |
Definition at line 360 of file superParticleSystem3D.h.
|
protected |
Definition at line 361 of file superParticleSystem3D.h.
|
protected |
temporary variables
Definition at line 359 of file superParticleSystem3D.h.
time_t olb::SuperParticleSystem3D< T, PARTICLETYPE >::_stopSorting |
Definition at line 82 of file superParticleSystem3D.h.
|
protected |
The superGeometry.
Definition at line 350 of file superParticleSystem3D.h.
|
mutableprotected |
Definition at line 322 of file superParticleSystem3D.h.