|
Boundary structure for boundaries used for insertion of particles. More...
#include <InsertionBoundary.h>
Public Member Functions | |
InsertionBoundary () | |
InsertionBoundary (const InsertionBoundary &other) | |
Copy constructor (with deep copy) More... | |
~InsertionBoundary () override | |
Destructor: delete the particle that has to be copied at every insertion. More... | |
virtual BaseParticle * | generateParticle (RNG &random) |
Sets the properties of the InsertionBoundary for a single particle type / virtual void set(BaseParticle* particleToCopy, unsigned int maxFailed, Vec3D velMin, Vec3D velMax, double radMin, double radMax)=0;. More... | |
virtual void | placeParticle (BaseParticle *p, RNG &random)=0 |
Purely virtual function that generates the extrinsic properties (position, velocity) of a particle. More... | |
void | checkBoundaryBeforeTimeStep (DPMBase *md) override |
Fills the boundary with particles. More... | |
void | insertParticles (DPMBase *md) |
Fill a certain domain with particles. More... | |
unsigned int | getNumberOfParticlesInserted () const |
Gets the number of particles inserted by the boundary. More... | |
Mdouble | getMassOfParticlesInserted () const |
Gets the mass of particles inserted by the boundary. More... | |
Mdouble | getVolumeOfParticlesInserted () const |
Gets the volume of particles inserted by the boundary. More... | |
void | reset () |
resets particle property counter variables. More... | |
void | activate () |
Turns on the InsertionBoundary. More... | |
void | deactivate () |
Turns off the InsertionBoundary. More... | |
bool | isActivated () |
Returns whether the InsertionBoundary is activated. More... | |
unsigned int | getMaxFailed () const |
Gets the number of times that the boundary may fail to insert a particle. More... | |
void | setParticleToCopy (std::vector< BaseParticle * > particleToCopy) |
Sets multiple different particles that will be inserted through the insertion boundary. More... | |
void | setParticleToCopy (BaseParticle *particleToCopy) |
Sets the particle that will be inserted through the insertion boundary. More... | |
std::vector< BaseParticle * > | getParticleToCopy () |
Gets the particles that will be inserted through the insertion boundary. More... | |
void | read (std::istream &is) override |
Reads the boundary's id_ and maxFailed_. More... | |
void | write (std::ostream &os) const override |
Writes the boundary's id_ and maxFailed_. More... | |
Mdouble | getVolumeFlowRate () const |
Gets the volume flow rate of the insertion routine. More... | |
void | setVolumeFlowRate (Mdouble volumeFlowRate_) |
Sets the volume flow rate of the insertion routine. More... | |
Mdouble | getInitialVolume () const |
Gets the initialVolume() . More... | |
void | setInitialVolume (Mdouble initialVolume) |
Gets the Volume which should be inserted by the insertion routine. More... | |
void | setPSD (const PSD psd) |
Sets the range of particle radii that may be generated from a user defined PSD. More... | |
void | setPSD (std::vector< PSD > psd, std::vector< Mdouble > probability) |
Sets the ranges of particle radii that may be generated from user defined PSDs. More... | |
std::vector< PSD > | getPSD () |
Gets the particle size distributions set by the user. More... | |
void | setVariableVolumeFlowRate (const std::vector< Mdouble > &variableCumulativeVolumeFlowRate, Mdouble samplingInterval) |
Sets a variable volume flow rate. More... | |
bool | insertParticle (Mdouble time) |
Checks the inserted total volume and returns if a particle is still allowed to be inserted. More... | |
bool | getCheckParticleForInteraction () const |
Gets the variable that checks if a particle has an interaction. More... | |
void | setCheckParticleForInteraction (bool checkParticleForInteraction) |
Sets the variable that checks if a particle has an interaction. More... | |
void | setManualInsertion (bool manualInsertion) |
Set the flag for a manual PSD insertion routine. More... | |
Public Member Functions inherited from BaseBoundary | |
BaseBoundary () | |
default constructor. More... | |
BaseBoundary (const BaseBoundary &b) | |
copy constructor More... | |
~BaseBoundary () override | |
destructor More... | |
virtual BaseBoundary * | copy () const =0 |
Used to create a copy of the object NB: purely virtual function. More... | |
virtual void | createPeriodicParticle (BaseParticle *p UNUSED, ParticleHandler &pH UNUSED) |
Creates a periodic particle in case of periodic boundaries in serial build. More... | |
virtual void | createPeriodicParticles (ParticleHandler &pH UNUSED) |
Creates periodic copies of given particle in case of periodic boundaries. More... | |
virtual void | checkBoundaryAfterParticlesMove (ParticleHandler &pH) |
Virtual function that does things to particles, each time step after particles have moved. More... | |
virtual void | actionsBeforeTimeLoop () |
Virtual function that does something after DPMBase::setupInitialConditions but before the first time step. More... | |
virtual void | modifyGhostAfterCreation (BaseParticle *particle, int i) |
virtual void | writeVTK (std::fstream &file) |
void | setHandler (BoundaryHandler *handler) |
Sets the boundary's BoundaryHandler. More... | |
BoundaryHandler * | getHandler () const |
Returns the boundary's BoundaryHandler. More... | |
Public Member Functions inherited from BaseObject | |
BaseObject ()=default | |
Default constructor. More... | |
BaseObject (const BaseObject &p)=default | |
Copy constructor, copies all the objects BaseObject contains. More... | |
virtual | ~BaseObject ()=default |
virtual destructor More... | |
virtual std::string | getName () const =0 |
A purely virtual function. More... | |
virtual void | moveInHandler (unsigned int index) |
Except that it is virtual, it does the same thing as setIndex() does. More... | |
void | setIndex (unsigned int index) |
Allows one to assign an index to an object in the handler/container. More... | |
void | setId (unsigned long id) |
Assigns a unique identifier to each object in the handler (container) which remains constant even after the object is deleted from the container/handler. More... | |
unsigned int | getIndex () const |
Returns the index of the object in the handler. More... | |
unsigned int | getId () const |
Returns the unique identifier of any particular object. More... | |
void | setGroupId (unsigned groupId) |
unsigned | getGroupId () const |
Public Attributes | |
std::vector< BaseParticle * > | particleToCopy_ |
read Distribution class from file. / friend std::istream& operator>>(std::istream& is, InsertionBoundary::Distribution& type); More... | |
unsigned int | maxFailed_ |
Number of times that the wall may fail to insert a particle. More... | |
unsigned int | numberOfParticlesInserted_ |
Number of particles that are already inserted. More... | |
Mdouble | massInserted_ |
Total mass of particles inserted. More... | |
Mdouble | volumeInserted_ |
Total volume of particles inserted. More... | |
bool | isActivated_ |
The InsertionBoundary is activated by default. If the InsertionBoundary is deactivated, then it introduces no particles (useful for trying to maintain a certain insertion rate). More... | |
Mdouble | volumeFlowRate_ |
Mdouble | initialVolume_ |
std::vector< Mdouble > | variableCumulativeVolumeFlowRate_ |
Mdouble | samplingInterval_ |
bool | checkParticleForInteraction_ |
Checks if a particle has an interaction with a wall or other particles. More... | |
std::vector< PSD > | particleSizeDistributionVector_ |
Defines a particle size distribution as an object of the PSD class; if particleSizeDistributionVector_ is empty, distribution_ is used instead. More... | |
Vec3D | velMin_ |
Minimum and maximum velocity of the particles to be inserted. More... | |
Vec3D | velMax_ |
bool | isManuallyInserting_ |
A flag to enable a top-down class-by-class manual insertion of a PSD; default is FALSE. More... | |
std::vector< Mdouble > | probability_ |
vector of probabilities in range [0,1] which determine the mixing ratio of partice size distributions. More... | |
int | chosenSpecies_ |
stores the chosen species for each timestep. More... | |
Boundary structure for boundaries used for insertion of particles.
To cite the InsertionBoundary algorithm: A. R. Thornton, D. Krijgsman, A. Te Voortwis, V. Ogarko, S. Luding, R. Fransen, S. Gonzalez, O. Bokhove, O. Imole, and T. Weinhart. A review of recent work on the discrete particle method at the University of Twente: An introduction to the open-source package MercuryDPM. DEM6 - International Conference on DEMs, 2013.
InsertionBoundary::InsertionBoundary | ( | ) |
\brief Defines a custom particle size distribution; distribution_ will always be used, unless particleSizeDistributionVector_ is non-empty ‍/
enum class Distribution { Uniform, Normal_1_5 // TODO add LogNormal distribution // LogNormal };
/*! \brief Default constructor: set everything to 0/nullptr.
Default constructor, sets all data members to 0 or default.
References checkParticleForInteraction_, chosenSpecies_, constants::inf, initialVolume_, isActivated_, isManuallyInserting_, massInserted_, maxFailed_, numberOfParticlesInserted_, particleSizeDistributionVector_, samplingInterval_, velMax_, velMin_, volumeFlowRate_, and volumeInserted_.
InsertionBoundary::InsertionBoundary | ( | const InsertionBoundary & | other | ) |
Copy constructor (with deep copy)
Copy constructor
References checkParticleForInteraction_, chosenSpecies_, constants::i, initialVolume_, isActivated_, isManuallyInserting_, massInserted_, maxFailed_, numberOfParticlesInserted_, particleSizeDistributionVector_, particleToCopy_, probability_, samplingInterval_, variableCumulativeVolumeFlowRate_, velMax_, velMin_, volumeFlowRate_, and volumeInserted_.
|
override |
Destructor: delete the particle that has to be copied at every insertion.
Destructor that deletes the BaseParticle that is copied and inserted at every insertion.
References particleToCopy_.
void InsertionBoundary::activate | ( | ) |
Turns on the InsertionBoundary.
Turns on the InsertionBoundary by setting the boolean to TRUE.
References isActivated_.
Referenced by Chutebelt::actionsAfterTimeStep().
|
overridevirtual |
Fills the boundary with particles.
Is used to fill the insides of the boundary with particles until it is filled up.
[in,out] | md | the problem's DPMBase object |
HERE
HERE
Reimplemented from BaseBoundary.
Reimplemented in RandomClusterInsertionBoundary.
References MPIContainer::broadcast(), DPMBase::checkParticleForInteraction(), checkParticleForInteraction_, chosenSpecies_, BaseHandler< T >::copyAndAddObject(), copyDataFromMPIParticleToParticle(), MPISphericalParticle::copyDataFromParticleToMPIParticle(), generateParticle(), DPMBase::getNextTime(), insertParticle(), MPIContainer::Instance(), isActivated_, isManuallyInserting_, logger, massInserted_, maxFailed_, NUMBER_OF_PROCESSORS, numberOfParticlesInserted_, PARTICLE, DPMBase::particleHandler, particleSizeDistributionVector_, placeParticle(), PROCESSOR_ID, DPMBase::random, VERBOSE, and volumeInserted_.
Referenced by GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), insertParticles(), main(), FreeCooling2DinWalls::setupInitialConditions(), StressStrainControl::setupInitialConditions(), and ConstantMassFlowMaserSelfTest::setupInitialConditions().
void InsertionBoundary::deactivate | ( | ) |
Turns off the InsertionBoundary.
Turns off the InsertionBoundary by setting the boolean to FALSE.
References isActivated_.
Referenced by Chutebelt::actionsAfterTimeStep(), and Chutebelt::setupInitialConditions().
|
virtual |
Sets the properties of the InsertionBoundary for a single particle type / virtual void set(BaseParticle* particleToCopy, unsigned int maxFailed, Vec3D velMin, Vec3D velMax, double radMin, double radMax)=0;.
\brief Sets the properties of the InsertionBoundary for mutliple different particle types ‍/
virtual void set(std::vector<BaseParticle*> particleToCopy, unsigned int maxFailed, Vec3D velMin, Vec3D velMax, double radMin, double radMax)=0;
/*!
/*! \brief Virtual function that generates the intrinsic properties (species, radius) of one particle. \param[in] random Random number generator
The default behaviour will be to return particleToCopy_, but this can be overridden by the children (to get size or species dispersity).
Reimplemented in PolydisperseInsertionBoundary, BidisperseCubeInsertionBoundary, and FixedClusterInsertionBoundary.
References helpers::check(), chosenSpecies_, BaseBoundary::getHandler(), RNG::getRandomNumber(), getVolumeFlowRate(), constants::i, INFO, initialVolume_, isManuallyInserting_, logger, Global_Physical_Variables::P, particleSizeDistributionVector_, particleToCopy_, and probability_.
Referenced by checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), and CubicCell::setupInitialConditions().
bool InsertionBoundary::getCheckParticleForInteraction | ( | ) | const |
Gets the variable that checks if a particle has an interaction.
Gets the variable that checks if a particle has an interaction with a wall or another particle.
References checkParticleForInteraction_.
Mdouble InsertionBoundary::getInitialVolume | ( | ) | const |
Gets the initialVolume() .
Gets the volume to be inserted by the insertion routine.
References initialVolume_.
Referenced by NozzleDemo::actionsAfterTimeStep(), Chutebelt::actionsAfterTimeStep(), and NozzleSelfTest::actionsAfterTimeStep().
Mdouble InsertionBoundary::getMassOfParticlesInserted | ( | ) | const |
Gets the mass of particles inserted by the boundary.
Returns the mass of particles inserted in the boundary
References massInserted_.
Referenced by Chutebelt::actionsAfterTimeStep(), BoundariesSelfTest::actionsAfterTimeStep(), and FluxBoundarySelfTest::actionsAfterTimeStep().
unsigned int InsertionBoundary::getMaxFailed | ( | ) | const |
Gets the number of times that the boundary may fail to insert a particle.
Return maxFailed_ (see InsertionBoundary::set).
References maxFailed_.
unsigned int InsertionBoundary::getNumberOfParticlesInserted | ( | ) | const |
Gets the number of particles inserted by the boundary.
Returns the number of particles inserted in the boundary
References numberOfParticlesInserted_.
Referenced by T_protectiveWall::actionsAfterTimeStep(), BoundariesSelfTest::actionsAfterTimeStep(), FluxBoundarySelfTest::actionsAfterTimeStep(), insertParticles(), and Chute::write().
std::vector< BaseParticle * > InsertionBoundary::getParticleToCopy | ( | ) |
Gets the particles that will be inserted through the insertion boundary.
returns pointer to the particle copies which are to be inserted
References ERROR, logger, and particleToCopy_.
std::vector< PSD > InsertionBoundary::getPSD | ( | ) |
Gets the particle size distributions set by the user.
gets the user defined particle size distributions
References particleSizeDistributionVector_.
Mdouble InsertionBoundary::getVolumeFlowRate | ( | ) | const |
Gets the volume flow rate of the insertion routine.
Gets the volumetric flow rate of the insertion routine.
References volumeFlowRate_.
Referenced by generateParticle(), and insertParticle().
Mdouble InsertionBoundary::getVolumeOfParticlesInserted | ( | ) | const |
Gets the volume of particles inserted by the boundary.
Returns the volume of particles inserted in the boundary
References volumeInserted_.
Referenced by T_protectiveWall::actionsAfterTimeStep(), NozzleDemo::actionsAfterTimeStep(), BoundariesSelfTest::actionsAfterTimeStep(), FluxBoundarySelfTest::actionsAfterTimeStep(), NozzleSelfTest::actionsAfterTimeStep(), protectiveWall::actionsAfterTimeStep(), and GranuHeap::GranuHeap().
Checks the inserted total volume and returns if a particle is still allowed to be inserted.
Checks the inserted total volume by the flowrate and initialVolume and returns if a particle is allowed to be inserted.
References getVolumeFlowRate(), constants::i, initialVolume_, logger, samplingInterval_, variableCumulativeVolumeFlowRate_, volumeInserted_, and WARN.
Referenced by checkBoundaryBeforeTimeStep(), and RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep().
void InsertionBoundary::insertParticles | ( | DPMBase * | md | ) |
Fill a certain domain with particles.
\detail calls the function checkBoundaryBeforeTimeStep() to fill a domain with particles; also reports how many particles where inserted at the end of the routine.
References checkBoundaryBeforeTimeStep(), getNumberOfParticlesInserted(), INFO, and logger.
Referenced by DPMBase::fillDomainWithParticles(), and RotatingDrumWet::setupInitialConditions().
bool InsertionBoundary::isActivated | ( | ) |
Returns whether the InsertionBoundary is activated.
checks the activation status of the InsertionBoundary by checking the respective boolean variable.
References isActivated_.
|
pure virtual |
Purely virtual function that generates the extrinsic properties (position, velocity) of a particle.
[in] | p | The particle to be placed |
[in] | random | Random number generator |
This should be implemented by the children such as CubeInsertionBoundary, as the implementation will be geometry-dependent.
Implemented in RandomClusterInsertionBoundary, PolydisperseInsertionBoundary, HopperInsertionBoundary, CubeInsertionBoundary, ChuteInsertionBoundary, BaseClusterInsertionBoundary, and FixedClusterInsertionBoundary.
Referenced by checkBoundaryBeforeTimeStep().
|
overridevirtual |
Reads the boundary's id_ and maxFailed_.
reads the boundary's id_ and maxFailed_ from the given istream
[in,out] | is | stream the data members are read from |
Implements BaseBoundary.
Reimplemented in PolydisperseInsertionBoundary.
References checkParticleForInteraction_, BaseHandler< T >::getDPMBase(), BaseBoundary::getHandler(), BaseHandler< T >::getObject(), constants::i, initialVolume_, DistributionElements::internalVariable, isActivated_, massInserted_, maxFailed_, n, numberOfParticlesInserted_, DPMBase::particleHandler, particleSizeDistributionVector_, particleToCopy_, probability_, BaseBoundary::read(), ParticleHandler::readAndCreateObject(), helpers::readOptionalVariable(), samplingInterval_, BaseParticle::setSpecies(), variableCumulativeVolumeFlowRate_, volumeFlowRate_, and volumeInserted_.
Referenced by BaseClusterInsertionBoundary::read(), ChuteInsertionBoundary::read(), CubeInsertionBoundary::read(), HopperInsertionBoundary::read(), and PolydisperseInsertionBoundary::read().
void InsertionBoundary::reset | ( | ) |
resets particle property counter variables.
set all particle property counter variables to zero. reset() does not activate or deactivate the InsertionBoundary.
References massInserted_, numberOfParticlesInserted_, and volumeInserted_.
void InsertionBoundary::setCheckParticleForInteraction | ( | bool | checkParticleForInteraction | ) |
Sets the variable that checks if a particle has an interaction.
Sets the distribution type from the Distribution class.
[in] | checkParticleForInteraction | boolean which determines if a particle has an interaction. |
References checkParticleForInteraction_.
Referenced by GranuDrum::GranuDrum().
void InsertionBoundary::setInitialVolume | ( | Mdouble | initialVolume | ) |
Gets the Volume which should be inserted by the insertion routine.
Sets the volume to be inserted by the insertion routine. (Total volume to insert = getVolumeFlowRate() * time + initialVolume_)
References initialVolume_, and volumeFlowRate_.
Referenced by GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), main(), NozzleDemo::setupInitialConditions(), Drum::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), InsertionBoundaryMPI2Test::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), StressStrainControl::setupInitialConditions(), Chutebelt::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), and PSDSelfTest::setupInitialConditions().
void InsertionBoundary::setManualInsertion | ( | bool | isManuallyInserting | ) |
Set the flag for a manual PSD insertion routine.
sets the isManuallyInserting_ to TRUE, resulting in a top-down class-by-class insertion routine to insert PSDs as accurate as possible.
References isManuallyInserting_.
Referenced by PSDManualInsertionSelfTest::setupInitialConditions().
void InsertionBoundary::setParticleToCopy | ( | BaseParticle * | particleToCopy | ) |
Sets the particle that will be inserted through the insertion boundary.
Sets the vector of pointers to particles which will be inserted by the insertion boundary.
[in] | particleToCopy | pointer to the particle to be inserted |
References BaseParticle::copy(), ERROR, logger, and particleToCopy_.
void InsertionBoundary::setParticleToCopy | ( | std::vector< BaseParticle * > | particleToCopy | ) |
Sets multiple different particles that will be inserted through the insertion boundary.
Sets the vector of pointers to particles which will be inserted by the insertion boundary. This is mainly used to insert particles with different intrinsic properties (such as PSD, mechanical properties, etc.)
[in] | particleToCopy | vector of pointers to the particles which are to be inserted |
References ERROR, constants::i, logger, and particleToCopy_.
Referenced by RandomClusterInsertionBoundary::set(), FixedClusterInsertionBoundary::set(), HopperInsertionBoundary::set(), ChuteInsertionBoundary::set(), and CubeInsertionBoundary::set().
void InsertionBoundary::setPSD | ( | const PSD | psd | ) |
Sets the range of particle radii that may be generated from a user defined PSD.
Sets the range of particle radii that may be generated to a PSD defined by the user.
References particleSizeDistributionVector_.
Referenced by BoundariesSelfTest::BoundariesSelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), CubeInsertionBoundary::set(), Drum::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), FullRestartTest::setupInitialConditions(), Chute::setupInitialConditions(), ChuteWithHopper::setupInitialConditions(), and T_protectiveWall::T_protectiveWall().
Sets the ranges of particle radii that may be generated from user defined PSDs.
Sets the ranges of particle radii that may be generated by different PSDs defined by the user.
References logger, particleSizeDistributionVector_, and probability_.
void InsertionBoundary::setVariableVolumeFlowRate | ( | const std::vector< Mdouble > & | variableCumulativeVolumeFlowRate, |
Mdouble | samplingInterval | ||
) |
Sets a variable volume flow rate.
Sets a variable volume flow rate taken at fixed sampling intervals; the values are cumulative; thus, we need to ensure the volume inserted before time t=n*samplingInterval is less than variableCumulativeVolumeFlowRate[n].
References BaseBoundary::getHandler(), INFO, logger, samplingInterval_, and variableCumulativeVolumeFlowRate_.
void InsertionBoundary::setVolumeFlowRate | ( | Mdouble | volumeFlowRate | ) |
Sets the volume flow rate of the insertion routine.
Sets the volumetric flow rate of the insertion routine.
References volumeFlowRate_.
|
overridevirtual |
Writes the boundary's id_ and maxFailed_.
adds the boundary's id_ and maxFailed_ to the given ostream
[in,out] | is | stream the data members are to be added to |
Implements BaseBoundary.
Reimplemented in PolydisperseInsertionBoundary.
References checkParticleForInteraction_, initialVolume_, isActivated_, logger, massInserted_, maxFailed_, numberOfParticlesInserted_, particleSizeDistributionVector_, particleToCopy_, probability_, samplingInterval_, variableCumulativeVolumeFlowRate_, VERBOSE, volumeFlowRate_, volumeInserted_, and BaseBoundary::write().
Referenced by BaseClusterInsertionBoundary::write(), ChuteInsertionBoundary::write(), CubeInsertionBoundary::write(), HopperInsertionBoundary::write(), and PolydisperseInsertionBoundary::write().
bool InsertionBoundary::checkParticleForInteraction_ |
Checks if a particle has an interaction with a wall or other particles.
Referenced by checkBoundaryBeforeTimeStep(), getCheckParticleForInteraction(), InsertionBoundary(), read(), setCheckParticleForInteraction(), and write().
int InsertionBoundary::chosenSpecies_ |
stores the chosen species for each timestep.
Referenced by checkBoundaryBeforeTimeStep(), generateParticle(), and InsertionBoundary().
Mdouble InsertionBoundary::initialVolume_ |
Referenced by generateParticle(), getInitialVolume(), InsertionBoundary(), insertParticle(), read(), setInitialVolume(), and write().
bool InsertionBoundary::isActivated_ |
The InsertionBoundary is activated by default. If the InsertionBoundary is deactivated, then it introduces no particles (useful for trying to maintain a certain insertion rate).
Referenced by activate(), FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), deactivate(), InsertionBoundary(), isActivated(), read(), and write().
bool InsertionBoundary::isManuallyInserting_ |
A flag to enable a top-down class-by-class manual insertion of a PSD; default is FALSE.
Referenced by checkBoundaryBeforeTimeStep(), generateParticle(), InsertionBoundary(), and setManualInsertion().
Mdouble InsertionBoundary::massInserted_ |
Total mass of particles inserted.
Referenced by FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), getMassOfParticlesInserted(), InsertionBoundary(), read(), reset(), and write().
unsigned int InsertionBoundary::maxFailed_ |
Number of times that the wall may fail to insert a particle.
Referenced by checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), getMaxFailed(), InsertionBoundary(), read(), RandomClusterInsertionBoundary::set(), HopperInsertionBoundary::set(), ChuteInsertionBoundary::set(), CubeInsertionBoundary::set(), PolydisperseInsertionBoundary::setGeometry(), and write().
unsigned int InsertionBoundary::numberOfParticlesInserted_ |
Number of particles that are already inserted.
Referenced by FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), getNumberOfParticlesInserted(), InsertionBoundary(), read(), reset(), and write().
std::vector<PSD> InsertionBoundary::particleSizeDistributionVector_ |
Defines a particle size distribution as an object of the PSD class; if particleSizeDistributionVector_ is empty, distribution_ is used instead.
Referenced by checkBoundaryBeforeTimeStep(), generateParticle(), getPSD(), InsertionBoundary(), read(), setPSD(), and write().
std::vector<BaseParticle*> InsertionBoundary::particleToCopy_ |
read Distribution class from file. / friend std::istream& operator>>(std::istream& is, InsertionBoundary::Distribution& type);
\brief write Distribution class to file. ‍/
friend std::ostream& operator<<(std::ostream& os, InsertionBoundary::Distribution type);
/*!
protected:
/*! \brief Particle that will be inserted through the insertion boundary.
Referenced by generateParticle(), FixedClusterInsertionBoundary::generateParticle(), getParticleToCopy(), InsertionBoundary(), read(), setParticleToCopy(), write(), and ~InsertionBoundary().
std::vector<Mdouble> InsertionBoundary::probability_ |
vector of probabilities in range [0,1] which determine the mixing ratio of partice size distributions.
Referenced by generateParticle(), InsertionBoundary(), read(), setPSD(), and write().
Mdouble InsertionBoundary::samplingInterval_ |
Referenced by InsertionBoundary(), insertParticle(), read(), setVariableVolumeFlowRate(), and write().
std::vector<Mdouble> InsertionBoundary::variableCumulativeVolumeFlowRate_ |
Defines a variable volume flow rate, taken at fixed sampling intervals; the values are cumulative; thus, we need to ensure the volume inserted before time t=n*samplingInterval is less than variableCumulativeVolumeFlowRate[n].
By default, this vector is empty; in that case, a constant volume flow rate will be used.
Referenced by InsertionBoundary(), insertParticle(), read(), setVariableVolumeFlowRate(), and write().
Vec3D InsertionBoundary::velMax_ |
Vec3D InsertionBoundary::velMin_ |
Minimum and maximum velocity of the particles to be inserted.
Referenced by BidisperseCubeInsertionBoundary::generateParticle(), InsertionBoundary(), CubeInsertionBoundary::placeParticle(), CubeInsertionBoundary::read(), CubeInsertionBoundary::set(), and CubeInsertionBoundary::write().
Mdouble InsertionBoundary::volumeFlowRate_ |
The inflow can be controlled by setting a volume flow rate and an initial volume thus, this ensures the volume V inserted before time t is less than V = initialVolume_+volumeFlowRate_*t
The default value is volumeFlowRate_=inf, i.e. the volume is not controlled.
Referenced by getVolumeFlowRate(), InsertionBoundary(), read(), setInitialVolume(), setVolumeFlowRate(), and write().
Mdouble InsertionBoundary::volumeInserted_ |
Total volume of particles inserted.
Referenced by FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), getVolumeOfParticlesInserted(), InsertionBoundary(), insertParticle(), read(), reset(), and write().