DeletionBoundary Class Reference

Used for removing particles from the problem. Inherits from BaseBoundary. By default, a plane that deletes everything past it, but there are derived classes such as CubeDeletionBoundary. More...

#include <DeletionBoundary.h>

+ Inheritance diagram for DeletionBoundary:

Public Member Functions

 DeletionBoundary ()
 default constructor More...
 
 DeletionBoundary (DeletionBoundary const &d)
 default copy constructor More...
 
 ~DeletionBoundary () override
 destructor More...
 
DeletionBoundarycopy () const override
 Copy method; creates copy on the heap and returns a pointer to it. More...
 
void set (const Vec3D &normal, Mdouble distance)
 Sets boundary position based on a normal and distance. More...
 
void move (Mdouble position)
 Sets the boundary's distance property to the given one. More...
 
virtual Mdouble getDistance (const Vec3D &position) const
 Returns a negative value if and only if the particle is inside the boundary (and therefore to be deleted). More...
 
bool checkBoundaryAfterParticleMoved (BaseParticle *p, ParticleHandler &pH)
 Checks if particle is inside the boundary, and deletes the particle if so. More...
 
void checkBoundaryAfterParticlesMove (ParticleHandler &pH) override
 
unsigned int getNumberOfParticlesDeleted () const
 Gets the number of particles deleted by the boundary. More...
 
double getMassOfParticlesDeleted () const
 
double getVolumeOfParticlesDeleted () const
 
void reset ()
 
void activate ()
 Turns on the DeletionBoundary. More...
 
void deactivate ()
 Turns off the DeletionBoundary. More...
 
void trackOutflow (bool trackOutflow=true)
 Turns on the outflow tracker. More...
 
void read (std::istream &is) override
 Reads some boundary properties from an std::istream. More...
 
MERCURYDPM_DEPRECATED void oldRead (std::istream &is)
 Deprecated read method. use DeletionBoundary::read() instead. More...
 
void write (std::ostream &os) const override
 Writes the boundary properties to an std::ostream. More...
 
std::string getName () const override
 Returns the name of the object. More...
 
- 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...
 
BoundaryHandlergetHandler () 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 normal_
 outward unit normal vector More...
 
Mdouble scaleFactor_
 This is the factor to rescale the given normal vector to a unit vectors. More...
 
Mdouble distance_
 The boundary's distance from the origin. More...
 
unsigned int numberOfParticlesDeleted_
 Number of particles that have been deleted by this boundary. More...
 
double massDeleted_
 
double trackMassDeleted_
 
double volumeDeleted_
 
bool isActivated_
 The DeletionBoundary is activated by default. If the DeletionBoundary is deactivated, then it deletes no particles. More...
 
bool trackOutflow_
 
std::ofstream tracker
 

Detailed Description

Used for removing particles from the problem. Inherits from BaseBoundary. By default, a plane that deletes everything past it, but there are derived classes such as CubeDeletionBoundary.

Constructor & Destructor Documentation

◆ DeletionBoundary() [1/2]

DeletionBoundary::DeletionBoundary ( )

default constructor

Default constructor (calls the parent-constructor of BaseBoundary as well)

40  : BaseBoundary()
41 {
42  distance_ = std::numeric_limits<double>::quiet_NaN();
43  scaleFactor_ = std::numeric_limits<double>::quiet_NaN();
44  isActivated_ = true;
45  trackOutflow_ = false;
47  massDeleted_ = 0;
48  volumeDeleted_ = 0;
49 
50  logger(DEBUG, "DeletionBoundary::DeletionBoundary() finished", true);
51 }
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
@ DEBUG
BaseBoundary()
default constructor.
Definition: BaseBoundary.cc:32
Mdouble distance_
The boundary's distance from the origin.
Definition: DeletionBoundary.h:163
Mdouble scaleFactor_
This is the factor to rescale the given normal vector to a unit vectors.
Definition: DeletionBoundary.h:158
double volumeDeleted_
Definition: DeletionBoundary.h:171
unsigned int numberOfParticlesDeleted_
Number of particles that have been deleted by this boundary.
Definition: DeletionBoundary.h:168
bool isActivated_
The DeletionBoundary is activated by default. If the DeletionBoundary is deactivated,...
Definition: DeletionBoundary.h:177
bool trackOutflow_
Definition: DeletionBoundary.h:179
double massDeleted_
Definition: DeletionBoundary.h:169

References DEBUG, distance_, isActivated_, logger, massDeleted_, numberOfParticlesDeleted_, scaleFactor_, trackOutflow_, and volumeDeleted_.

Referenced by copy().

◆ DeletionBoundary() [2/2]

DeletionBoundary::DeletionBoundary ( DeletionBoundary const &  d)
inline

default copy constructor

55  : normal_(d.normal_), scaleFactor_(d.scaleFactor_), distance_(d.distance_),
56  numberOfParticlesDeleted_(d.numberOfParticlesDeleted_), massDeleted_(d.massDeleted_),
57  volumeDeleted_(d.volumeDeleted_), isActivated_(d.isActivated_), trackOutflow_(d.trackOutflow_) {}
Vec3D normal_
outward unit normal vector
Definition: DeletionBoundary.h:148

◆ ~DeletionBoundary()

DeletionBoundary::~DeletionBoundary ( )
override

destructor

Destructor

57 {
58  logger(DEBUG, "DeletionBoundary::~DeletionBoundary() finished", true);
59 }

References DEBUG, and logger.

Member Function Documentation

◆ activate()

void DeletionBoundary::activate ( )

Turns on the DeletionBoundary.

301 {
302  isActivated_ = true;
303 }

References isActivated_.

◆ checkBoundaryAfterParticleMoved()

bool DeletionBoundary::checkBoundaryAfterParticleMoved ( BaseParticle p,
ParticleHandler pH 
)

Checks if particle is inside the boundary, and deletes the particle if so.

Todo:
: MX: update the above comment

Checks if particle has passed the boundary, and if so, deletes the particle.

Parameters
[in]ppointer to the particle which is to be checked
[out]pHthe particle's ParticleHandler, from which the particle is removed in case it has passed the boundary.
Returns
TRUE if the particle has actually passed the boundary and is thus deleted.
Todo:
JMFT: The mass and volume counters need to be updated in the MPI code.
124 {
125  if (getDistance(p->getPosition()) < 0)
126  {
127  if (trackOutflow_) {
128  auto dpm = getHandler()->getDPMBase();
129  trackMassDeleted_ += p->getMass();
130  if (!tracker.is_open()) {
131  std::string name = dpm->getName()
133  + ".out" + (NUMBER_OF_PROCESSORS==1?"":std::to_string(PROCESSOR_ID));
134  logger(INFO, "Open file %", name);
135  tracker.open(name);
136  tracker << std::setw(13) << "Time "
137  << std::setw(8) << "Species "
138  << std::setw(8) << "ID "
139  << std::setw(13) << "Position_x "
140  << std::setw(13) << "Position_y "
141  << std::setw(13) << "Position_z "
142  << std::setw(13) << "Velocity_x "
143  << std::setw(13) << "Velocity_y "
144  << std::setw(13) << "Velocity_z "
145  << std::setw(13) << "Radius "
146  << std::setw(13) << "AnVelocity_x "
147  << std::setw(13) << "AnVelocity_y "
148  << std::setw(13) << "AnVelocity_z "
149  << std::setw(13) << "Mass "
150  << std::setw(13) << "TotalMass"
151  << '\n';
152  }
153  tracker << std::setw(12) << dpm->getTime() << ' '
154  << std::setw(8) << p->getIndSpecies() << ' '
155  << std::setw(8) << p->getId() << ' '
156  << std::setw(12) << p->getPosition().X << ' '
157  << std::setw(12) << p->getPosition().Y << ' '
158  << std::setw(12) << p->getPosition().Z << ' '
159  << std::setw(12) << p->getVelocity().X << ' '
160  << std::setw(12) << p->getVelocity().Y << ' '
161  << std::setw(12) << p->getVelocity().Z << ' '
162  << std::setw(12) << p->getRadius() << ' '
163  << std::setw(12) << p->getAngularVelocity().X << ' '
164  << std::setw(12) << p->getAngularVelocity().Y << ' '
165  << std::setw(12) << p->getAngularVelocity().Z << ' '
166  << std::setw(12) << p->getMass() << ' '
167  << std::setw(12) << trackMassDeleted_ << '\n';
168  }
169 
170  #ifdef MERCURYDPM_USE_MPI
171  //Check if the particle is in the mpi communication zone
172  if(p->isInMPIDomain())
173  {
174  //Add the particle to a list so we can flush it later on
175  //The particles are not deleted yet. This is done in dpmBase after this function is called
176  particlesToBeDeleted_.insert(p);
177  return false;
178  }
179  else
180  {
181  pH.removeGhostObject(p->getIndex());
182  return true;
183  }
184  #else
186  massDeleted_ += p->getMass();
187  volumeDeleted_ += p->getVolume();
188  pH.removeObject(p->getIndex());
191  return true;
192  #endif
193  }
194  else
195  {
196  return false;
197  }
198 }
#define PROCESSOR_ID
Definition: GeneralDefine.h:63
#define NUMBER_OF_PROCESSORS
For the MPI communication routines this quantity is often required. defining this macro makes the cod...
Definition: GeneralDefine.h:62
@ INFO
BoundaryHandler * getHandler() const
Returns the boundary's BoundaryHandler.
Definition: BaseBoundary.cc:143
DPMBase * getDPMBase()
Gets the problem that is solved using this handler.
Definition: BaseHandler.h:725
virtual const Vec3D & getAngularVelocity() const
Returns the angular velocity of this interactable.
Definition: BaseInteractable.cc:341
virtual const Vec3D & getVelocity() const
Returns the velocity of this interactable.
Definition: BaseInteractable.cc:329
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
Definition: BaseInteractable.h:218
unsigned int getIndSpecies() const
Returns the index of the species associated with the interactable object.
Definition: BaseInteractable.h:88
unsigned int getId() const
Returns the unique identifier of any particular object.
Definition: BaseObject.h:125
unsigned int getIndex() const
Returns the index of the object in the handler.
Definition: BaseObject.h:118
bool isInMPIDomain()
Indicates if the particle is in the communication zone of the mpi domain.
Definition: BaseParticle.cc:276
Mdouble getRadius() const
Returns the particle's radius.
Definition: BaseParticle.h:348
virtual Mdouble getVolume() const
Get Particle volume function, which required a reference to the Species vector. It returns the volume...
Definition: BaseParticle.cc:143
Mdouble getMass() const
Returns the particle's mass.
Definition: BaseParticle.h:322
std::ofstream tracker
Definition: DeletionBoundary.h:181
double trackMassDeleted_
Definition: DeletionBoundary.h:170
virtual Mdouble getDistance(const Vec3D &position) const
Returns a negative value if and only if the particle is inside the boundary (and therefore to be dele...
Definition: DeletionBoundary.cc:108
void removeGhostObject(unsigned int index)
Removes a BaseParticle from the ParticleHandler without a global check, this is only to be done for m...
Definition: ParticleHandler.cc:422
void computeSmallestParticle()
Computes the smallest particle (by interaction radius) and sets it in smallestParticle_.
Definition: ParticleHandler.cc:451
void removeObject(unsigned int index) override
Removes a BaseParticle from the ParticleHandler.
Definition: ParticleHandler.cc:394
void computeLargestParticle()
Computes the largest particle (by interaction radius) and sets it in largestParticle_.
Definition: ParticleHandler.cc:475
Mdouble Y
Definition: Vector.h:66
Mdouble Z
Definition: Vector.h:66
Mdouble X
the vector components
Definition: Vector.h:66
std::string toString(Mdouble value, unsigned precision)
converts a floating point number into a string with a given precision
Definition: StringHelpers.cc:38
std::string name
Definition: MercuryProb.h:48

References ParticleHandler::computeLargestParticle(), ParticleHandler::computeSmallestParticle(), BaseInteractable::getAngularVelocity(), getDistance(), BaseHandler< T >::getDPMBase(), BaseBoundary::getHandler(), BaseObject::getId(), BaseObject::getIndex(), BaseInteractable::getIndSpecies(), BaseParticle::getMass(), BaseInteractable::getPosition(), BaseParticle::getRadius(), BaseInteractable::getVelocity(), BaseParticle::getVolume(), INFO, BaseParticle::isInMPIDomain(), logger, massDeleted_, units::name, NUMBER_OF_PROCESSORS, numberOfParticlesDeleted_, PROCESSOR_ID, ParticleHandler::removeGhostObject(), ParticleHandler::removeObject(), helpers::toString(), tracker, trackMassDeleted_, trackOutflow_, volumeDeleted_, Vec3D::X, Vec3D::Y, and Vec3D::Z.

Referenced by checkBoundaryAfterParticlesMove().

◆ checkBoundaryAfterParticlesMove()

void DeletionBoundary::checkBoundaryAfterParticlesMove ( ParticleHandler pH)
overridevirtual
Todo:
MX: I changed the syntax to a more mpi compatible (and neater) code. Need to update the comments of the checkBoundaryAfterParticleMoved function

Reimplemented from BaseBoundary.

201 {
202  if (!isActivated_)
203  return;
204 
205 #ifdef MERCURYDPM_USE_MPI
206  particlesToBeDeleted_.clear();
207 #endif
208  for (unsigned int i = 0; i < pH.getSize(); i++)
209  {
210  //If the particle is deleted, change the iterator
212  {
213  i--;
214  }
215  }
216 }
unsigned int getSize() const
Gets the size of the particleHandler (including mpi and periodic particles)
Definition: BaseHandler.h:655
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition: BaseHandler.h:613
bool checkBoundaryAfterParticleMoved(BaseParticle *p, ParticleHandler &pH)
Checks if particle is inside the boundary, and deletes the particle if so.
Definition: DeletionBoundary.cc:123
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51

References checkBoundaryAfterParticleMoved(), BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), constants::i, and isActivated_.

◆ copy()

DeletionBoundary * DeletionBoundary::copy ( ) const
overridevirtual

Copy method; creates copy on the heap and returns a pointer to it.

Copy function, which creates a copy and returns a pointer to that copy (on the heap)

Returns
pointer to the copy

Implements BaseBoundary.

67 {
68  return new DeletionBoundary(*this);
69 }
DeletionBoundary()
default constructor
Definition: DeletionBoundary.cc:39

References DeletionBoundary().

◆ deactivate()

void DeletionBoundary::deactivate ( )

Turns off the DeletionBoundary.

306 {
307  isActivated_ = false;
308 }

References isActivated_.

◆ getDistance()

Mdouble DeletionBoundary::getDistance ( const Vec3D position) const
virtual

Returns a negative value if and only if the particle is inside the boundary (and therefore to be deleted).

The default DeletionBoundary is a half-space (specified by a plane) but the geometry can be overridden (e.g. by CubeDeletionBoundary). Calculates the shortest distance between the wall and given position.

Parameters
[in]positionthe position of which the distance should be calculated.

Reimplemented in CubeDeletionBoundary.

109 {
110  return distance_ - Vec3D::dot(position, normal_);
111 }
static Mdouble dot(const Vec3D &a, const Vec3D &b)
Calculates the dot product of two Vec3D: .
Definition: Vector.cc:76

References distance_, Vec3D::dot(), and normal_.

Referenced by checkBoundaryAfterParticleMoved().

◆ getMassOfParticlesDeleted()

double DeletionBoundary::getMassOfParticlesDeleted ( ) const
219 {
220  return massDeleted_;
221 }

References massDeleted_.

Referenced by BoundariesSelfTest::actionsAfterTimeStep().

◆ getName()

std::string DeletionBoundary::getName ( ) const
overridevirtual

Returns the name of the object.

Returns the object's class name (i.e. 'DeletionBoundary').

Returns
the object's class name

Implements BaseObject.

286 {
287  return "DeletionBoundary";
288 }

◆ getNumberOfParticlesDeleted()

unsigned int DeletionBoundary::getNumberOfParticlesDeleted ( ) const

Gets the number of particles deleted by the boundary.

Returns the number of particles deleted by this boundary. TODO For some reason, this causes a segfault — DO NOT USE. valgrind complains that 'numberOfParticlesDeleted_' is not initialised.

296 {
298 }

References numberOfParticlesDeleted_.

Referenced by T_protectiveWall::actionsAfterTimeStep(), BoundariesSelfTest::actionsAfterTimeStep(), and protectiveWall::actionsAfterTimeStep().

◆ getVolumeOfParticlesDeleted()

double DeletionBoundary::getVolumeOfParticlesDeleted ( ) const
224 {
225  return volumeDeleted_;
226 }

References volumeDeleted_.

Referenced by BoundariesSelfTest::actionsAfterTimeStep().

◆ move()

void DeletionBoundary::move ( Mdouble  distance)

Sets the boundary's distance property to the given one.

Resets the boundary's 'distance' from the origin to be the one given.

Parameters
[in]distancethe new 'distance' between boundary and origin. see also comments of DeletionBoundary::set().
98 {
99  distance_ = distance * scaleFactor_;
100 }

References distance_, and scaleFactor_.

◆ oldRead()

void DeletionBoundary::oldRead ( std::istream &  is)

Deprecated read method. use DeletionBoundary::read() instead.

the deprecated version of the read-method. Should not be used by new users!

Deprecated:
Should be gone by Mercury 2.0. Use DeletionBoundary::read() instead.
259 {
260  std::string dummy;
261  is >> dummy >> normal_ >> dummy >> scaleFactor_ >> dummy >> distance_;
262 }

References distance_, normal_, and scaleFactor_.

◆ read()

void DeletionBoundary::read ( std::istream &  is)
overridevirtual

Reads some boundary properties from an std::istream.

Reads a number of boundary properties from the given std::istream.

Parameters
[in,out]isthe istream

Implements BaseBoundary.

240 {
241  BaseBoundary::read(is);
242  std::string dummy;
243  is >> dummy >> normal_
244  >> dummy >> scaleFactor_
245  >> dummy >> distance_
246  >> dummy >> numberOfParticlesDeleted_
247  >> dummy >> massDeleted_
248  >> dummy >> volumeDeleted_
249  >> dummy >> isActivated_
250  >> dummy >> trackOutflow_;
251 }
void read(std::istream &is) override=0
Reads the object's id_ from given istream NB: purely virtual function, overriding the version of Base...
Definition: BaseBoundary.cc:61

References distance_, isActivated_, massDeleted_, normal_, numberOfParticlesDeleted_, BaseBoundary::read(), scaleFactor_, trackOutflow_, and volumeDeleted_.

Referenced by CubeDeletionBoundary::read().

◆ reset()

void DeletionBoundary::reset ( )
229 {
231  massDeleted_ = 0;
232  volumeDeleted_ = 0;
233 }

References massDeleted_, numberOfParticlesDeleted_, and volumeDeleted_.

◆ set()

void DeletionBoundary::set ( const Vec3D normal,
Mdouble  distance 
)

Sets boundary position based on a normal and distance.

Defines the placing of the (2D) boundary based on the given normal and distance.

Parameters
[in]normalboundary normal vector
[in]distance'distance' between the origin and the boundary, such that the following relation is satisfied:

\[ \mathbf{r} \cdot \mathbf{\hat{n}} = d \]


in which \( \mathbf{\hat{n}} \) and \( d \) are the given normal vector and distance, respectively. NB: If the distance is the ACTUAL distance from the origin, the normal vector must be of UNIT LENGTH for the placing of the boundary to be done correctly.
86 {
87  scaleFactor_ = 1. / std::sqrt(Vec3D::dot(normal, normal));
88  normal_ = normal * scaleFactor_;
89  distance_ = distance * scaleFactor_;
90 }

References distance_, Vec3D::dot(), normal_, and scaleFactor_.

Referenced by GranuHeap::actionsAfterTimeStep(), BoundariesSelfTest::BoundariesSelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), protectiveWall::protectiveWall(), Silo::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), FullRestartTest::setupInitialConditions(), and T_protectiveWall::T_protectiveWall().

◆ trackOutflow()

void DeletionBoundary::trackOutflow ( bool  trackOutflow = true)
inline

Turns on the outflow tracker.

void trackOutflow(bool trackOutflow=true)
Turns on the outflow tracker.
Definition: DeletionBoundary.h:121

References trackOutflow(), and trackOutflow_.

Referenced by trackOutflow().

◆ write()

void DeletionBoundary::write ( std::ostream &  os) const
overridevirtual

Writes the boundary properties to an std::ostream.

Writes the boundary properties to an std::ostream.

Parameters
[out]osthe ostream the properties are to be written to.

Implements BaseBoundary.

269 {
271  os << " normal " << normal_
272  << " scaleFactor " << scaleFactor_
273  << " distance " << distance_
274  << " numberOfParticlesDeleted " << numberOfParticlesDeleted_
275  << " massDeleted " << massDeleted_
276  << " volumeDeleted " << volumeDeleted_
277  << " isActivated " << isActivated_
278  << " trackOutflow " << trackOutflow_;
279 }
void write(std::ostream &os) const override=0
Adds object's id_ to given ostream NB: purely virtual function, overriding the version of BaseObject.
Definition: BaseBoundary.cc:70

References distance_, isActivated_, massDeleted_, normal_, numberOfParticlesDeleted_, scaleFactor_, trackOutflow_, volumeDeleted_, and BaseBoundary::write().

Referenced by CubeDeletionBoundary::write().

Member Data Documentation

◆ distance_

Mdouble DeletionBoundary::distance_
private

The boundary's distance from the origin.

Referenced by DeletionBoundary(), getDistance(), move(), oldRead(), read(), set(), and write().

◆ isActivated_

bool DeletionBoundary::isActivated_
private

The DeletionBoundary is activated by default. If the DeletionBoundary is deactivated, then it deletes no particles.

Referenced by activate(), checkBoundaryAfterParticlesMove(), deactivate(), DeletionBoundary(), read(), and write().

◆ massDeleted_

double DeletionBoundary::massDeleted_
private

◆ normal_

Vec3D DeletionBoundary::normal_
private

outward unit normal vector

Referenced by getDistance(), oldRead(), read(), set(), and write().

◆ numberOfParticlesDeleted_

unsigned int DeletionBoundary::numberOfParticlesDeleted_
private

Number of particles that have been deleted by this boundary.

Referenced by checkBoundaryAfterParticleMoved(), DeletionBoundary(), getNumberOfParticlesDeleted(), read(), reset(), and write().

◆ scaleFactor_

Mdouble DeletionBoundary::scaleFactor_
private

This is the factor to rescale the given normal vector to a unit vectors.

NB: Not only the normal vector is rescaled by this factor, also the 'distance' from the origin of the boundary is scaled by this factor! Also, once the boundary position is set with DeletionBoundary::set(), the arguments of any reset of the distance_ property (i.e. usage of DeletionBoundary::move()) will be rescaled by the same factor!

Referenced by DeletionBoundary(), move(), oldRead(), read(), set(), and write().

◆ tracker

std::ofstream DeletionBoundary::tracker
private

◆ trackMassDeleted_

double DeletionBoundary::trackMassDeleted_
private

◆ trackOutflow_

bool DeletionBoundary::trackOutflow_
private

◆ volumeDeleted_

double DeletionBoundary::volumeDeleted_
private

The documentation for this class was generated from the following files: