AngledPeriodicBoundary Class Reference

#include <AngledPeriodicBoundary.h>

+ Inheritance diagram for AngledPeriodicBoundary:

Public Member Functions

AngledPeriodicBoundarycopy () const final
 Used to create a copy of the object NB: purely virtual function. More...
 
void set (Vec3D normalLeft, Vec3D normalRight, Vec3D origin)
 Defines a periodic wall. More...
 
Mdouble distance (const BaseParticle &P)
 Returns the distance of the wall to the particle and sets left_wall = true, if the left wall is the wall closest to the particle. More...
 
Mdouble distance (const Vec3D &P)
 
void shiftPosition (BaseParticle *P)
 shifts the particle (after distance set the left_wall value) More...
 
void shiftPositions (Vec3D &P1, Vec3D &P2)
 only needed in StatisticsVector More...
 
void read (std::istream &is) override
 reads wall More...
 
void oldRead (std::istream &is)
 
void write (std::ostream &os) const override
 outputs wall More...
 
std::string getName () const override
 Returns the name of the object. More...
 
Vec3DgetNormal ()
 
Mdouble getOpeningAngle ()
 angle between walls in radians More...
 
void createPeriodicParticle (BaseParticle *p, ParticleHandler &pH) override
 
void createPeriodicParticles (ParticleHandler &pH) override
 
void checkBoundaryAfterParticleMoved (BaseParticle *P)
 
void checkBoundaryAfterParticlesMove (ParticleHandler &pH) override
 Virtual function that does things to particles, each time step after particles have moved. 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 leftNormal_
 
Vec3D rightNormal_
 outward unit normal vector for right wall More...
 
Vec3D origin_
 common point of both walls More...
 
bool leftWall_
 true if closest wall is the left wall More...
 
Vec3D leftRadialAxis_
 outward unit normal vector for left wall More...
 
Vec3D rightRadialAxis_
 outward unit normal vector for right wall More...
 
Vec3D differenceRadialAxis_
 
Vec3D differenceNormal_
 
Matrix3D rotateLeft
 
Matrix3D rotateRight
 
Vec3D commonAxis_
 The normalized cross product of the left and right normal vector. This vector points in the direction around which the particle is rotated when it is moved from one boundary to the other. This is an internal variable set in the constructor, thus cannot be changed directly by the user. More...
 

Member Function Documentation

◆ checkBoundaryAfterParticleMoved()

void AngledPeriodicBoundary::checkBoundaryAfterParticleMoved ( BaseParticle P)
Todo:
TW: can't we do the shift in the createPeriodicParticles function only? We are checking the distance three times!
298 {
299  if (distance(*P) < 0)
300  {
301  shiftPosition(P);
302  }
303 }
Mdouble distance(const BaseParticle &P)
Returns the distance of the wall to the particle and sets left_wall = true, if the left wall is the w...
Definition: AngledPeriodicBoundary.cc:73
void shiftPosition(BaseParticle *P)
shifts the particle (after distance set the left_wall value)
Definition: AngledPeriodicBoundary.cc:104
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:77

References distance(), Global_Physical_Variables::P, and shiftPosition().

Referenced by checkBoundaryAfterParticlesMove().

◆ checkBoundaryAfterParticlesMove()

void AngledPeriodicBoundary::checkBoundaryAfterParticlesMove ( ParticleHandler pH)
overridevirtual

Virtual function that does things to particles, each time step after particles have moved.

checks whether given particle passed the boundary, and if so, does something special with it. This is called after the particles moved, but before the force-computation. NB: virtual function

Parameters
[in]PParticle checked
[out]pHthe particle handler.
Returns
returns TRUE if given particle actually did pass the boundary

Reimplemented from BaseBoundary.

306 {
307  for (auto p = pH.begin(); p != pH.end(); ++p)
308  {
310  }
311 }
float * p
Definition: Tutorial_Map_using.cpp:9
void checkBoundaryAfterParticleMoved(BaseParticle *P)
Definition: AngledPeriodicBoundary.cc:297
const std::vector< T * >::const_iterator begin() const
Gets the begin of the const_iterator over all Object in this BaseHandler.
Definition: BaseHandler.h:698
const std::vector< T * >::const_iterator end() const
Gets the end of the const_iterator over all BaseBoundary in this BaseHandler.
Definition: BaseHandler.h:712

References BaseHandler< T >::begin(), checkBoundaryAfterParticleMoved(), BaseHandler< T >::end(), and p.

◆ copy()

AngledPeriodicBoundary * AngledPeriodicBoundary::copy ( ) const
finalvirtual

Used to create a copy of the object NB: purely virtual function.

Implements BaseBoundary.

16 {
17 #ifdef DEBUG_CONSTRUCTOR
18  std::cout << "AngledPeriodicBoundary::copy() const finished" << std::endl;
19 #endif
20  return new AngledPeriodicBoundary(*this);
21 #ifdef MERCURYDPM_USE_MPI
22  MPIContainer& communicator = MPIContainer::Instance();
23  if (communicator.getNumberOfProcessors() > 1)
24  {
25  logger(WARN,"AngledPeriodicBoundaries are currently not implemented in parallel MercuryDPM");
26  }
27 #endif
28 
29 }
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
@ WARN
Definition: AngledPeriodicBoundary.h:25
This class contains all information and functions required for communication between processors.
Definition: MpiContainer.h:109
std::size_t getNumberOfProcessors() const
Get the total number of processors participating in this simulation.
Definition: MpiContainer.cc:83
static MPIContainer & Instance()
fetch the instance to be used for communication
Definition: MpiContainer.h:113

References MPIContainer::getNumberOfProcessors(), MPIContainer::Instance(), logger, and WARN.

◆ createPeriodicParticle()

void AngledPeriodicBoundary::createPeriodicParticle ( BaseParticle p,
ParticleHandler pH 
)
override
254 {
255  const Mdouble maxDistance = p->getMaxInteractionRadius() + pH.getLargestParticle()->getMaxInteractionRadius();
256  if (distance(*p) < maxDistance)
257  {
258  //std::cout << "Copy particle " << p->getIndex() << " to new ghost particle" << std::endl;
259  //Step 1: Copy the particle to new ghost particle.
260  BaseParticle* pGhost = p->copy();
261 
262  //std::cout << "pGhostInteractions " << pGhost->getInteractions().size();
263  //Step 2: Copy the interactions to the ghost particle.
265  //std::cout << "-> " << pGhost->getInteractions().size() << std::endl;
266 
267  //Step 3: Shift the ghost to the 'reflected' location.
268  shiftPosition(pGhost);
269  //rotateHistory
270  //std::cout << "pGhostPosition " << pGhost->getPosition() << std::endl;
271 
272  // BaseParticle* F0 = P->copy();
273  // shiftPosition(F0);
274 
275  //Step 4: If Particle is double shifted, get correct original particle
276  BaseParticle* from = p;
277  while (from->getPeriodicFromParticle() != nullptr)
278  from = from->getPeriodicFromParticle();
279  pGhost->setPeriodicFromParticle(from);
280 
281  pH.addObject(pGhost);
282  }
283 }
void copyInteractionsForPeriodicParticles(const BaseInteractable &p)
Copies interactions to this BaseInteractable whenever a periodic copy made.
Definition: BaseInteractable.cc:364
Definition: BaseParticle.h:33
void setPeriodicFromParticle(BaseParticle *p)
Assigns the pointer to the 'original' particle this one's a periodic copy of (used in periodic bounda...
Definition: BaseParticle.h:416
Mdouble getMaxInteractionRadius() const
Returns the particle's interaction radius, which might be different from radius_ (e....
Definition: BaseParticle.h:345
BaseParticle * getPeriodicFromParticle() const
Returns the 'original' particle this one's a periodic copy of.
Definition: BaseParticle.h:324
void addObject(BaseParticle *P) override
Adds a BaseParticle to the ParticleHandler.
Definition: ParticleHandler.cc:150
BaseParticle * getLargestParticle() const
Returns the pointer of the largest particle in the particle handler. When mercury is running in paral...
Definition: ParticleHandler.cc:528

References ParticleHandler::addObject(), BaseInteractable::copyInteractionsForPeriodicParticles(), distance(), ParticleHandler::getLargestParticle(), BaseParticle::getMaxInteractionRadius(), BaseParticle::getPeriodicFromParticle(), p, BaseParticle::setPeriodicFromParticle(), and shiftPosition().

Referenced by createPeriodicParticles().

◆ createPeriodicParticles()

void AngledPeriodicBoundary::createPeriodicParticles ( ParticleHandler pH)
override
286 {
287  unsigned numberOfParticles = pH.getSize();
288  for (unsigned i = 0; i < numberOfParticles; i++)
289  {
291  }
292 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
void createPeriodicParticle(BaseParticle *p, ParticleHandler &pH) override
Definition: AngledPeriodicBoundary.cc:253
unsigned int getSize() const
Gets the size of the particleHandler (including mpi and periodic particles)
Definition: BaseHandler.h:663
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition: BaseHandler.h:621

References createPeriodicParticle(), BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), and i.

◆ distance() [1/2]

Mdouble AngledPeriodicBoundary::distance ( const BaseParticle P)

Returns the distance of the wall to the particle and sets left_wall = true, if the left wall is the wall closest to the particle.

Since this function should be called before calculating any Particle-Wall interactions, it can also be used to set the shift vector in case of curved walls.

74 {
75  return distance(P.getPosition());
76 }

References Global_Physical_Variables::P.

Referenced by checkBoundaryAfterParticleMoved(), and createPeriodicParticle().

◆ distance() [2/2]

Mdouble AngledPeriodicBoundary::distance ( const Vec3D P)
82 {
83  Vec3D position = P - origin_;
84  Mdouble distance_left = Vec3D::dot(position, leftNormal_);
85  Mdouble distance_right = -Vec3D::dot(position, rightNormal_);
86 
87  if (distance_left < distance_right)
88  {
89  leftWall_ = true;
90  //std::cout << "left wall, " << position << ", distance " << distance_left << "<" << distance_right << std::endl;
91  return distance_left;
92  }
93  else
94  {
95  leftWall_ = false;
96  //std::cout << "right wall, " << position << ", distance " << distance_right << "<" << distance_left << std::endl;
97  return distance_right;
98  }
99 }
bool leftWall_
true if closest wall is the left wall
Definition: AngledPeriodicBoundary.h:133
Vec3D origin_
common point of both walls
Definition: AngledPeriodicBoundary.h:128
Vec3D rightNormal_
outward unit normal vector for right wall
Definition: AngledPeriodicBoundary.h:123
Vec3D leftNormal_
Definition: AngledPeriodicBoundary.h:118
Definition: Kernel/Math/Vector.h:30
static Mdouble dot(const Vec3D &a, const Vec3D &b)
Calculates the dot product of two Vec3D: .
Definition: Vector.cc:56

References Vec3D::dot(), leftNormal_, leftWall_, origin_, Global_Physical_Variables::P, and rightNormal_.

◆ getName()

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

Returns the name of the object.

Implements BaseObject.

227 {
228  return "AngledPeriodicBoundary";
229 }

◆ getNormal()

Vec3D & AngledPeriodicBoundary::getNormal ( )
235 {
236  if (leftWall_)
237  return leftNormal_;
238  else
239  return rightNormal_;
240 }

References leftNormal_, leftWall_, and rightNormal_.

◆ getOpeningAngle()

Mdouble AngledPeriodicBoundary::getOpeningAngle ( )

angle between walls in radians

246 {
248 }
AnnoyingScalar acos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:138

References acos(), Vec3D::dot(), leftNormal_, and rightNormal_.

◆ oldRead()

void AngledPeriodicBoundary::oldRead ( std::istream &  is)
206 {
207  std::string dummy;
208  is >> dummy >> leftNormal_ >> dummy >> rightNormal_ >> dummy >> origin_;
210 }
void set(Vec3D normalLeft, Vec3D normalRight, Vec3D origin)
Defines a periodic wall.
Definition: AngledPeriodicBoundary.cc:39
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286

References leftNormal_, origin_, rightNormal_, set(), and oomph::Global_string_for_annotation::string().

◆ read()

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

reads wall

Implements BaseBoundary.

195 {
196  BaseBoundary::read(is);
197  std::string dummy;
198  is >> dummy >> leftNormal_ >> dummy >> rightNormal_ >> dummy >> origin_;
200 }
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:40

References leftNormal_, origin_, BaseBoundary::read(), rightNormal_, set(), and oomph::Global_string_for_annotation::string().

◆ set()

void AngledPeriodicBoundary::set ( Vec3D  normalLeft,
Vec3D  normalRight,
Vec3D  origin 
)

Defines a periodic wall.

given a normal vector s.t. all particles are within {x: position_left<=normal*x<position_right}. The shift vector is set assuming that the domain is rectangular (shift parallel to normal).

Parameters
[in]normalLeft
[in]normalRight
[in]origin
Todo:
TW: Note, I cannot calculate angular shift; this needs to be revisited when we complete quaternion implementation
40 {
41  origin_ = origin;
42  leftNormal_ = normalLeft / Vec3D::getLength(normalLeft);
43  rightNormal_ = normalRight / Vec3D::getLength(normalRight);
44  //http://math.stackexchange.com/questions/180418/calculate-rotation-matrix-to-align-vector-a-to-vector-b-in-3d
48  Matrix3D vx = {0, -v.Z, v.Y,
49  v.Z, 0, -v.X,
50  -v.Y, v.X, 0};
51  Matrix3D eye = {1, 0, 0, 0, 1, 0, 0, 0, 1};
52  rotateLeft = eye - vx + vx * vx * ((1 - c) / s / s);
53  rotateRight = eye + vx + vx * vx * ((1 - c) / s / s);
54  //std::cout << "rotationMatrix" << rotationMatrix << std::endl;
55  commonAxis_ = v / s;
61  // walls; maybe this has to wait till quaternions are implemented.}
62  //angularShift = 0;
63  // std::cout << "common_axis " << common_axis
64  // << ", radialAxis_left " << radialAxis_left
65  // << ", radialAxis_right " << radialAxis_right
66  // << ", angularShift " << angularShift
67  // << std::endl;
68 }
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
Matrix3D rotateLeft
Definition: AngledPeriodicBoundary.h:151
Vec3D rightRadialAxis_
outward unit normal vector for right wall
Definition: AngledPeriodicBoundary.h:141
Matrix3D rotateRight
Definition: AngledPeriodicBoundary.h:153
Vec3D commonAxis_
The normalized cross product of the left and right normal vector. This vector points in the direction...
Definition: AngledPeriodicBoundary.h:162
Vec3D leftRadialAxis_
outward unit normal vector for left wall
Definition: AngledPeriodicBoundary.h:137
Vec3D differenceNormal_
Definition: AngledPeriodicBoundary.h:149
Vec3D differenceRadialAxis_
Definition: AngledPeriodicBoundary.h:145
Implementation of a 3D matrix.
Definition: Kernel/Math/Matrix.h:17
static Vec3D cross(const Vec3D &a, const Vec3D &b)
Calculates the cross product of two Vec3D: .
Definition: Vector.cc:143
Mdouble getLength() const
Calculates the length of this Vec3D: .
Definition: Vector.cc:339
RealScalar s
Definition: level1_cplx_impl.h:130
StridedVectorType vx(make_vector(x, *n, std::abs(*incx)))
int c
Definition: calibrate.py:100

References calibrate::c, commonAxis_, Vec3D::cross(), differenceNormal_, differenceRadialAxis_, Vec3D::dot(), Vec3D::getLength(), leftNormal_, leftRadialAxis_, origin_, rightNormal_, rightRadialAxis_, rotateLeft, rotateRight, s, v, and vx().

Referenced by oldRead(), read(), and FullRestartTest::setupInitialConditions().

◆ shiftPosition()

void AngledPeriodicBoundary::shiftPosition ( BaseParticle P)

shifts the particle (after distance set the left_wall value)

Todo:
add velocity, angular, springs shift
Todo:
TW: not sure how to calculate the angular position in common_axis direction; this needs to be revisited when we complete quaternion implementation
Todo:
TW: recalculate the orientation here
105 {
106  Vec3D position = P->getPosition() - origin_;
107  if (leftWall_)
108  {
109  Mdouble normalDistance = Vec3D::dot(position, leftNormal_);
110  Mdouble radialDistance = Vec3D::dot(position, leftRadialAxis_);
111  P->move(normalDistance * differenceNormal_ + radialDistance * differenceRadialAxis_);
112  Mdouble normalVelocity = Vec3D::dot(P->getVelocity(), leftNormal_);
113  Mdouble radialVelocity = Vec3D::dot(P->getVelocity(), leftRadialAxis_);
114  P->accelerate(normalVelocity * differenceNormal_ + radialVelocity * differenceRadialAxis_);
115  Mdouble normalAngularDistance = Vec3D::dot(P->getOrientation().getAxis(), leftNormal_);
116  Mdouble radialAngularDistance = Vec3D::dot(P->getOrientation().getAxis(), leftRadialAxis_);
118  P->rotate(normalAngularDistance * differenceNormal_ + radialAngularDistance * differenceRadialAxis_);
119  Mdouble normalAngularVelocity = Vec3D::dot(P->getAngularVelocity(), leftNormal_);
120  Mdouble radialAngularVelocity = Vec3D::dot(P->getAngularVelocity(), leftRadialAxis_);
121  P->angularAccelerate(normalAngularVelocity * differenceNormal_ + radialAngularVelocity * differenceRadialAxis_);
122  leftWall_ = false;
123  //std::cout << "shift to right wall, " << P->getInteractions().size() << std::endl;
124  for (BaseInteraction* i : P->getInteractions())
125  {
126  if (i->getP()->getIndex() >= P->getIndex())
127  {
128  i->rotateHistory(rotateRight);
129  }
130  }
131  }
132  else
133  {
134  Mdouble normalDistance = Vec3D::dot(position, rightNormal_);
135  Mdouble radialDistance = Vec3D::dot(position, rightRadialAxis_);
136  P->move(-normalDistance * differenceNormal_ - radialDistance * differenceRadialAxis_);
137  Mdouble normalVelocity = Vec3D::dot(P->getVelocity(), rightNormal_);
138  Mdouble radialVelocity = Vec3D::dot(P->getVelocity(), rightRadialAxis_);
139  P->accelerate(-normalVelocity * differenceNormal_ - radialVelocity * differenceRadialAxis_);
140 
142 
143  Mdouble normalAngularVelocity = Vec3D::dot(P->getAngularVelocity(), rightNormal_);
144  Mdouble radialAngularVelocity = Vec3D::dot(P->getAngularVelocity(), rightRadialAxis_);
145  P->angularAccelerate(
146  -normalAngularVelocity * differenceNormal_ - radialAngularVelocity * differenceRadialAxis_);
147  leftWall_ = true;
148  //std::cout << "shift to left wall, " << P->getPosition() << std::endl;
149  for (BaseInteraction* i : P->getInteractions())
150  {
151  if (i->getP()->getIndex() >= P->getIndex()) //if it is the deleted interaction
152  {
153  i->rotateHistory(rotateLeft);
154  }
155  }
156  }
157 }
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:39

References differenceNormal_, differenceRadialAxis_, Vec3D::dot(), i, leftNormal_, leftRadialAxis_, leftWall_, origin_, Global_Physical_Variables::P, rightNormal_, rightRadialAxis_, rotateLeft, and rotateRight.

Referenced by checkBoundaryAfterParticleMoved(), and createPeriodicParticle().

◆ shiftPositions()

void AngledPeriodicBoundary::shiftPositions ( Vec3D P1,
Vec3D P2 
)

only needed in StatisticsVector

Todo:
TW: this still doesn't shift all data
163 {
165  Vec3D position1 = P1 - origin_;
166  Vec3D position2 = P2 - origin_;
167  Mdouble normalDistance;
168  Mdouble radialDistance;
169  if (leftWall_)
170  {
171  normalDistance = Vec3D::dot(position1, leftNormal_);
172  radialDistance = Vec3D::dot(position1, leftRadialAxis_);
173  P1 += (normalDistance * differenceNormal_ + radialDistance * differenceRadialAxis_);
174  normalDistance = Vec3D::dot(position2, leftNormal_);
175  radialDistance = Vec3D::dot(position2, leftRadialAxis_);
176  P2 += (normalDistance * differenceNormal_ + radialDistance * differenceRadialAxis_);
177  leftWall_ = false;
178  }
179  else
180  {
181  normalDistance = Vec3D::dot(position1, rightNormal_);
182  radialDistance = Vec3D::dot(position1, rightRadialAxis_);
183  P1 += (-normalDistance * differenceNormal_ - radialDistance * differenceRadialAxis_);
184  normalDistance = Vec3D::dot(position2, rightNormal_);
185  radialDistance = Vec3D::dot(position2, rightRadialAxis_);
186  P2 += (-normalDistance * differenceNormal_ - radialDistance * differenceRadialAxis_);
187  leftWall_ = true;
188  }
189 }

References differenceNormal_, differenceRadialAxis_, Vec3D::dot(), leftNormal_, leftRadialAxis_, leftWall_, origin_, rightNormal_, and rightRadialAxis_.

◆ write()

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

outputs wall

Implements BaseBoundary.

216 {
218  os << " normal_left " << leftNormal_
219  << " normal_right " << rightNormal_
220  << " origin " << origin_;
221 }
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:49

References leftNormal_, origin_, rightNormal_, and BaseBoundary::write().

Member Data Documentation

◆ commonAxis_

Vec3D AngledPeriodicBoundary::commonAxis_
private

The normalized cross product of the left and right normal vector. This vector points in the direction around which the particle is rotated when it is moved from one boundary to the other. This is an internal variable set in the constructor, thus cannot be changed directly by the user.

Referenced by set().

◆ differenceNormal_

Vec3D AngledPeriodicBoundary::differenceNormal_
private

Referenced by set(), shiftPosition(), and shiftPositions().

◆ differenceRadialAxis_

Vec3D AngledPeriodicBoundary::differenceRadialAxis_
private

Referenced by set(), shiftPosition(), and shiftPositions().

◆ leftNormal_

Vec3D AngledPeriodicBoundary::leftNormal_
private

outward unit normal vector for left wall

Referenced by distance(), getNormal(), getOpeningAngle(), oldRead(), read(), set(), shiftPosition(), shiftPositions(), and write().

◆ leftRadialAxis_

Vec3D AngledPeriodicBoundary::leftRadialAxis_
private

outward unit normal vector for left wall

Referenced by set(), shiftPosition(), and shiftPositions().

◆ leftWall_

bool AngledPeriodicBoundary::leftWall_
private

true if closest wall is the left wall

Referenced by distance(), getNormal(), shiftPosition(), and shiftPositions().

◆ origin_

Vec3D AngledPeriodicBoundary::origin_
private

common point of both walls

Referenced by distance(), oldRead(), read(), set(), shiftPosition(), shiftPositions(), and write().

◆ rightNormal_

Vec3D AngledPeriodicBoundary::rightNormal_
private

outward unit normal vector for right wall

Referenced by distance(), getNormal(), getOpeningAngle(), oldRead(), read(), set(), shiftPosition(), shiftPositions(), and write().

◆ rightRadialAxis_

Vec3D AngledPeriodicBoundary::rightRadialAxis_
private

outward unit normal vector for right wall

Referenced by set(), shiftPosition(), and shiftPositions().

◆ rotateLeft

Matrix3D AngledPeriodicBoundary::rotateLeft
private

Referenced by set(), and shiftPosition().

◆ rotateRight

Matrix3D AngledPeriodicBoundary::rotateRight
private

Referenced by set(), and shiftPosition().


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