revision: v0.14
Matrix.h
Go to the documentation of this file.
1 //Copyright (c) 2013-2020, The MercuryDPM Developers Team. All rights reserved.
2 //For the list of developers, see <http://www.MercuryDPM.org/Team>.
3 //
4 //Redistribution and use in source and binary forms, with or without
5 //modification, are permitted provided that the following conditions are met:
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
11 // * Neither the name MercuryDPM nor the
12 // names of its contributors may be used to endorse or promote products
13 // derived from this software without specific prior written permission.
14 //
15 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 //DISCLAIMED. IN NO EVENT SHALL THE MERCURYDPM DEVELOPERS TEAM BE LIABLE FOR ANY
19 //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 
26 #ifndef MATRIX_H
27 #define MATRIX_H
28 
29 #include <cmath>
30 #include <sstream>
31 #include "Vector.h"
32 #include "SmallMatrix.h"
33 
37 class Matrix3D
38 {
39 public:
43  Mdouble XX, XY, XZ, YX, YY, YZ, ZX, ZY, ZZ;
44 
48  Matrix3D();
49 
53  Matrix3D(Mdouble xx, Mdouble xy, Mdouble xz, Mdouble yx, Mdouble yy, Mdouble yz,
54  Mdouble zx,
55  Mdouble zy,
56  Mdouble zz);
57 
61  Matrix3D(const SmallMatrix<3, 3>& matrix);
62 
66  void setZero();
67 
71  double trace() const;
72 
76  Vec3D diag() const;
77 
81  double deviator() const;
82 
86  Matrix3D operator+(const Matrix3D& A) const;
87 
91  Matrix3D operator-(const Matrix3D& A) const;
92 
96  Matrix3D operator+(Mdouble a) const;
97 
101  Matrix3D operator-(Mdouble a) const;
102 
106  Matrix3D operator*(Mdouble a) const;
107 
111  Vec3D operator*(const Vec3D& a) const;
112 
116  Matrix3D operator*(const Matrix3D& a) const;
117 
121  Matrix3D operator/(Mdouble a) const;
122 
126  friend std::ostream& operator<<(std::ostream& os, const Matrix3D& A);
127 
131  friend std::istream& operator>>(std::istream& is, Matrix3D& A);
132 
136  Matrix3D& operator+=(const Matrix3D& A);
137 
141  Matrix3D& operator-=(const Matrix3D& A);
142 
147 
151  static Matrix3D square(const Matrix3D& A);
152 
156  static Matrix3D sqrt(const Matrix3D& A);
157 
161  static Matrix3D dyadic(const Vec3D& a, const Vec3D& b);
162 
166  static Matrix3D cross(const Vec3D& a, const Matrix3D& b);
167 
171  static Matrix3D inverse(const Matrix3D& A);
172 
176  Vec3D ldivide(const Vec3D& b);
177 
181  Matrix3D getCylindricalTensorField(const Vec3D& p) const;
182 };
183 
184 
185 #endif
DPMBase::setMax
void setMax(const Vec3D &max)
Sets the maximum coordinates of the problem domain.
Definition: DPMBase.cc:1073
TriangleWall
A TriangleWall is convex polygon defined as an intersection of InfiniteWall's.
Definition: TriangleWall.h:57
Matrix3D::trace
double trace() const
Sum of the diagonal elements.
Definition: Matrix.cc:84
MpiMaserChuteTest::setupInitialConditions
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: MaserChuteUnitTestMPI.cpp:39
BaseInteractable::getAngularVelocity
virtual const Vec3D & getAngularVelocity() const
Returns the angular velocity of this interactable.
Definition: BaseInteractable.cc:341
mathsFunc::square
T square(const T val)
squares a number
Definition: ExtendedMath.h:106
Matrix3D::operator<<
friend std::ostream & operator<<(std::ostream &os, const Matrix3D &A)
Add elements to ostream.
Definition: Matrix.cc:216
DPMBase::setName
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:420
Matrix3D::YZ
Mdouble YZ
Definition: Matrix.h:43
MarbleRun::bigSeesawId
unsigned bigSeesawId
groupId of the big seesaw (so we can find all the triangles belonging to it)
Definition: MarbleRunWithSeesaw.cpp:89
MarbleRun::setTorsionFrictionCoefficient
void setTorsionFrictionCoefficient(double coeff)
Definition: MarbleRun.cpp:71
MarbleRun::setParticleDensity
void setParticleDensity(double density)
Definition: MarbleRun.cpp:59
File::setFileType
void setFileType(FileType fileType)
Sets the type of file needed to write into or read from. File::fileType_.
Definition: File.cc:215
MarbleRun::smallSeesawCOR
Vec3D smallSeesawCOR
center of rotation
Definition: MarbleRunWithSeesaw.cpp:139
LinearViscoelasticFrictionSpecies
Species< LinearViscoelasticNormalSpecies, FrictionSpecies > LinearViscoelasticFrictionSpecies
Definition: LinearViscoelasticFrictionSpecies.h:34
WallHandler::readTriangleWall
unsigned readTriangleWall(std::string filename, ParticleSpecies *species, Mdouble scaleFactor=1, Vec3D centerOfRotation={0, 0, 0}, Vec3D velocity={0, 0, 0}, Vec3D angularVelocity={0, 0, 0})
Reads triangulated walls from vtk or stl files, and converts them into a set of TriangleWalls.
Definition: WallHandler.cc:362
SilbertPeriodic.h
DPMBase::setTimeStep
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition: DPMBase.cc:1225
DPMBase::setMin
void setMin(const Vec3D &min)
Sets the minimum coordinates of the problem domain.
Definition: DPMBase.cc:1109
MarbleRun::restitutionCoefficient
double restitutionCoefficient
Definition: MarbleRun.cpp:41
DPMBase::getTimeStep
Mdouble getTimeStep() const
Returns the simulation time step.
Definition: DPMBase.cc:1241
Vector.h
constants::pi
const Mdouble pi
Definition: ExtendedMath.h:45
PeriodicBoundary.h
Matrix3D::XX
Mdouble XX
all nine matrix elements
Definition: Matrix.h:43
DPMBase::setParticlesWriteVTK
void setParticlesWriteVTK(bool writeParticlesVTK)
Sets whether particles are written in a VTK file.
Definition: DPMBase.cc:934
MarbleRun::setRollingFrictionCoefficient
void setRollingFrictionCoefficient(double coeff)
Definition: MarbleRun.cpp:67
FlowRule
Definition: PeriodicInflow2D_Initiation.cpp:30
IntersectionOfWalls
A IntersectionOfWalls is convex polygon defined as an intersection of InfiniteWall's.
Definition: IntersectionOfWalls.h:59
Matrix3D::XZ
Mdouble XZ
Definition: Matrix.h:43
MarbleRun::setParticlePosition
void setParticlePosition(Vec3D pos)
Definition: MarbleRun.cpp:51
MarbleRun::loadBigSeesaw
void loadBigSeesaw()
Definition: MarbleRunWithSeesaw.cpp:114
DPMBase::getXMax
Mdouble getXMax() const
If the length of the problem domain in x-direction is XMax - XMin, then getXMax() returns XMax.
Definition: DPMBase.h:607
BaseInteractable::setPosition
void setPosition(const Vec3D &position)
Sets the position of this BaseInteractable.
Definition: BaseInteractable.h:239
BaseWall
Basic class for walls.
Definition: BaseWall.h:48
logger
Logger< MERCURY_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
Matrix3D::YX
Mdouble YX
Definition: Matrix.h:43
ChuteBottom
Used by Chute::createBottom to create an unordered particle layer.
Definition: ChuteBottom.h:40
IntersectionOfWalls::addObject
void addObject(Vec3D normal, Vec3D point)
Adds a wall to the set of infinite walls, given a normal vector pointing into the wall (i....
Definition: IntersectionOfWalls.cc:137
mathsFunc::exp
Mdouble exp(Mdouble Exponent)
Definition: ExtendedMath.cc:84
InfiniteWall::setNormal
void setNormal(Vec3D normal)
Changes the normal of the InfiniteWall.
Definition: InfiniteWall.cc:127
DPMBase::random
RNG random
This is a random generator, often used for setting up the initial conditions etc.....
Definition: DPMBase.h:1390
Vec3D::X
Mdouble X
the vector components
Definition: Vector.h:65
Matrix.h
MarbleRun::actionsAfterTimeStep
void actionsAfterTimeStep() override
Computes the movement of the two seesaws.
Definition: MarbleRunWithSeesaw.cpp:219
main
int main(int argc UNUSED, char *argv[] UNUSED)
Definition: makebottom.cpp:86
DPMBase::setYMax
void setYMax(Mdouble newYMax)
Sets the value of YMax, the upper bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1182
MaserRepeatedOutInMPI2Test::actionsAfterTimeStep
void actionsAfterTimeStep() override
A virtual function which allows to define operations to be executed after time step.
Definition: MaserRepeatedOutInMPI2Test.cpp:96
MaserRepeatedOutInMPI2Test::actionsAfterSolve
void actionsAfterSolve() override
A virtual function which allows to define operations to be executed after the solve().
Definition: MaserRepeatedOutInMPI2Test.cpp:105
Mercury3D
This adds on the hierarchical grid code for 3D problems.
Definition: Mercury3D.h:37
Matrix3D::diag
Vec3D diag() const
The diagonal elements.
Definition: Matrix.cc:93
Matrix3D::inverse
static Matrix3D inverse(const Matrix3D &A)
Computes the inverse of a matrix.
Definition: Matrix.cc:349
main
int main()
Definition: MarbleRunWithSeesaw.cpp:297
BaseInteractable::getOrientation
const Quaternion & getOrientation() const
Returns the orientation of this BaseInteractable.
Definition: BaseInteractable.h:230
DPMBase::restartFile
File restartFile
An instance of class File to handle in- and output into a .restart file.
Definition: DPMBase.h:1451
INFO
LL< Log::INFO > INFO
Info log level.
Definition: Logger.cc:55
DPMBase::setWallsWriteVTK
void setWallsWriteVTK(FileType writeWallsVTK)
Sets whether walls are written into a VTK file.
Definition: DPMBase.cc:908
Matrix3D::deviator
double deviator() const
Deviator.
Definition: Matrix.cc:103
MarbleRun::bigSeesawMass
double bigSeesawMass
mass
Definition: MarbleRunWithSeesaw.cpp:95
FlowRule::createBottom
void createBottom()
Creates the chute bottom, which can be either flat or one of three flavours of rough.
Definition: makebottom.cpp:34
mathsFunc::log
Mdouble log(Mdouble Power)
Definition: ExtendedMath.cc:104
Matrix3D::operator+
Matrix3D operator+(const Matrix3D &A) const
Matrix addition.
Definition: Matrix.cc:115
BaseParticle::setRadius
virtual void setRadius(Mdouble radius)
Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species)
Definition: BaseParticle.cc:542
Vec3D
Definition: Vector.h:50
DPMBase::solve
void solve()
The work horse of the code.
Definition: DPMBase.cc:4003
DPMBase::fStatFile
File fStatFile
An instance of class File to handle in- and output into a .fstat file.
Definition: DPMBase.h:1441
A
@ A
Definition: StatisticsVector.h:42
DPMBase::getYMin
Mdouble getYMin() const
If the length of the problem domain in y-direction is YMax - YMin, then getYMin() returns YMin.
Definition: DPMBase.h:613
Helpers.h
main
int main()
Definition: MarbleRun.cpp:141
DPMBase::setZMax
void setZMax(Mdouble newZMax)
Sets the value of ZMax, the upper bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1208
Mdouble
double Mdouble
Definition: GeneralDefine.h:34
Matrix3D::YY
Mdouble YY
Definition: Matrix.h:43
DPMBase::boundaryHandler
BoundaryHandler boundaryHandler
An object of the class BoundaryHandler which concerns insertion and deletion of particles into or fro...
Definition: DPMBase.h:1410
Matrix3D::ZX
Mdouble ZX
Definition: Matrix.h:43
MarbleRun::bigSeesawInvInertia
Matrix3D bigSeesawInvInertia
Definition: MarbleRunWithSeesaw.cpp:103
MaserRepeatedOutInMPI2Test
Definition: MaserRepeatedOutInMPI2Test.cpp:35
Matrix3D::cross
static Matrix3D cross(const Vec3D &a, const Matrix3D &b)
'Special' cross product; CP of vector with each column of a matrix
Definition: Matrix.cc:337
Matrix3D
Implementation of a 3D matrix.
Definition: Matrix.h:38
Matrix3D::ldivide
Vec3D ldivide(const Vec3D &b)
A.ldivide(b) computes the solution x to A*x=b.
Definition: Matrix.cc:373
MarbleRun::smallSeesawInvInertia
Matrix3D smallSeesawInvInertia
Definition: MarbleRunWithSeesaw.cpp:142
BaseParticle::getRadius
Mdouble getRadius() const
Returns the particle's radius.
Definition: BaseParticle.h:348
SmallMatrix
Data type for small dense matrix.
Definition: SmallMatrix.h:68
BaseInteractable::setVelocity
void setVelocity(const Vec3D &velocity)
set the velocity of the BaseInteractable.
Definition: BaseInteractable.cc:350
SmallMatrix.h
main
int main()
Definition: MathCheck.cpp:30
MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test
MaserRepeatedOutInMPI2Test()
Definition: MaserRepeatedOutInMPI2Test.cpp:38
Matrix3D::operator/
Matrix3D operator/(Mdouble a) const
Scalar division.
Definition: Matrix.cc:203
double
Chute::setInflowParticleRadius
void setInflowParticleRadius(Mdouble inflowParticleRadius)
Sets the radius of the inflow particles to a single one (i.e. ensures a monodisperse inflow).
Definition: Chute.cc:775
Matrix3D::operator>>
friend std::istream & operator>>(std::istream &is, Matrix3D &A)
Add elements to istream.
Definition: Matrix.cc:230
MarbleRun
Definition: MarbleRun.cpp:35
mathsFunc::sin
Mdouble sin(Mdouble x)
Definition: ExtendedMath.cc:44
BaseParticle::setSpecies
void setSpecies(const ParticleSpecies *species)
Definition: BaseParticle.cc:804
DPMBase::setDomain
void setDomain(const Vec3D &min, const Vec3D &max)
Sets the minimum coordinates of the problem domain.
Definition: DPMBase.cc:1089
MarbleRun::includeInDomain
void includeInDomain(Vec3D pos)
Definition: MarbleRun.cpp:88
MarbleRun::MarbleRun
MarbleRun()
Definition: MarbleRun.cpp:46
MarbleRun::smallSeesawId
unsigned smallSeesawId
groupId of the small seesaw (so we can find all the triangles belonging to it)
Definition: MarbleRunWithSeesaw.cpp:128
LinearViscoelasticSpecies.h
DPMBase::getTime
Mdouble getTime() const
Returns the current simulation time.
Definition: DPMBase.cc:805
MarbleRun::smallSeesawCOM0
Vec3D smallSeesawCOM0
Definition: MarbleRunWithSeesaw.cpp:137
Species
Contains material and contact force properties.
Definition: Species.h:35
main
int main(int argc, char *argv[])
Definition: MaserChuteUnitTestMPI.cpp:85
DPMBase::setXMax
void setXMax(Mdouble newXMax)
Sets the value of XMax, the upper bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1156
Matrix3D::ZY
Mdouble ZY
Definition: Matrix.h:43
InfiniteWall.h
Matrix3D::getCylindricalTensorField
Matrix3D getCylindricalTensorField(const Vec3D &p) const
Returns the matrix in cylindrical coordinates.
Definition: Matrix.cc:394
Matrix3D::operator+=
Matrix3D & operator+=(const Matrix3D &A)
Matrix addition.
Definition: Matrix.cc:241
MarbleRun::bigSeesawCOR
Vec3D bigSeesawCOR
center of rotation
Definition: MarbleRunWithSeesaw.cpp:100
MarbleRun::setupInitialConditions
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: MarbleRun.cpp:106
MarbleRun::loadSTLFile
void loadSTLFile(std::string stlFile)
Definition: MarbleRun.cpp:83
DPMBase::speciesHandler
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1385
MpiMaserChuteTest
Definition: MaserChuteUnitTestMPI.cpp:36
SubcriticalMaserBoundaryTEST
Definition: SubcriticalMaserBoundaryTEST.h:36
ParticleHandler::getNumberOfRealObjectsLocal
unsigned int getNumberOfRealObjectsLocal() const
Returns the number of real objects on a local domain. MPI particles and periodic particles are neglec...
Definition: ParticleHandler.cc:1273
Matrix3D::setZero
void setZero()
Sets all elements to zero.
Definition: Matrix.cc:75
SilbertPeriodic
Definition: flowRuleDiego_HeightAngle.cpp:35
DPMBase.h
SphericalParticle
A spherical particle is the most simple particle used in MercuryDPM.
Definition: SphericalParticle.h:37
DPMBase::wallHandler
WallHandler wallHandler
An object of the class WallHandler. Contains pointers to all the walls created.
Definition: DPMBase.h:1405
operator<<
std::ostream & operator<<(std::ostream &os, const Matrix3D &A)
Definition: Matrix.cc:216
SubcriticalMaserBoundaryTEST.h
Matrix3D::ZZ
Mdouble ZZ
Definition: Matrix.h:43
Quaternion::getAngleZ
Mdouble getAngleZ() const
Converts a quaternion to the rotation angle in the XY plane (for Mercury2D). See Wikipedia for detail...
Definition: Quaternion.cc:487
DPMBase::setTimeMax
void setTimeMax(Mdouble newTMax)
Sets a new value for the maximum simulation duration.
Definition: DPMBase.cc:870
Vec3D::Y
Mdouble Y
Definition: Vector.h:65
DPMBase::setGravity
void setGravity(Vec3D newGravity)
Sets a new value for the gravitational acceleration.
Definition: DPMBase.cc:1374
Matrix3D::square
static Matrix3D square(const Matrix3D &A)
Calculates the pointwise square.
Definition: Matrix.cc:298
InfiniteWall
A infinite wall fills the half-space {point: (position_-point)*normal_<=0}.
Definition: InfiniteWall.h:48
main
int main()
Definition: MaserRepeatedOutInMPI2Test.cpp:121
MarbleRun::smallSeesawFirstElement
BaseWall * smallSeesawFirstElement
Definition: MarbleRunWithSeesaw.cpp:132
Chute::setFixedParticleRadius
void setFixedParticleRadius(Mdouble fixedParticleRadius)
Sets the particle radius of the fixed particles which constitute the (rough) chute bottom.
Definition: Chute.cc:608
constants::i
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51
Matrix3D::operator/=
Matrix3D & operator/=(Mdouble a)
Scalar division.
Definition: Matrix.cc:279
BaseWall::setSpecies
void setSpecies(const ParticleSpecies *species)
Defines the species of the current wall.
Definition: BaseWall.cc:171
DPMBase::getZMin
Mdouble getZMin() const
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMin() returns ZMin.
Definition: DPMBase.h:625
DPMBase::setYMin
void setYMin(Mdouble newYMin)
Sets the value of YMin, the lower bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1025
File::writeFirstAndLastTimeStep
void writeFirstAndLastTimeStep()
Sets File::saveCount_ to the highest possible value such that only the first and last time step is wr...
Definition: File.cc:264
Matrix3D::operator-=
Matrix3D & operator-=(const Matrix3D &A)
Matrix substraction.
Definition: Matrix.cc:260
FlowRule::setName
void setName()
Definition: bidisperse.cpp:44
BaseHandler::getLastObject
T * getLastObject()
Gets a pointer to the last Object in this BaseHandler.
Definition: BaseHandler.h:634
DPMBase::setNumberOfDomains
void setNumberOfDomains(std::vector< unsigned > direction)
Sets the number of domains in x-,y- and z-direction. Required for parallel computations.
Definition: DPMBase.cc:5049
BaseHandler::getObject
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition: BaseHandler.h:613
Mdouble
MarbleRun::smallSeesawMass
double smallSeesawMass
mass
Definition: MarbleRunWithSeesaw.cpp:134
UNUSED
#define UNUSED
Definition: GeneralDefine.h:39
Matrix3D::XY
Mdouble XY
Definition: Matrix.h:43
MarbleRun::getParticleMass
double getParticleMass()
Definition: MarbleRun.cpp:75
SubcriticalMaserBoundaryTEST::setActivationTime
void setActivationTime(Mdouble time)
sets the activate time of the maser
Definition: SubcriticalMaserBoundaryTEST.cc:293
BaseHandler::copyAndAddObject
std::enable_if<!std::is_pointer< U >::value, U * >::type copyAndAddObject(const U &object)
Creates a copy of a Object and adds it to the BaseHandler.
Definition: BaseHandler.h:379
MarbleRun::bigSeesawAngleZMin
double bigSeesawAngleZMin
Definition: MarbleRunWithSeesaw.cpp:109
Vec3D::cross
static Vec3D cross(const Vec3D &a, const Vec3D &b)
Calculates the cross product of two Vec3D: .
Definition: Vector.cc:163
MarbleRun::smallSeesawAngleZMin
double smallSeesawAngleZMin
Definition: MarbleRunWithSeesaw.cpp:148
MarbleRun::bigSeesawAngleZMax
double bigSeesawAngleZMax
Definition: MarbleRunWithSeesaw.cpp:108
RNG::getRandomNumber
Mdouble getRandomNumber()
This is a random generating routine can be used for initial positions.
Definition: RNG.cc:142
Matrix3D::Matrix3D
Matrix3D()
default constructor
Definition: Matrix.cc:34
ChuteBottom::setThickness
void setThickness(Mdouble thickness)
Sets the thickness of the multilayer rough bottom.
Definition: ChuteBottom.cc:353
helpers::writeToFile
bool writeToFile(std::string filename, std::string filecontent)
Writes a string to a file.
Definition: Helpers.cc:445
PeriodicBoundary
Defines a pair of periodic walls. Inherits from BaseBoundary.
Definition: PeriodicBoundary.h:41
operator>>
std::istream & operator>>(std::istream &is, Matrix3D &A)
Definition: Matrix.cc:230
DPMBase::getGravity
Vec3D getGravity() const
Returns the gravitational acceleration.
Definition: DPMBase.cc:1382
DPMBase::getYMax
Mdouble getYMax() const
If the length of the problem domain in y-direction is YMax - YMin, then getYMax() returns XMax.
Definition: DPMBase.h:619
Matrix3D::operator*
Matrix3D operator*(Mdouble a) const
Scalar multiplication.
Definition: Matrix.cc:164
BaseHandler::clear
virtual void clear()
Empties the whole BaseHandler by removing all Objects and setting all other variables to 0.
Definition: BaseHandler.h:528
DPMBase::getZMax
Mdouble getZMax() const
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMax() returns ZMax.
Definition: DPMBase.h:631
DPMBase::setXMin
void setXMin(Mdouble newXMin)
Sets the value of XMin, the lower bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1001
Matrix3D::operator-
Matrix3D operator-(const Matrix3D &A) const
Matrix subtraction.
Definition: Matrix.cc:128
PeriodicBoundary::set
void set(Vec3D normal, Mdouble distanceLeft, Mdouble distanceRight)
Defines a PeriodicBoundary by its normal and positions.
Definition: PeriodicBoundary.cc:84
MaserRepeatedOutInMPI2Test::setupInitialConditions
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: MaserRepeatedOutInMPI2Test.cpp:63
PROCESSOR_ID
#define PROCESSOR_ID
Definition: GeneralDefine.h:63
DPMBase::particleHandler
ParticleHandler particleHandler
An object of the class ParticleHandler, contains the pointers to all the particles created.
Definition: DPMBase.h:1395
Vec3D::Z
Mdouble Z
Definition: Vector.h:65
MarbleRun::bigSeesawCOM0
Vec3D bigSeesawCOM0
Definition: MarbleRunWithSeesaw.cpp:98
DPMBase::setSaveCount
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:406
MarbleRun::smallSeesawAngleZMax
double smallSeesawAngleZMax
Definition: MarbleRunWithSeesaw.cpp:147
Matrix3D::sqrt
static Matrix3D sqrt(const Matrix3D &A)
Calculates the pointwise square root.
Definition: Matrix.cc:310
ExtendedMath.h
DPMBase::removeOldFiles
void removeOldFiles() const
Definition: DPMBase.cc:4256
IntersectionOfWalls.h
InfiniteWall::set
void set(Vec3D normal, Vec3D point)
Defines a standard wall, given an outward normal vector s.t. normal*x=normal*point for all x of the w...
Definition: InfiniteWall.cc:118
LinearViscoelasticFrictionSpecies.h
MarbleRun::setRestitutionCoefficient
void setRestitutionCoefficient(double coeff)
Definition: MarbleRun.cpp:79
MarbleRun::species
LinearViscoelasticFrictionSpecies * species
Definition: MarbleRun.cpp:39
Mercury3D.h
MarbleRun::setParticleRadius
void setParticleRadius(double radius)
Definition: MarbleRun.cpp:55
MarbleRun::loadSmallSeesaw
void loadSmallSeesaw()
Definition: MarbleRunWithSeesaw.cpp:153
MarbleRun::particle
SphericalParticle * particle
Definition: MarbleRun.cpp:37
MarbleRun::bigSeesawFirstElement
BaseWall * bigSeesawFirstElement
Definition: MarbleRunWithSeesaw.cpp:93
DPMBase::setZMin
void setZMin(Mdouble newZMin)
Sets the value of ZMin, the lower bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1049
MarbleRun::setSlidingFrictionCoefficient
void setSlidingFrictionCoefficient(double coeff)
Definition: MarbleRun.cpp:63
ChuteBottom::getThickness
Mdouble getThickness() const
Returns the thickness of the multilayer rough bottom.
Definition: ChuteBottom.cc:343
TriangleWall.h
DPMBase::getXMin
Mdouble getXMin() const
If the length of the problem domain in x-direction is XMax - XMin, then getXMin() returns XMin.
Definition: DPMBase.h:600
mathsFunc::cos
Mdouble cos(Mdouble x)
Definition: ExtendedMath.cc:64
BaseInteractable::getPosition
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
Definition: BaseInteractable.h:218
DPMBase::getTimeMax
Mdouble getTimeMax() const
Returns the maximum simulation duration.
Definition: DPMBase.cc:885
Matrix3D::dyadic
static Matrix3D dyadic(const Vec3D &a, const Vec3D &b)
Calculates the dyadic product of a two Vec3D: .
Definition: Matrix.cc:323
DPMBase
The DPMBase header includes quite a few header files, defining all the handlers, which are essential....
Definition: DPMBase.h:76
SilbertPeriodic::set_H
void set_H(Mdouble new_)
Definition: flowRuleDiego_HeightAngle.cpp:231