|
Supplies a 'constant heat flux' to a cuboidal region (specified by two corner points) by adding a random velocity at each time step to each particle therein, increasing the granular temperature (velocity variance). More...
#include <HeaterBoundary.h>
Public Member Functions | |
HeaterBoundary () | |
HeaterBoundary (const HeaterBoundary &other) | |
~HeaterBoundary () override | |
HeaterBoundary * | copy () const override |
Used to create a copy of the object NB: purely virtual function. More... | |
void | set (Vec3D posMin, Vec3D posMax, Vec3D specificHeatStrength) |
void | set2D (Vec3D posMin, Vec3D posMax, Mdouble specificHeatStrength) |
void | set3D (Vec3D posMin, Vec3D posMax, Mdouble specificHeatStrength) |
void | setStrength (Vec3D specificHeatStrength) |
void | setStrength2D (Mdouble specificHeatStrength) |
void | setStrength3D (Mdouble specificHeatStrength) |
Mdouble | getVolume () const |
Returns the volume of the HeaterBoundary cuboid. More... | |
Mdouble | getDistance (const Vec3D &position) const |
Returns a negative value if and only if the position is inside the boundary (and therefore the particle to be heated). More... | |
void | checkBoundaryAfterParticlesMove (ParticleHandler &pH) override |
Runs at the end of each time step. More... | |
bool | checkBoundaryAfterParticleMoved (BaseParticle *p, ParticleHandler &pH) |
Checks if a given particle is inside the HeaterBoundary. If so, heats it. More... | |
void | read (std::istream &is) override |
Reads some boundary properties from an std::istream. More... | |
void | write (std::ostream &os) const override |
Writes the boundary properties to an std::ostream. More... | |
std::string | getName () const override |
Public Member Functions inherited from BaseBoundary | |
BaseBoundary () | |
default constructor. More... | |
BaseBoundary (const BaseBoundary &b) | |
copy constructor More... | |
~BaseBoundary () override | |
destructor 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 | checkBoundaryBeforeTimeStep (DPMBase *md) |
Virtual function that does things before each time step. 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 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 |
Private Attributes | |
Vec3D | posMin_ |
Vec3D | posMax_ |
Vec3D | specificHeatStrength_ |
The specific heat strengths have units of energy (mass)^{-1} (time)^{-1) = m^2 s^{-3} For isotropic heating, take a vector proportional to (s/3, s/3, s/3). More... | |
Supplies a 'constant heat flux' to a cuboidal region (specified by two corner points) by adding a random velocity at each time step to each particle therein, increasing the granular temperature (velocity variance).
HeaterBoundary::HeaterBoundary | ( | ) |
References posMax_, posMin_, and specificHeatStrength_.
Referenced by copy().
HeaterBoundary::HeaterBoundary | ( | const HeaterBoundary & | other | ) |
References posMax_, posMin_, and specificHeatStrength_.
|
override |
bool HeaterBoundary::checkBoundaryAfterParticleMoved | ( | BaseParticle * | p, |
ParticleHandler & | pH | ||
) |
Checks if a given particle is inside the HeaterBoundary. If so, heats it.
References getDistance(), BaseHandler< T >::getDPMBase(), BaseInteractable::getPosition(), RNG::getRandomNumber(), DPMBase::getTimeStep(), BaseInteractable::getVelocity(), BaseParticle::isFixed(), DPMBase::random, BaseInteractable::setVelocity(), specificHeatStrength_, Vec3D::X, Vec3D::Y, and Vec3D::Z.
Referenced by checkBoundaryAfterParticlesMove().
|
overridevirtual |
Runs at the end of each time step.
Reimplemented from BaseBoundary.
References BaseHandler< T >::begin(), checkBoundaryAfterParticleMoved(), and BaseHandler< T >::end().
|
overridevirtual |
Used to create a copy of the object NB: purely virtual function.
Implements BaseBoundary.
References HeaterBoundary().
Returns a negative value if and only if the position is inside the boundary (and therefore the particle to be heated).
References posMax_, posMin_, Vec3D::X, Vec3D::Y, and Vec3D::Z.
Referenced by checkBoundaryAfterParticleMoved().
|
overridevirtual |
Returns the object's class name (i.e. 'HeaterBoundary').
Implements BaseObject.
|
inline |
|
overridevirtual |
Reads some boundary properties from an std::istream.
Reads a number of boundary properties from the given std::istream.
[in,out] | is | the istream |
Implements BaseBoundary.
References posMax_, posMin_, BaseBoundary::read(), and specificHeatStrength_.
References posMax_, posMin_, and setStrength().
References posMax_, posMin_, and setStrength2D().
References posMax_, posMin_, and setStrength3D().
Referenced by HeaterBoundaryTest::setupInitialConditions().
void HeaterBoundary::setStrength | ( | Vec3D | specificHeatStrength | ) |
References specificHeatStrength_.
Referenced by set().
void HeaterBoundary::setStrength2D | ( | Mdouble | specificHeatStrength | ) |
void HeaterBoundary::setStrength3D | ( | Mdouble | specificHeatStrength | ) |
|
overridevirtual |
Writes the boundary properties to an std::ostream.
Writes the boundary properties to an std::ostream.
[out] | os | the ostream the properties are to be written to. |
Implements BaseBoundary.
References posMax_, posMin_, specificHeatStrength_, and BaseBoundary::write().
|
private |
Referenced by getDistance(), getVolume(), HeaterBoundary(), read(), set(), set2D(), set3D(), and write().
|
private |
Referenced by getDistance(), getVolume(), HeaterBoundary(), read(), set(), set2D(), set3D(), and write().
|
private |
The specific heat strengths have units of energy (mass)^{-1} (time)^{-1) = m^2 s^{-3} For isotropic heating, take a vector proportional to (s/3, s/3, s/3).
Referenced by checkBoundaryAfterParticleMoved(), HeaterBoundary(), read(), setStrength(), setStrength2D(), setStrength3D(), and write().