|
The DPMBase header includes quite a few header files, defining all the handlers, which are essential. Moreover, it defines and solves a DPM problem. It is inherited from FilesAndRunNumber (public). More...
#include <DPMBase.h>
Public Types | |
enum class | ReadOptions : int { ReadAll , ReadNoInteractions , ReadNoParticlesAndInteractions } |
enum class | DomainSplit { X , Y , Z , XY , XZ , YZ , XYZ } |
Public Member Functions | |
void | constructor () |
A function which initialises the member variables to default values, so that the problem can be solved off the shelf; sets up a basic two dimensional problem which can be solved off the shelf. It is called in the constructor DPMBase(). More... | |
DPMBase () | |
Constructor that calls the "void constructor()". More... | |
DPMBase (const DPMBase &other) | |
Copy constructor type-2. More... | |
virtual | ~DPMBase () |
virtual destructor More... | |
void | autoNumber () |
The autoNumber() function calls three functions: setRunNumber(), readRunNumberFromFile() and incrementRunNumberInFile(). More... | |
std::vector< int > | get1DParametersFromRunNumber (int size_x) const |
This turns a counter into 1 index, which is a useful feature for performing 1D parameter study. The index run from 1:size_x, while the study number starts at 0 (initially the counter=1 in COUNTER_DONOTDEL) More... | |
std::vector< int > | get2DParametersFromRunNumber (int size_x, int size_y) const |
This turns a counter into 2 indices which is a very useful feature for performing a 2D study. The indices run from 1:size_x and 1:size_y, while the study number starts at 0 ( initially the counter=1 in COUNTER_DONOTDEL) More... | |
std::vector< int > | get3DParametersFromRunNumber (int size_x, int size_y, int size_z) const |
This turns a counter into 3 indices, which is a useful feature for performing a 3D parameter study. The indices run from 1:size_x, 1:size_y and 1:size_z, while the study number starts at 0 ( initially the counter=1 in COUNTER_DONOTDEL) More... | |
int | launchNewRun (const char *name, bool quick=false) |
This launches a code from within this code. Please pass the name of the code to run. More... | |
void | setRunNumber (int runNumber) |
This sets the counter/Run number, overriding the defaults. More... | |
int | getRunNumber () const |
This returns the current value of the counter (runNumber_) More... | |
virtual void | decompose () |
Sends particles from processorId to the root processor. More... | |
void | solve () |
The work horse of the code. More... | |
void | initialiseSolve () |
Beginning of the solve routine, before time stepping. More... | |
void | finaliseSolve () |
End of the solve routine, after time stepping. More... | |
virtual void | computeOneTimeStep () |
Performs everything needed for one time step, used in the time-loop of solve(). More... | |
void | checkSettings () |
Checks if the essentials are set properly to go ahead with solving the problem. More... | |
void | forceWriteOutputFiles () |
Writes output files immediately, even if the current time step was not meant to be written. Also resets the last saved time step. More... | |
virtual void | writeOutputFiles () |
Writes simulation data to all the main Mercury files: .data, .ene, .fstat, .xballs and .restart (see the Mercury website for more details regarding these files). More... | |
void | solve (int argc, char *argv[]) |
The work horse of the code. Can handle flags from the command line. More... | |
virtual void | setupInitialConditions () |
This function allows to set the initial conditions for our problem to be solved, by default particle locations are randomly set. Remember particle properties must also be defined here. More... | |
virtual void | writeXBallsScript () const |
This writes a script which can be used to load the xballs problem to display the data just generated. More... | |
virtual Mdouble | getInfo (const BaseParticle &P) const |
A virtual function that returns some user-specified information about a particle. More... | |
ParticleVtkWriter * | getVtkWriter () const |
virtual void | writeRestartFile () |
Stores all the particle data for current save time step to a "restart" file, which is a file simply intended to store all the information necessary to "restart" a simulation from a given time step (see also MercuryDPM.org for more information on restart files). More... | |
void | writeDataFile () |
void | writeEneFile () |
void | writeFStatFile () |
void | fillDomainWithParticles (unsigned N=50) |
bool | readRestartFile (ReadOptions opt=ReadOptions::ReadAll) |
Reads all the particle data corresponding to a given, existing . restart file (for more details regarding restart files, refer to the training materials on the MercuryDPM website).Returns true if it is successful, false otherwise. More... | |
int | readRestartFile (std::string fileName, ReadOptions opt=ReadOptions::ReadAll) |
The same as readRestartFile(bool), but also reads all the particle data corresponding to the current saved time step. More... | |
virtual void | write (std::ostream &os, bool writeAllParticles=true) const |
virtual void | read (std::istream &is, ReadOptions opt=ReadOptions::ReadAll) |
Reads all data from a restart file, e.g. domain data and particle data. More... | |
virtual BaseWall * | readUserDefinedWall (const std::string &type) const |
Allows you to read in a wall defined in a Driver directory; see USER/Luca/ScrewFiller. More... | |
virtual void | readOld (std::istream &is) |
Reads all data from a restart file, e.g. domain data and particle data; old version. More... | |
bool | readDataFile (std::string fileName="", unsigned int format=0) |
This allows particle data to be reloaded from data files. More... | |
bool | readParAndIniFiles (std::string fileName) |
Allows the user to read par.ini files (useful to read files produced by the MDCLR simulation code - external to MercuryDPM) More... | |
bool | readNextDataFile (unsigned int format=0) |
Reads the next data file with default format=0. However, one can modify the format based on whether the particle data corresponds to 3D or 2D data- see Visualising data in xballs. More... | |
void | readNextFStatFile () |
Reads the next fstat file. More... | |
bool | findNextExistingDataFile (Mdouble tMin, bool verbose=true) |
Finds and opens the next data file, if such a file exists. More... | |
bool | readArguments (int argc, char *argv[]) |
Can interpret main function input arguments that are passed by the driver codes. More... | |
virtual bool | readNextArgument (int &i, int argc, char *argv[]) |
Interprets the i^th command-line argument. More... | |
virtual bool | checkParticleForInteraction (const BaseParticle &P) |
Checks whether a particle P has any interaction with walls or other particles. More... | |
virtual bool | checkParticleForInteractionLocal (const BaseParticle &P) |
Checks if a particle P has any interaction with walls or other particles in the local domain. More... | |
bool | checkParticleForInteractionLocalPeriodic (const BaseParticle &P) |
void | readSpeciesFromDataFile (bool read=true) |
void | importParticlesAs (ParticleHandler &particleHandler, InteractionHandler &interactionHandler, const ParticleSpecies *species) |
Copies particles, interactions assigning species from a local simulation to a global one. Useful for the creation of a cluster. More... | |
MERCURYDPM_DEPRECATED File & | getDataFile () |
The non const version. Allows one to edit the File::dataFile. More... | |
MERCURYDPM_DEPRECATED File & | getEneFile () |
The non const version. Allows to edit the File::eneFile. More... | |
MERCURYDPM_DEPRECATED File & | getFStatFile () |
The non const version. Allows to edit the File::fStatFile. More... | |
MERCURYDPM_DEPRECATED File & | getRestartFile () |
The non const version. Allows to edit the File::restartFile. More... | |
MERCURYDPM_DEPRECATED File & | getStatFile () |
The non const version. Allows to edit the File::statFile. More... | |
File & | getInteractionFile () |
Return a reference to the file InteractionsFile. More... | |
MERCURYDPM_DEPRECATED const File & | getDataFile () const |
The const version. Does not allow for any editing of the File::dataFile. More... | |
MERCURYDPM_DEPRECATED const File & | getEneFile () const |
The const version. Does not allow for any editing of the File::eneFile. More... | |
MERCURYDPM_DEPRECATED const File & | getFStatFile () const |
The const version. Does not allow for any editing of the File::fStatFile. More... | |
MERCURYDPM_DEPRECATED const File & | getRestartFile () const |
The const version. Does not allow for any editing of the File::restartFile. More... | |
MERCURYDPM_DEPRECATED const File & | getStatFile () const |
The const version. Does not allow for any editing of the File::statFile. More... | |
const File & | getInteractionFile () const |
const std::string & | getName () const |
Returns the name of the file. Does not allow to change it though. More... | |
void | setName (const std::string &name) |
Allows to set the name of all the files (ene, data, fstat, restart, stat) More... | |
void | setName (const char *name) |
Calls setName(std::string) More... | |
void | setSaveCount (unsigned int saveCount) |
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat) More... | |
void | setFileType (FileType fileType) |
Sets File::fileType_ for all files (ene, data, fstat, restart, stat) More... | |
void | setOpenMode (std::fstream::openmode openMode) |
Sets File::openMode_ for all files (ene, data, fstat, restart, stat) More... | |
void | resetFileCounter () |
Resets the file counter for each file i.e. for ene, data, fstat, restart, stat) More... | |
void | closeFiles () |
Closes all files (ene, data, fstat, restart, stat) that were opened to read or write. More... | |
void | setLastSavedTimeStep (unsigned int nextSavedTimeStep) |
Sets the next time step for all the files (ene, data, fstat, restart, stat) at which the data is to be written or saved. More... | |
Mdouble | getTime () const |
Returns the current simulation time. More... | |
Mdouble | getNextTime () const |
Returns the current simulation time. More... | |
unsigned int | getNumberOfTimeSteps () const |
Returns the current counter of time-steps, i.e. the number of time-steps that the simulation has undergone so far. More... | |
void | setTime (Mdouble time) |
Sets a new value for the current simulation time. More... | |
void | setTimeMax (Mdouble newTMax) |
Sets a new value for the maximum simulation duration. More... | |
Mdouble | getTimeMax () const |
Returns the maximum simulation duration. More... | |
void | setLogarithmicSaveCount (Mdouble logarithmicSaveCountBase) |
Sets File::logarithmicSaveCount_ for all files (ene, data, fstat, restart, stat) More... | |
void | setNToWrite (int nToWrite) |
set the number of elements to write to the screen More... | |
int | getNToWrite () const |
get the number of elements to write to the More... | |
void | setRotation (bool rotation) |
Sets whether particle rotation is enabled or disabled. More... | |
bool | getRotation () const |
Indicates whether particle rotation is enabled or disabled. More... | |
MERCURYDPM_DEPRECATED void | setWallsWriteVTK (FileType writeWallsVTK) |
Sets whether walls are written into a VTK file. More... | |
MERCURYDPM_DEPRECATED void | setWallsWriteVTK (bool) |
Sets whether walls are written into a VTK file. More... | |
MERCURYDPM_DEPRECATED void | setInteractionsWriteVTK (bool) |
Sets whether interactions are written into a VTK file. More... | |
void | setParticlesWriteVTK (bool writeParticlesVTK) |
Sets whether particles are written in a VTK file. More... | |
void | setSuperquadricParticlesWriteVTK (bool writeSuperquadricParticlesVTK) |
MERCURYDPM_DEPRECATED FileType | getWallsWriteVTK () const |
Returns whether walls are written in a VTK file. More... | |
bool | getParticlesWriteVTK () const |
Returns whether particles are written in a VTK file. More... | |
bool | getSuperquadricParticlesWriteVTK () const |
Mdouble | getXMin () const |
If the length of the problem domain in x-direction is XMax - XMin, then getXMin() returns XMin. More... | |
Mdouble | getXMax () const |
If the length of the problem domain in x-direction is XMax - XMin, then getXMax() returns XMax. More... | |
Mdouble | getYMin () const |
If the length of the problem domain in y-direction is YMax - YMin, then getYMin() returns YMin. More... | |
Mdouble | getYMax () const |
If the length of the problem domain in y-direction is YMax - YMin, then getYMax() returns XMax. More... | |
Mdouble | getZMin () const |
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMin() returns ZMin. More... | |
Mdouble | getZMax () const |
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMax() returns ZMax. More... | |
Mdouble | getXCenter () const |
Mdouble | getYCenter () const |
Mdouble | getZCenter () const |
Vec3D | getMin () const |
Vec3D | getMax () const |
void | setXMin (Mdouble newXMin) |
Sets the value of XMin, the lower bound of the problem domain in the x-direction. More... | |
void | setYMin (Mdouble newYMin) |
Sets the value of YMin, the lower bound of the problem domain in the y-direction. More... | |
void | setZMin (Mdouble newZMin) |
Sets the value of ZMin, the lower bound of the problem domain in the z-direction. More... | |
void | setXMax (Mdouble newXMax) |
Sets the value of XMax, the upper bound of the problem domain in the x-direction. More... | |
void | setYMax (Mdouble newYMax) |
Sets the value of YMax, the upper bound of the problem domain in the y-direction. More... | |
void | setZMax (Mdouble newZMax) |
Sets the value of ZMax, the upper bound of the problem domain in the z-direction. More... | |
void | setMax (const Vec3D &max) |
Sets the maximum coordinates of the problem domain. More... | |
void | setMax (Mdouble, Mdouble, Mdouble) |
Sets the maximum coordinates of the problem domain. More... | |
void | setDomain (const Vec3D &min, const Vec3D &max) |
Sets the minimum coordinates of the problem domain. More... | |
void | setMin (const Vec3D &min) |
Sets the minimum coordinates of the problem domain. More... | |
void | setMin (Mdouble, Mdouble, Mdouble) |
Sets the minimum coordinates of the problem domain. More... | |
void | setTimeStep (Mdouble newDt) |
Sets a new value for the simulation time step. More... | |
Mdouble | getTimeStep () const |
Returns the simulation time step. More... | |
void | setNumberOfOMPThreads (int numberOfOMPThreads) |
int | getNumberOfOMPThreads () const |
void | setXBallsColourMode (int newCMode) |
Set the xballs output mode. More... | |
int | getXBallsColourMode () const |
Get the xballs colour mode (CMode). More... | |
void | setXBallsVectorScale (double newVScale) |
Set the scale of vectors in xballs. More... | |
double | getXBallsVectorScale () const |
Returns the scale of vectors used in xballs. More... | |
void | setXBallsAdditionalArguments (std::string newXBArgs) |
Set the additional arguments for xballs. More... | |
std::string | getXBallsAdditionalArguments () const |
Returns the additional arguments for xballs. More... | |
void | setXBallsScale (Mdouble newScale) |
Sets the scale of the view (either normal, zoom in or zoom out) to display in xballs. The default is fit to screen. More... | |
double | getXBallsScale () const |
Returns the scale of the view in xballs. More... | |
void | setGravity (Vec3D newGravity) |
Sets a new value for the gravitational acceleration. More... | |
Vec3D | getGravity () const |
Returns the gravitational acceleration. More... | |
void | setBackgroundDrag (Mdouble backgroundDrag) |
Simple access function to turn on a background drag. The force of particleVelocity*drag is applied (note, it allowd to be negaitve i.e. create energy) More... | |
const Mdouble | getBackgroundDrag () const |
Return the background drag. More... | |
void | setDimension (unsigned int newDim) |
Sets both the system dimensions and the particle dimensionality. More... | |
void | setSystemDimensions (unsigned int newDim) |
Sets the system dimensionality. More... | |
unsigned int | getSystemDimensions () const |
Returns the system dimensionality. More... | |
void | setParticleDimensions (unsigned int particleDimensions) |
Sets the particle dimensionality. More... | |
unsigned int | getParticleDimensions () const |
Returns the particle dimensionality. More... | |
std::string | getRestartVersion () const |
This is to take into account for different Mercury versions. Returns the version of the restart file. More... | |
void | setRestartVersion (std::string newRV) |
Sets restart_version. More... | |
bool | getRestarted () const |
Returns the flag denoting if the simulation was restarted or not. More... | |
void | setRestarted (bool newRestartedFlag) |
Allows to set the flag stating if the simulation is to be restarted or not. More... | |
bool | getAppend () const |
Returns whether the "append" option is on or off. More... | |
void | setAppend (bool newAppendFlag) |
Sets whether the "append" option is on or off. More... | |
Mdouble | getElasticEnergy () const |
Returns the global elastic energy within the system. More... | |
Mdouble | getKineticEnergy () const |
Returns the global kinetic energy stored in the system. More... | |
Mdouble | getGravitationalEnergy () const |
Returns the global gravitational potential energy stored in the system. More... | |
Mdouble | getRotationalEnergy () const |
JMFT Returns the global rotational energy stored in the system. More... | |
Mdouble | getTotalEnergy () const |
Mdouble | getTotalMass () const |
JMFT: Return the total mass of the system, excluding fixed particles. More... | |
Vec3D | getCentreOfMass () const |
JMFT: Return the centre of mass of the system, excluding fixed particles. More... | |
Vec3D | getTotalMomentum () const |
JMFT: Return the total momentum of the system, excluding fixed particles. More... | |
double | getCPUTime () |
double | getWallTime () |
virtual void | hGridInsertParticle (BaseParticle *obj UNUSED) |
virtual void | hGridUpdateParticle (BaseParticle *obj UNUSED) |
virtual void | hGridRemoveParticle (BaseParticle *obj UNUSED) |
virtual void | hGridUpdateMove (BaseParticle *, Mdouble) |
bool | mpiIsInCommunicationZone (BaseParticle *particle) |
Checks if the position of the particle is in an mpi communication zone or not. More... | |
bool | mpiInsertParticleCheck (BaseParticle *P) |
Function that checks if the mpi particle should really be inserted by the current domain. More... | |
void | insertGhostParticle (BaseParticle *P) |
This function inserts a particle in the mpi communication boundaries. More... | |
void | updateGhostGrid (BaseParticle *P) |
Checks if the Domain/periodic interaction distance needs to be updated and updates it accordingly. More... | |
virtual void | gatherContactStatistics (unsigned int index1, int index2, Vec3D Contact, Mdouble delta, Mdouble ctheta, Mdouble fdotn, Mdouble fdott, Vec3D P1_P2_normal_, Vec3D P1_P2_tangential) |
//Not unsigned index because of possible wall collisions. More... | |
void | setNumberOfDomains (std::vector< unsigned > direction) |
Sets the number of domains in x-,y- and z-direction. Required for parallel computations. More... | |
void | splitDomain (DomainSplit domainSplit) |
std::vector< unsigned > | getNumberOfDomains () |
returns the number of domains More... | |
Domain * | getCurrentDomain () |
Function that returns a pointer to the domain corresponding to the processor. More... | |
void | removeOldFiles () const |
virtual void | hGridGetInteractingParticleList (BaseParticle *obj, std::vector< BaseParticle * > &list) |
Creates a list of neighbour particles obtained from the hgrid. More... | |
virtual void | computeWallForces (BaseWall *w) |
virtual bool | getHGridUpdateEachTimeStep () const |
void | setMeanVelocity (Vec3D V_mean_goal) |
This function will help you set a fixed kinetic energy and mean velocity in your system. More... | |
void | setMeanVelocityAndKineticEnergy (Vec3D V_mean_goal, Mdouble Ek_goal) |
This function will help you set a fixed kinetic energy and mean velocity in your system. More... | |
Mdouble | getTotalVolume () const |
Get the total volume of the cuboid system. More... | |
Matrix3D | getKineticStress () const |
Calculate the kinetic stress tensor in the system averaged over the whole volume. More... | |
Matrix3D | getStaticStress () const |
Calculate the static stress tensor in the system averaged over the whole volume. More... | |
Matrix3D | getTotalStress () const |
Calculate the total stress tensor in the system averaged over the whole volume. More... | |
virtual void | handleParticleRemoval (unsigned int id) |
Handles the removal of particles from the particleHandler. More... | |
virtual void | handleParticleAddition (unsigned int id, BaseParticle *p) |
void | writePythonFileForVTKVisualisation () const |
void | setWritePythonFileForVTKVisualisation (bool forceWritePythonFileForVTKVisualisation) |
bool | getWritePythonFileForVTKVisualisation () const |
WallVTKWriter & | getWallVTKWriter () |
Static Public Member Functions | |
static void | incrementRunNumberInFile () |
Increment the run Number (counter value) stored in the file_counter (COUNTER_DONOTDEL) by 1 and store the new value in the counter file. More... | |
static int | readRunNumberFromFile () |
Read the run number or the counter from the counter file (COUNTER_DONOTDEL) More... | |
static bool | areInContact (const BaseParticle *pI, const BaseParticle *pJ) |
Checks if two particle are in contact or is there any positive overlap. More... | |
Public Attributes | |
SpeciesHandler | speciesHandler |
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc. More... | |
RNG | random |
This is a random generator, often used for setting up the initial conditions etc... More... | |
ParticleHandler | particleHandler |
An object of the class ParticleHandler, contains the pointers to all the particles created. More... | |
ParticleHandler | paoloParticleHandler |
Fake particleHandler created by Paolo needed temporary by just Paolo. More... | |
WallHandler | wallHandler |
An object of the class WallHandler. Contains pointers to all the walls created. More... | |
BoundaryHandler | boundaryHandler |
An object of the class BoundaryHandler which concerns insertion and deletion of particles into or from regions. More... | |
PeriodicBoundaryHandler | periodicBoundaryHandler |
Internal handler that deals with periodic boundaries, especially in a parallel build. More... | |
DomainHandler | domainHandler |
An object of the class DomainHandler which deals with parallel code. More... | |
InteractionHandler | interactionHandler |
An object of the class InteractionHandler. More... | |
CGHandler | cgHandler |
Object of the class cgHandler. More... | |
File | dataFile |
An instance of class File to handle in- and output into a .data file. More... | |
File | fStatFile |
An instance of class File to handle in- and output into a .fstat file. More... | |
File | eneFile |
An instance of class File to handle in- and output into a .ene file. More... | |
File | restartFile |
An instance of class File to handle in- and output into a .restart file. More... | |
File | statFile |
An instance of class File to handle in- and output into a .stat file. More... | |
File | interactionFile |
File class to handle in- and output into .interactions file. This file hold information about interactions. More... | |
Time | clock_ |
record when the simulation started More... | |
Protected Member Functions | |
virtual void | computeAllForces () |
Computes all the forces acting on the particles using the BaseInteractable::setForce() and BaseInteractable::setTorque() More... | |
virtual void | computeInternalForces (BaseParticle *) |
Computes the internal forces on particle i (internal in the sense that the sum over all these forces is zero i.e. fully modelled forces) More... | |
virtual void | computeInternalForce (BaseParticle *, BaseParticle *) |
Computes the forces between two particles (internal in the sense that the sum over all these forces is zero i.e. fully modelled forces) More... | |
virtual void | computeExternalForces (BaseParticle *) |
Computes the external forces, such as gravity, acting on particles. More... | |
virtual void | computeForcesDueToWalls (BaseParticle *, BaseWall *) |
Computes the forces on the particles due to the walls (normals are outward normals) More... | |
virtual void | actionsOnRestart () |
A virtual function where the users can add extra code which is executed only when the code is restarted. More... | |
virtual void | actionsBeforeTimeLoop () |
A virtual function. Allows one to carry out any operations before the start of the time loop. More... | |
virtual void | hGridActionsBeforeTimeLoop () |
A virtual function that allows one to carry out hGrid operations before the start of the time loop. More... | |
virtual void | hGridActionsBeforeTimeStep () |
A virtual function that allows one to set or execute hGrid parameters or operations before every simulation time step. More... | |
virtual void | actionsBeforeTimeStep () |
A virtual function which allows to define operations to be executed before the new time step. More... | |
virtual void | computeAdditionalForces () |
A virtual function which allows to define operations to be executed prior to the OMP force collect. More... | |
virtual void | actionsAfterSolve () |
A virtual function which allows to define operations to be executed after the solve(). More... | |
virtual void | actionsAfterTimeStep () |
A virtual function which allows to define operations to be executed after time step. More... | |
void | writeVTKFiles () const |
virtual void | outputXBallsData (std::ostream &os) const |
This function writes the location of the walls and particles in a format the XBalls program can read. For more information on the XBalls program, see Visualising data in xballs. More... | |
virtual void | outputXBallsDataParticle (unsigned int i, unsigned int format, std::ostream &os) const |
This function writes out the particle locations into an output stream in a format the XBalls program can read. For more information on the XBalls program, see Visualising data in xballs. More... | |
virtual void | writeEneHeader (std::ostream &os) const |
Writes a header with a certain format for ENE file. More... | |
virtual void | writeFstatHeader (std::ostream &os) const |
Writes a header with a certain format for FStat file. More... | |
virtual void | writeEneTimeStep (std::ostream &os) const |
Write the global kinetic, potential energy, etc. in the system. More... | |
virtual void | initialiseStatistics () |
virtual void | outputStatistics () |
void | gatherContactStatistics () |
virtual void | processStatistics (bool) |
virtual void | finishStatistics () |
virtual void | integrateBeforeForceComputation () |
Update particles' and walls' positions and velocities before force computation. More... | |
virtual void | integrateAfterForceComputation () |
Update particles' and walls' positions and velocities after force computation. More... | |
virtual void | checkInteractionWithBoundaries () |
There are a range of boundaries one could implement depending on ones' problem. This methods checks for interactions between particles and such range of boundaries. See BaseBoundary.h and all the boundaries in the Boundaries folder. More... | |
virtual void | hGridActionsBeforeIntegration () |
This function has to be called before integrateBeforeForceComputation. More... | |
virtual void | hGridActionsAfterIntegration () |
This function has to be called after integrateBeforeForceComputation. More... | |
void | setFixedParticles (unsigned int n) |
Sets a number, n , of particles in the particleHandler as "fixed particles". More... | |
virtual void | printTime () const |
Displays the current simulation time and the maximum simulation duration. More... | |
virtual bool | continueSolve () const |
A virtual function for deciding whether to continue the simulation, based on a user-specified criterion. More... | |
void | outputInteractionDetails () const |
Displays the interaction details corresponding to the pointer objects in the interaction handler. More... | |
bool | isTimeEqualTo (Mdouble time) const |
Checks whether the input variable "time" is the current time in the simulation. More... | |
void | removeDuplicatePeriodicParticles () |
Removes periodic duplicate Particles. More... | |
void | checkAndDuplicatePeriodicParticles () |
For simulations using periodic boundaries, checks and adds particles when necessary into the particle handler. See DPMBase.cc and PeriodicBoundary.cc for more details. More... | |
void | performGhostParticleUpdate () |
When the Verlet scheme updates the positions and velocities of particles, ghost particles will need an update as wel. Their status will also be updated accordingly. More... | |
void | deleteGhostParticles (std::set< BaseParticle * > &particlesToBeDeleted) |
void | synchroniseParticle (BaseParticle *, unsigned fromProcessor=0) |
void | performGhostVelocityUpdate () |
updates the final time-step velocity of the ghost particles More... | |
void | setSoftStop () |
function for setting sigaction constructor. More... | |
Static Protected Member Functions | |
static void | signalHandler (int signal) |
signal handler function. More... | |
Private Attributes | |
int | numberOfOMPThreads_ |
unsigned int | systemDimensions_ |
The dimensions of the simulation i.e. 2D or 3D. More... | |
unsigned int | particleDimensions_ |
determines if 2D or 3D particle volume is used for mass calculations More... | |
Vec3D | gravity_ |
Gravity vector. More... | |
Mdouble | backgroundDrag_ |
This is a global background drag to help retard particles, or to do a simple fluid drag. The force particleVeclocity*backgroundDrag is applied. More... | |
std::vector< unsigned > | numberOfDomains_ |
Vector containing the number of domains in x-,y- and z-direction, required for parallel computations. More... | |
Vec3D | min_ |
These vectors are used for the XBalls domain, and occasionally people use it to add walls. More... | |
Vec3D | max_ |
Mdouble | time_ |
Stores the current simulation time. More... | |
unsigned int | numberOfTimeSteps_ |
Stores the number of time steps. More... | |
Mdouble | timeStep_ |
Stores the simulation time step. More... | |
Mdouble | timeMax_ |
Stores the duration of the simulation. More... | |
std::string | restartVersion_ |
Previous versions of MercuryDPM had a different restart file format, the below member variable allows one to specify the version in order to choose between the available version support. More... | |
bool | restarted_ |
A bool to check if the simulation was restarted or not, ie. if setupInitialConditionsShould be run and the fileCounters reset. More... | |
bool | append_ |
A flag to determine if the file has to be appended or not. See DPMBase::Solve() for example. More... | |
bool | rotation_ |
A flag to turn on/off particle rotation. true will enable particle rotation. false will disable particle rotation. More... | |
bool | writeParticlesVTK_ |
A flag to turn on/off the vtk writer for particles. More... | |
bool | writeSuperquadricParticlesVTK_ |
ParticleVtkWriter * | vtkWriter_ |
WallVTKWriter | wallVTKWriter_ |
InteractionVTKWriter | interactionVTKWriter_ |
BoundaryVTKWriter | boundaryVTKWriter_ |
WallDetailsVTKWriter | wallDetailsVTKWriter_ |
int | xBallsColourMode_ |
XBalls is a package to view the particle data. As an alternative MercuryDPM also supports ParaView. The below variable is used to set the argument cmode in xballs script (see XBalls/xballs.txt) More... | |
Mdouble | xBallsVectorScale_ |
sets the xballs argument vscale (see XBalls/xballs.txt) More... | |
Mdouble | xBallsScale_ |
sets the xballs argument scale (see XBalls/xballs.txt) More... | |
std::string | xBallsAdditionalArguments_ |
A string of additional arguments for xballs can be specified (see XBalls/xballs.txt). e.g. "-solidf -v0". More... | |
int | runNumber_ |
This stores the run number for saving. More... | |
std::string | name_ |
the name of the problem, used, e.g., for the output files More... | |
bool | readSpeciesFromDataFile_ |
Determines if the last column of the data file is interpreted as the info parameter during restart. More... | |
int | nToWrite_ |
number of elements to write to a screen More... | |
bool | forceWritePythonFileForVTKVisualisation_ { true } |
Static Private Attributes | |
static volatile sig_atomic_t | continueFlag_ = true |
The DPMBase header includes quite a few header files, defining all the handlers, which are essential. Moreover, it defines and solves a DPM problem. It is inherited from FilesAndRunNumber (public).
|
strong |
|
strong |
DPMBase::DPMBase | ( | ) |
Constructor that calls the "void constructor()".
Constructor for the DPMBase class. Initialises a set of default parameters allowing a simulation to be created 'off the shelf'. For full details of the parameters initialised and their assigned values, see constructor()
References constructor().
DPMBase::DPMBase | ( | const DPMBase & | other | ) |
Copy constructor type-2.
A copy constructor which takes a "DPMBase"-type object and creates a "copy" - i.e. creates a new instance of a class possessing the same properties as the original.
The argument "other" is the "original", i.e. the instance to be copied from.
The first set of actions performed, which follow the general form:
[variable] = other.[variable]
)
simply copy the relevant variables (i.e. information such as particle details, system details, simulation details...) from the original ("other").
The various handlers belonging to the original instance, however, are not directly copied, as this may cause problems (i.e. the handlers would still "point" to the original object, not the copy).
Rather, new handlers are created (e.g. boundaryHandler.setDPMBase(this);
), and the contents of the handlers is then passed over (e.g. boundaryHandler = other.boundaryHandler;
). For each handler class, the assignment operator = has been overrided to copy the contents, not just the pointer.
[in] | other |
References append_, backgroundDrag_, boundaryHandler, cgHandler, domainHandler, getName(), gravity_, DomainHandler::initialise(), PeriodicBoundaryHandler::initialise(), interactionHandler, max_, min_, numberOfDomains_, numberOfOMPThreads_, numberOfTimeSteps_, particleDimensions_, particleHandler, periodicBoundaryHandler, random, readSpeciesFromDataFile_, restarted_, restartVersion_, rotation_, runNumber_, BaseHandler< T >::setDPMBase(), setName(), speciesHandler, systemDimensions_, time_, timeMax_, timeStep_, vtkWriter_, wallHandler, writeParticlesVTK_, writeSuperquadricParticlesVTK_, xBallsAdditionalArguments_, xBallsColourMode_, xBallsScale_, and xBallsVectorScale_.
|
virtual |
virtual destructor
A simple destructor for "DPMBase"-type objects, used to free-up memory when an object is no longer necessary.
References vtkWriter_.
|
protectedvirtual |
A virtual function which allows to define operations to be executed after the solve().
no implementation but can be overidden in its derived classes.
Reimplemented in BaseCluster, SpeciesTest, VisualisationTest, SphericalSuperQuadricCollision, EllipticalSuperQuadricCollision, EllipticalSuperQuadricCollision, EllipsoidsBouncingOnWallDemo, Contact, HertzianBSHPInteractionTwoParticleElasticCollision, PSDManualInsertionSelfTest, ParameterStudy3DDemo, ParameterStudy2DDemo, ParameterStudy1DDemo, MaserRepeatedOutInMPI2Test, ForceLawsMPI2Test, DPM, and ShearStage.
Referenced by finaliseSolve(), and Mercury3DRestart::writeOutputFiles().
|
protectedvirtual |
A virtual function which allows to define operations to be executed after time step.
no implementation but can be overidden in its derived classes.
Reimplemented in BaseCluster, MpiPeriodicBoundaryUnitTest, DrivenParticleClass, Tutorial11, protectiveWall, MercuryProblem, ContactDetectionRotatedSpheresTest, ContactDetectionNormalSpheresTest, SphericalSuperQuadricCollision, SlidingSpheresUnitTest, GranularCollapse, EllipticalSuperQuadricCollision, EllipsoidsBouncingOnWallDemo, BouncingSuperQuadric, SphericalIndenter, DPM, DPM, PolydisperseInsertionBoundarySelfTest, NozzleSelfTest, FluxBoundarySelfTest, FluxAndPeriodicBoundarySelfTest, BoundariesSelfTest, Chutebelt, vibratedBed, TimeDependentPeriodicBoundaryTest, TimeDependentPeriodicBoundary3DSelfTest, ShiftingMaserBoundarySelfTest, ShiftingConstantMassFlowMaserBoundarySelfTest, MinimalExampleDrum, MarbleRun, LeesEdwardsDemo, HourGlass, HourGlass2D, HourGlass2D, FreeCoolingDemoProblem, FreeCooling3DinWallsDemo, FreeCooling3DDemoProblem, FreeCooling2DinWallsDemo, CubicCell, TwoByTwoMPIDomainMPI4Test, MaserRepeatedOutInMPI2Test, NozzleDemo, HorizontalMixer, multiParticleT1, multiParticleT1, multiParticleT1, multiParticleT1, multiParticleT1, ClosedCSCWalls, ClosedCSCRun, ClosedCSCRestart, ShearStage, GranuHeap, T_protectiveWall, RotatingDrumWet, Vreman, Vreman, and Vreman.
Referenced by computeOneTimeStep().
|
protectedvirtual |
A virtual function. Allows one to carry out any operations before the start of the time loop.
no implementation but can be overriden in its derived classes.
Reimplemented in SphericalIndenter, Slide, statistics_while_running< T >, ParameterStudy3DDemo, ParameterStudy2DDemo, ParameterStudy1DDemo, GranularJet, and GranularJet.
Referenced by initialiseSolve().
|
protectedvirtual |
A virtual function which allows to define operations to be executed before the new time step.
no implementation but can be overidden in its derived classes.
Reimplemented in ChuteBottom, Chute, SaveCountUnitTest, PeriodicWallsWithSlidingFrictionUnitTest, QuaternionWallUnitTest, SphericalIndenter, RotatingDrum, DrumRot, CoilSelfTest, ConstantRestitutionSelfTest, Chutebelt, SegregationPeriodic, SegregationPeriodic, SegregationPeriodic, RotatingDrum, RotatingDrum, Slide, Slide, SegregationPeriodic, statistics_while_running< T >, SilbertPeriodic, Mercury3DRestart, statistics_while_running< T >, statistics_while_running< T >, statistics_while_running< T >, SilbertPeriodic, CLiveStatistics< T >, inflowFromPeriodic, SilbertPeriodic, Restart, CLiveStatistics< T >, SilbertHstop, SilbertPeriodic, SilbertPeriodic, AngleOfRepose, statistics_while_running< T >, statistics_while_running< T >, Cstatic3D, Cstatic2d, Cstatic2d, ChutePeriodic, ForceLawsMPI2Test, Mercury3DRestart, Binary, ChuteWithPeriodicInflow, restart, free_cooling, SmoothChute, SmoothChute, DPM, AxisymmetricHopper, VariableBottom, ChutePeriodic, SegregationPeriodic, ChuteRestart, VariableBottom, ChutePeriodic, ChutePeriodic, ChutePeriodic, ChutePeriodic, LawinenBox, LawinenBox, LawinenBox, and AngleOfRepose.
Referenced by computeOneTimeStep(), loadingTest(), normalAndTangentialLoadingTest(), and objectivenessTest().
|
protectedvirtual |
A virtual function where the users can add extra code which is executed only when the code is restarted.
no implementation but can be overidden in its derived classes.
Reimplemented in BaseCluster, FreeFall, DrumRot, Chutebelt, ChuteRestartDemo, and AirySavageHutter.
Referenced by initialiseSolve().
|
static |
Checks if two particle are in contact or is there any positive overlap.
Determines whether two particles are distinct and in contact by comparing the separation of their centres to their (interaction) radii.
Firstly, checks if the two particles are different (if pI == pJ, the result is "false"). Secondly, if the two particles are distinct, finds the distance between the two particles' centres (getDistanceSquared(pI->getPosition(), pJ->getPosition()))
) and tests whether the separation of the particles is less than the sum of their radii (pI->getInteractionRadius() + pJ->getInteractionRadius()
). If so, the bool returns "true", i.e. the particles are in contact.
[in] | pI | A pointer to a particle |
[in] | pJ | A pointer to a second particle |
References BaseParticle::isInContactWith().
Referenced by Mercury2D::hGridFindParticleContacts(), Mercury3D::hGridFindParticleContacts(), Mercury3D::hGridHasContactsInTargetCell(), and Mercury2D::hGridHasContactsInTargetCell().
void DPMBase::autoNumber | ( | ) |
The autoNumber() function calls three functions: setRunNumber(), readRunNumberFromFile() and incrementRunNumberInFile().
Using the three functions named above, the autoNumber() function acts to:
1) Use the readRunNumberFromFile() function toead the current run number from the file COUNTER_DONOTDEL created by any script which utilises auto-numbering.
2) Set the runNumber_ counter to the value obtained from the above using the setRunNumber() function.
3) Increment the value stored in the COUNTER_DONOTDEL file by one once the current value has been read using the incrementRunNumberInFile() function.
References getRestarted(), incrementRunNumberInFile(), readRunNumberFromFile(), and setRunNumber().
Referenced by main(), readNextArgument(), and ChutePeriodic::setup().
|
protected |
For simulations using periodic boundaries, checks and adds particles when necessary into the particle handler. See DPMBase.cc and PeriodicBoundary.cc for more details.
For all particles in the system, checks their proximity to all periodic boundaries. If a particle is found to be near a periodic boundary, creates and adds a periodic ("ghost") particle.
References boundaryHandler, and particleHandler.
Referenced by SilbertPeriodic::add_flow_particles(), computeOneTimeStep(), and initialiseSolve().
|
protectedvirtual |
There are a range of boundaries one could implement depending on ones' problem. This methods checks for interactions between particles and such range of boundaries. See BaseBoundary.h and all the boundaries in the Boundaries folder.
For each boundary, checks whether each particle in the system has "passed" it and performs an action according to the type of boundary involved.
For instance, if the boundary is a periodic boundary, the periodic boundary version of "checkBoundaryAfterParticleMoved" will be called ( PeriodicBoundary::checkBoundaryAfterParticleMoved()) and in turn apply the shiftPosition() function to the particle. If the boundary is a deletion boundary ( DeletionBoundary::checkBoundaryAfterParticleMoved ()), any particle passing the boundary will be deleted. Further details can be seen in the in-code comments below.
References boundaryHandler, Domain::cleanCommunicationLists(), PeriodicBoundaryHandler::cleanCommunicationLists(), PeriodicBoundaryHandler::flushParticles(), Domain::flushParticles(), getCurrentDomain(), NUMBER_OF_PROCESSORS, particleHandler, periodicBoundaryHandler, and ParticleHandler::removeGhostObject().
Referenced by computeOneTimeStep().
|
virtual |
Checks whether a particle P has any interaction with walls or other particles.
A very useful feature. For example, when one wants to have an initial condition with particles free of interactions with other particles or walls, one could use this to see if a particle about to be inserted would have interactions. If yes, then the particle would not be considered for insertion.
However can prove expensive if the number of particles is large.
[in] | p | The particle for which one wants to detect collisions (or the lack thereof). |
true
if and only if there are no interactions with other particles or walls. Reimplemented in MercuryBase.
References MPIContainer::broadcast(), checkParticleForInteractionLocal(), checkParticleForInteractionLocalPeriodic(), MPIContainer::gather(), constants::i, MPIContainer::Instance(), NUMBER_OF_PROCESSORS, and PROCESSOR_ID.
Referenced by InsertionBoundary::checkBoundaryBeforeTimeStep(), and RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep().
|
virtual |
Checks if a particle P has any interaction with walls or other particles in the local domain.
A very useful feature. For example, when one wants to have an initial condition with particles free of interactions with other particles or walls, one could use this method and whether particles are interacting. If yes, then it would not consider this particle for insertion and continue onto the next particle. However can prove expensive if the number of particles is large.
Returns true if and only if there are no interactions with other particles in the local domain or walls.
[in] | p | The particle for which one wants to detect collisions (or the lack thereof). |
Reimplemented in MercuryBase.
References Vec3D::getDistanceSquared(), BaseInteractable::getPosition(), BaseParticle::getSumOfInteractionRadii(), particleHandler, mathsFunc::square(), and wallHandler.
Referenced by checkParticleForInteraction(), and checkParticleForInteractionLocalPeriodic().
bool DPMBase::checkParticleForInteractionLocalPeriodic | ( | const BaseParticle & | p | ) |
Extends the capability of detecting intersecting particles to periodic systems
p |
References boundaryHandler, checkParticleForInteractionLocal(), BaseParticle::copy(), PeriodicBoundary::getDistance(), ParticleHandler::getLargestParticle(), BaseParticle::getMaxInteractionRadius(), ParticleHandler::getNumberOfObjects(), BaseInteractable::getPosition(), constants::i, particleHandler, BaseInteractable::setPosition(), and PeriodicBoundary::shiftPosition().
Referenced by checkParticleForInteraction(), and MercuryBase::checkParticleForInteraction().
void DPMBase::checkSettings | ( | ) |
Checks if the essentials are set properly to go ahead with solving the problem.
References getName(), BaseHandler< T >::getNumberOfObjects(), getTimeStep(), getXMax(), getXMin(), getYMax(), getYMin(), getZMax(), getZMin(), logger, particleHandler, speciesHandler, systemDimensions_, and wallHandler.
Referenced by initialiseSolve().
void DPMBase::closeFiles | ( | ) |
Closes all files (ene, data, fstat, restart, stat) that were opened to read or write.
References File::close(), dataFile, eneFile, fStatFile, interactionFile, restartFile, and statFile.
Referenced by finaliseSolve(), and Mercury3DRestart::writeOutputFiles().
|
inlineprotectedvirtual |
A virtual function which allows to define operations to be executed prior to the OMP force collect.
no implementation but can be overidden in its derived classes. This function is called by DPMBase::computeAllForces. It may be used to add additional user defined forces to any MercuryObject. Within this function, OMP parallelization may be used, as it is called prior to sumForceTorqueOMP.
Reimplemented in MembraneSelfTest, and MembraneDemo.
Referenced by computeAllForces().
|
protectedvirtual |
Computes all the forces acting on the particles using the BaseInteractable::setForce() and BaseInteractable::setTorque()
Initially, resets all forces to zero for all particles and all walls. For each particle in turn, the function searches for particle interactions, and computes the relevant internal forces, followed by the relevant external forces (e.g. gravity).
Now loop over all particles contacts computing force contributions
Reimplemented in DPM, and Mercury3Dclump.
References InteractionHandler::addNewObjectsOMP(), BaseWall::checkInteractions(), computeAdditionalForces(), computeExternalForces(), computeInternalForces(), computeWallForces(), BaseWall::computeWear(), Vec3D::cross(), DEBUG, PossibleContact::getNext(), BaseHandler< T >::getNumberOfObjects(), getNumberOfOMPThreads(), getNumberOfTimeSteps(), BaseHandler< T >::getObject(), PossibleContact::getP1(), PossibleContact::getP2(), getRotation(), BaseHandler< T >::getSize(), constants::i, interactionHandler, logger, particleHandler, BaseInteractable::resetForceTorque(), InteractionHandler::resetNewObjectsOMP(), BaseInteractable::sumForceTorqueOMP(), and wallHandler.
Referenced by DPM::computeAllForces(), computeOneTimeStep(), initialiseSolve(), and ExtremeOverlapVolumeUnitTest::setupInitialConditions().
|
protectedvirtual |
Computes the external forces, such as gravity, acting on particles.
By default we have gravity and background drag as the external forces
[in] | CI | The BaseParticle object to which the relevant external forces are applied. |
Reimplemented in ScaleCoupling< Mercury3D, SolidProblem< ScaleCoupledElement< ELEMENT > > >, AngledPeriodicBoundarySecondUnitTest, SphericalIndenter, my_problem, my_problem, PeriodicWalls, and Contact.
References BaseInteractable::addForce(), getBackgroundDrag(), getGravity(), BaseParticle::getMass(), BaseInteractable::getVelocity(), BaseParticle::isFixed(), and BaseParticle::isPebble().
Referenced by computeAllForces(), Mercury3Dclump::computeAllForces(), DPM::computeAllForcesNoHGrid(), Contact::computeExternalForces(), and SphericalIndenter::computeExternalForces().
|
protectedvirtual |
Computes the forces on the particles due to the walls (normals are outward normals)
Checks if a particle pI is currently in contact - i.e. interacting - with any of the walls within the system using the BaseParticle::getInteractionWith() function. If an interaction is detected, computes the force acting between particle and wall and applies the relevant torques and forces to both particle and wall(s).
[in] | pI | The BaseParticle object to which the wall forces are applied. |
Reimplemented in Mercury3Dclump.
References BaseInteractable::addForce(), BaseInteractable::addTorque(), Vec3D::cross(), BaseWall::getInteractionWith(), getNumberOfTimeSteps(), BaseParticle::getPeriodicFromParticle(), BaseInteractable::getPosition(), getRotation(), constants::i, and interactionHandler.
Referenced by DPM::computeAllForcesNoHGrid(), computeWallForces(), Mercury3D::computeWallForces(), and ArcWallUnitTest::setupInitialConditions().
|
protectedvirtual |
Computes the forces between two particles (internal in the sense that the sum over all these forces is zero i.e. fully modelled forces)
Firstly, checks the types of particles involved in order to ensure that only viable interactions are counted.
Secondly, if the particle combination is viable, checks if the particles are interacting.
Finally, if the particles are found to be interacting, calculates the relevant forces (as well as torques, if the "rotation" flag is turned "on") acting between the particles, and applies them to each particle.
[in] | P1 | |
[in] | P2 |
Reimplemented in Mercury3Dclump.
References BaseInteractable::addForce(), BaseInteractable::addTorque(), Vec3D::cross(), BaseObject::getId(), BaseParticle::getInteractionWith(), getNumberOfTimeSteps(), BaseParticle::getPeriodicFromParticle(), BaseInteractable::getPosition(), getRotation(), constants::i, interactionHandler, and BaseParticle::isFixed().
Referenced by DPM::computeAllForcesNoHGrid(), SphericalIndenter::computeExternalForces(), computeInternalForces(), Mercury3D::hGridFindContactsWithinTargetCell(), Mercury2D::hGridFindContactsWithinTargetCell(), Mercury3D::hGridFindContactsWithTargetCell(), and Mercury2D::hGridFindContactsWithTargetCell().
|
protectedvirtual |
Computes the internal forces on particle i (internal in the sense that the sum over all these forces is zero i.e. fully modelled forces)
Taking a single BaseParticle object as an argument, passes it to the broadPhase() function which then loops over all other particles in the particleHandler and computes the relevant forces for any particle pairing found to be in contact.
[in] | i | A BaseParticle object for which we want to calculate the internal forces. |
Reimplemented in Mercury3D, Mercury2D, my_problem_HGRID, and my_problem.
References BaseHandler< T >::begin(), computeInternalForce(), constants::i, and particleHandler.
Referenced by computeAllForces().
|
virtual |
Performs everything needed for one time step, used in the time-loop of solve().
Performs one time step in the time loop, including updating the time. It is made public, since this makes coupling multiple DPM simulations easier in the future.
References WallHandler::actionsAfterParticleGhostUpdate(), actionsAfterTimeStep(), InteractionHandler::actionsAfterTimeStep(), ParticleHandler::actionsAfterTimeStep(), actionsBeforeTimeStep(), boundaryHandler, checkAndDuplicatePeriodicParticles(), checkInteractionWithBoundaries(), computeAllForces(), DEBUG, InteractionHandler::eraseOldInteractions(), getNumberOfTimeSteps(), hGridActionsAfterIntegration(), hGridActionsBeforeIntegration(), hGridActionsBeforeTimeStep(), integrateAfterForceComputation(), integrateBeforeForceComputation(), interactionHandler, logger, numberOfTimeSteps_, particleHandler, performGhostParticleUpdate(), removeDuplicatePeriodicParticles(), time_, timeStep_, wallHandler, and writeOutputFiles().
Referenced by solve().
|
virtual |
Reimplemented in Mercury3D.
References computeForcesDueToWalls(), and particleHandler.
Referenced by computeAllForces(), and Mercury3D::computeWallForces().
void DPMBase::constructor | ( | ) |
A function which initialises the member variables to default values, so that the problem can be solved off the shelf; sets up a basic two dimensional problem which can be solved off the shelf. It is called in the constructor DPMBase().
A simple vector of vectors for collecting and ordering interactions in the OpenMP parallel environment
Provides all the necessary default values for the DPMBase() constructor. When called, will initialise a two-dimensional simulation (setSystemDimensions(2), setParticleDimensions(2)
) with "normal" vertical gravity (gravity_ = Vec3D(0.0, -9.8, 0.0);
) as well as defining an arbitrary length (1s) and XBalls viewing domain (0.01 x 0.01) and other relevant viewing parameters (e.g. colourscheme, scale...). The first block of text creates the necessary handlers and sets their content according to the current ("this") instance of the DPMBase superclass.
References boundaryHandler, cgHandler, dataFile, DEBUG, domainHandler, eneFile, fStatFile, File::getFstream(), DomainHandler::initialise(), PeriodicBoundaryHandler::initialise(), initialiseMPI(), interactionFile, interactionHandler, logger, max_, min_, name_, NO_FILE, nToWrite_, numberOfDomains_, numberOfOMPThreads_, numberOfTimeSteps_, particleHandler, periodicBoundaryHandler, random, readSpeciesFromDataFile_, restartFile, runNumber_, setAppend(), setBackgroundDrag(), BaseHandler< T >::setDPMBase(), File::setFileType(), setGravity(), setName(), setParticleDimensions(), RNG::setRandomSeed(), setRestarted(), setSaveCount(), setSoftStop(), setSystemDimensions(), setTime(), setTimeMax(), speciesHandler, statFile, timeStep_, vtkWriter_, wallHandler, writeParticlesVTK_, writeSuperquadricParticlesVTK_, xBallsAdditionalArguments_, xBallsColourMode_, xBallsScale_, and xBallsVectorScale_.
Referenced by DPMBase().
|
protectedvirtual |
A virtual function for deciding whether to continue the simulation, based on a user-specified criterion.
Used within the main loop of the 'solve()' routine to let the code know whether or not the time step should continue to be advanced, i.e. whether the simulation should be continued. By default this is always true
but the user may redefine it to return false
under certain desired circumstances.
Reimplemented in protectiveWall, ScalingTestInitialConditionsRelax, ScalingTestInitialConditionsRelax, DPM, InitialConditions< SpeciesType >, SilbertHstop, SilbertHstop, SilbertHstop, SilbertHstop, SilbertHstop, CSCWalls, CSCInit, ClosedCSCWalls, and T_protectiveWall.
References continueFlag_.
Referenced by solve().
|
virtual |
Sends particles from processorId to the root processor.
Decomposes the simulation domain in a structured cube mesh of domains for parallel processing
This function takes the simulation domain boundaries and decomposes it into sub domains ready for parallel computations
References DomainHandler::createMesh(), domainHandler, ERROR, BaseHandler< T >::getNumberOfObjects(), ParticleHandler::getNumberOfRealObjects(), BaseHandler< T >::getSize(), getXMax(), getXMin(), getYMax(), getYMin(), getZMax(), getZMin(), MPIContainer::initialiseMercuryMPITypes(), MPIContainer::Instance(), logger, NUMBER_OF_PROCESSORS, numberOfDomains_, particleHandler, PROCESSOR_ID, DomainHandler::setCurrentDomainIndex(), BaseHandler< T >::setDPMBase(), speciesHandler, MPIContainer::sync(), VERBOSE, XAXIS, YAXIS, and ZAXIS.
Referenced by initialiseSolve(), and read().
|
protected |
References Domain::cleanCommunicationLists(), PeriodicBoundaryHandler::cleanCommunicationLists(), domainHandler, PeriodicBoundaryHandler::flushParticles(), Domain::flushParticles(), DomainHandler::getCurrentDomain(), BaseHandler< T >::getSize(), particleHandler, periodicBoundaryHandler, and ParticleHandler::removeGhostObject().
Referenced by performGhostParticleUpdate().
void DPMBase::fillDomainWithParticles | ( | unsigned | N = 50 | ) |
Inserts particles in the whole domain. THis is useful if you want to check whether the wall visualisation or wall computation is correct: First insert the walls, then the particles, then check in paraview if the walls and particles overlap
N |
References BaseHandler< T >::getLastObject(), getMax(), getMin(), BaseHandler< T >::getSize(), INFO, InsertionBoundary::insertParticles(), logger, particleHandler, CubeInsertionBoundary::set(), and speciesHandler.
void DPMBase::finaliseSolve | ( | ) |
End of the solve routine, after time stepping.
References actionsAfterSolve(), closeFiles(), finishStatistics(), and forceWriteOutputFiles().
Referenced by solve().
Finds and opens the next data file, if such a file exists.
First, checks to see if the file type is MULTIPLE_FILES or MULTIPLE_FILES_PADDED and, if so, whether the file contains data (ending the function if not). Then, checks if the time corresponding to the current file exceeds the minimum value entered (tMin). If not, keeps looking through subsequent data files. When a data file that satisfies t > tMin is found and successfully opened, the function returns true.
Useful when fileType is chosen as MULTIPLE_FILES or MULTIPLE_FILES_PADDED, which write data corresponding to each time step as a separate, consecutively numbered file (see FileType).
[in] | tMin | Compared with the t value belonging to the file being checked to see if it is viable. |
[in] | verbose | Allows the function to give output to the screen if desired. |
References dataFile, File::getCounter(), File::getFileType(), File::getFstream(), File::getName(), logger, MULTIPLE_FILES, MULTIPLE_FILES_PADDED, File::open(), verbose, VERBOSE, and WARN.
|
protectedvirtual |
This function is overridden by StatisticsVector
Reimplemented in statistics_while_running< T >, StatisticsVector< T >, StatisticsVector< O >, StatisticsVector< XZ >, and statistics_while_running< T >.
References cgHandler, and CGHandler::finish().
Referenced by finaliseSolve(), and Mercury3DRestart::writeOutputFiles().
void DPMBase::forceWriteOutputFiles | ( | ) |
Writes output files immediately, even if the current time step was not meant to be written. Also resets the last saved time step.
References NEVER, setLastSavedTimeStep(), and writeOutputFiles().
Referenced by finaliseSolve(), main(), and FileReader::read().
|
protected |
|
virtual |
//Not unsigned index because of possible wall collisions.
no implementation but can be overidden in its derived classes.
Reimplemented in StatisticsVector< T >, StatisticsVector< O >, and StatisticsVector< XZ >.
Referenced by BaseInteraction::gatherContactStatistics().
std::vector< int > DPMBase::get1DParametersFromRunNumber | ( | int | sizeX | ) | const |
This turns a counter into 1 index, which is a useful feature for performing 1D parameter study. The index run from 1:size_x, while the study number starts at 0 (initially the counter=1 in COUNTER_DONOTDEL)
Let's say sizeX = 5, counter stored in COUNTER_DONOTDEL = 1. Substituting these values into the algorithm below implies that studyNum = 0 or 1. Everytime the code is executed the counter gets incremented and the values of studyNum and i are updated, which is returned as std::vector<int>
[in] | sizeX | The (integer) number of values to be tested in 1D parameter space. |
References getRunNumber(), constants::i, INFO, and logger.
Referenced by ParameterStudy1DDemo::getCurrentStudyNum().
std::vector< int > DPMBase::get2DParametersFromRunNumber | ( | int | sizeX, |
int | sizeY | ||
) | const |
This turns a counter into 2 indices which is a very useful feature for performing a 2D study. The indices run from 1:size_x and 1:size_y, while the study number starts at 0 ( initially the counter=1 in COUNTER_DONOTDEL)
Let's say sizeX = 2 and sizeY = 5, counter stored in COUNTER_DONOTDEL =1. The studySize = 10. Substituting these values into the below algorithm implies that studyNum = 0 or 1, everytime the code is executed the counter gets incremented and hence determined the values of studyNum, i and j which is returned as a std::vector<int>
[in] | sizeX | The (integer) number of values to be tested for one of the 2 parameters forming the 2D parameter space. |
[in] | sizeY | The (integer) number of values to be tested for the other of the 2 parameters forming the 2D parameter space. |
References getRunNumber(), constants::i, INFO, and logger.
Referenced by ParameterStudy2DDemo::getCurrentStudyNum().
std::vector< int > DPMBase::get3DParametersFromRunNumber | ( | int | sizeX, |
int | sizeY, | ||
int | sizeZ | ||
) | const |
This turns a counter into 3 indices, which is a useful feature for performing a 3D parameter study. The indices run from 1:size_x, 1:size_y and 1:size_z, while the study number starts at 0 ( initially the counter=1 in COUNTER_DONOTDEL)
Let's say sizeX = 2, sizeY = 5 and sizeZ = 3, counter stored in COUNTER_DONOTDEL =1. The studySize = 30. Substituting these values into the below algorithm implies that studyNum = 0 or 1, everytime the code is executed the counter gets incremented and hence determined the values of studyNum, i,j and k which is returned as a std::vector<int>
[in] | sizeX | The (integer) number of values to be tested for one of the 3 parameters forming the 3D parameter space. |
[in] | sizeY | The (integer) number of values to be tested for one of the 3 parameters forming the 3D parameter space. |
[in] | sizeZ | The (integer) number of values to be tested for one of the 3 parameters forming the 3D parameter space. |
References getRunNumber(), constants::i, INFO, and logger.
Referenced by ParameterStudy3DDemo::getCurrentStudyNum().
bool DPMBase::getAppend | ( | ) | const |
Returns whether the "append" option is on or off.
true
if the "append" option is on; false
if the "append" option is off. References append_.
Referenced by initialiseSolve(), and writeEneHeader().
|
inline |
Return the background drag.
References backgroundDrag_.
Referenced by computeExternalForces(), and write().
Vec3D DPMBase::getCentreOfMass | ( | ) | const |
JMFT: Return the centre of mass of the system, excluding fixed particles.
Returns the centre of mass of particles, excluding fixed particles.
References ParticleHandler::getCentreOfMass(), and particleHandler.
Referenced by GranuHeap::actionsAfterTimeStep(), GranuDrum::printTime(), GranuHeap::printTime(), VerticalMixer::printTime(), and GranuDrum::writeResults().
|
inline |
References clock_, and Time::getCPUTime().
Domain * DPMBase::getCurrentDomain | ( | ) |
Function that returns a pointer to the domain corresponding to the processor.
Function that returns a pointer to the domain correseponding to the processor.
References domainHandler, and DomainHandler::getCurrentDomain().
Referenced by checkInteractionWithBoundaries(), and PeriodicBoundaryHandler::clearCommunicationLists().
File & DPMBase::getDataFile | ( | ) |
The non const version. Allows one to edit the File::dataFile.
References dataFile.
const File & DPMBase::getDataFile | ( | ) | const |
The const version. Does not allow for any editing of the File::dataFile.
References dataFile.
Mdouble DPMBase::getElasticEnergy | ( | ) | const |
Returns the global elastic energy within the system.
References interactionHandler.
Referenced by SilbertHstop::actionAfterTimeStep(), BaseCluster::actionsAfterSolve(), GranuHeap::actionsAfterTimeStep(), ShearStage::actionsAfterTimeStep(), BaseCluster::actionsAfterTimeStep(), T_protectiveWall::continueSolve(), ClosedCSCWalls::continueSolve(), CSCInit::continueSolve(), CSCWalls::continueSolve(), InitialConditions< SpeciesType >::continueSolve(), DPM::continueSolve(), protectiveWall::continueSolve(), getTotalEnergy(), main(), GranuHeap::printTime(), ShearStage::printTime(), ClosedCSCRestart::printTime(), ClosedCSCRun::printTime(), ClosedCSCStats::printTime(), ClosedCSCWalls::printTime(), CSCInit::printTime(), CSCRestart::printTime(), CSCRun::printTime(), CSCStats::printTime(), CSCWalls::printTime(), HorizontalMixer::printTime(), VerticalMixer::printTime(), ParticleInclusion::printTime(), vibratedBed::printTime(), InitialConditions< SpeciesType >::printTime(), SphericalIndenter::printTime(), DPM::printTime(), regimeForceUnitTest::printTime(), TangentialSpringEnergyConservationUnitTest::printTime(), BaseCluster::printTime(), writeEneTimeStep(), LawinenBox::writeEneTimeStep(), and BaseCluster::writeToCdatFile().
File & DPMBase::getEneFile | ( | ) |
The non const version. Allows to edit the File::eneFile.
References eneFile.
const File & DPMBase::getEneFile | ( | ) | const |
The const version. Does not allow for any editing of the File::eneFile.
References eneFile.
File & DPMBase::getFStatFile | ( | ) |
The non const version. Allows to edit the File::fStatFile.
References fStatFile.
const File & DPMBase::getFStatFile | ( | ) | const |
The const version. Does not allow for any editing of the File::fStatFile.
References fStatFile.
Mdouble DPMBase::getGravitationalEnergy | ( | ) | const |
Returns the global gravitational potential energy stored in the system.
References Vec3D::dot(), getGravity(), and particleHandler.
Referenced by getTotalEnergy().
Vec3D DPMBase::getGravity | ( | ) | const |
Returns the gravitational acceleration.
References gravity_.
Referenced by MarbleRun::actionsAfterTimeStep(), DropletBoundary::checkBoundaryAfterParticlesMove(), computeExternalForces(), getGravitationalEnergy(), ChuteWithHopper::getMaximumVelocityInducedByGravity(), GranuDrum::GranuDrum(), save(), SingleParticle< SpeciesType >::scaleMass(), InitialConditions< SpeciesType >::scaleMass(), Chute::setChuteAngle(), Binary::setupInitialConditions(), MarbleRun::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), InitialConditions< SpeciesType >::setupInitialConditions(), MercuryProblem::setupInitialConditions(), SingleParticle< SpeciesType >::SingleParticle(), testCGHandler(), write(), writeEneTimeStep(), and LawinenBox::writeEneTimeStep().
|
virtual |
Reimplemented in MercuryBase.
Referenced by BaseParticle::integrateBeforeForceComputation(), and ClumpParticle::integrateBeforeForceComputation().
|
virtual |
A virtual function that returns some user-specified information about a particle.
Reimplemented in WallSpecies, SegregationPeriodic, SegregationPeriodic, SegregationPeriodic, and ChuteWithPeriodicInflow.
References BaseParticle::getInfo().
File & DPMBase::getInteractionFile | ( | ) |
Return a reference to the file InteractionsFile.
References interactionFile.
Referenced by initialiseSolve(), main(), setName(), and BaseInteraction::~BaseInteraction().
const File & DPMBase::getInteractionFile | ( | ) | const |
\bief Returns a constant reference to an Interactions file
References interactionFile.
Mdouble DPMBase::getKineticEnergy | ( | ) | const |
Returns the global kinetic energy stored in the system.
References particleHandler.
Referenced by SilbertHstop::actionAfterTimeStep(), BaseCluster::actionsAfterSolve(), GranuHeap::actionsAfterTimeStep(), ShearStage::actionsAfterTimeStep(), BaseCluster::actionsAfterTimeStep(), DrumRot::actionsBeforeTimeStep(), RotatingDrum::actionsBeforeTimeStep(), T_protectiveWall::continueSolve(), ClosedCSCWalls::continueSolve(), CSCInit::continueSolve(), CSCWalls::continueSolve(), InitialConditions< SpeciesType >::continueSolve(), DPM::continueSolve(), protectiveWall::continueSolve(), getTotalEnergy(), main(), GranuHeap::printTime(), ShearStage::printTime(), ClosedCSCRestart::printTime(), ClosedCSCRun::printTime(), ClosedCSCStats::printTime(), ClosedCSCWalls::printTime(), CSCInit::printTime(), CSCRestart::printTime(), CSCRun::printTime(), CSCStats::printTime(), CSCWalls::printTime(), HorizontalMixer::printTime(), VerticalMixer::printTime(), ParticleInclusion::printTime(), vibratedBed::printTime(), InitialConditions< SpeciesType >::printTime(), SphericalIndenter::printTime(), DPM::printTime(), regimeForceUnitTest::printTime(), BaseCluster::printTime(), setMeanVelocityAndKineticEnergy(), and BaseCluster::writeToCdatFile().
Matrix3D DPMBase::getKineticStress | ( | ) | const |
Calculate the kinetic stress tensor in the system averaged over the whole volume.
The function calculate the kinetic stress tensor based on particle fluctuation velocity.
References Matrix3D::dyadic(), getTotalMass(), getTotalVolume(), and particleHandler.
Referenced by getTotalStress().
|
inline |
References max_.
Referenced by BaseWall::addParticlesAtWall(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), ClosedCSCWalls::ClosedCSCWalls(), commandLineCG(), InfiniteWall::createVTK(), CSCWalls::CSCWalls(), SubcriticalMaserBoundaryTEST::extendBottom(), fillDomainWithParticles(), MembraneDemo::fixMembraneEdges(), MembraneSelfTest::fixMembraneEdges(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), main(), FileReader::read(), Slide::set_Walls(), Domain::setBounds(), Domain::setRange(), ClosedCSCWalls::setupInitialConditions(), Drum::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), StressStrainControl::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Penetration::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), Packing::setupInitialConditions(), Packing::test(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), AxisymmetricIntersectionOfWalls::writeVTK(), HorizontalBaseScrew::writeVTK(), IntersectionOfWalls::writeVTK(), ScrewsymmetricIntersectionOfWalls::writeVTK(), and WallHandler::writeWallDetailsVTKBoundingBox().
|
inline |
References min_.
Referenced by BaseWall::addParticlesAtWall(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), ClosedCSCWalls::ClosedCSCWalls(), commandLineCG(), InfiniteWall::createVTK(), CSCWalls::CSCWalls(), SubcriticalMaserBoundaryTEST::extendBottom(), fillDomainWithParticles(), MembraneDemo::fixMembraneEdges(), MembraneSelfTest::fixMembraneEdges(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), main(), FileReader::read(), Domain::setBounds(), Domain::setRange(), Drum::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), InsertionBoundaryMPI2Test::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), StressStrainControl::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Penetration::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), Packing::setupInitialConditions(), Packing::test(), AxisymmetricIntersectionOfWalls::writeVTK(), HorizontalBaseScrew::writeVTK(), IntersectionOfWalls::writeVTK(), ScrewsymmetricIntersectionOfWalls::writeVTK(), and WallHandler::writeWallDetailsVTKBoundingBox().
const std::string & DPMBase::getName | ( | ) | const |
Returns the name of the file. Does not allow to change it though.
References name_.
Referenced by ShearStage::actionsAfterSolve(), BaseCluster::actionsOnRestart(), checkSettings(), commandLineCG(), DPMBase(), statistics_while_running< T >::finishStatistics(), WallDetailsVTKWriter::generateFileName(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), initialiseSolve(), main(), BaseCluster::makeAmatFile(), BaseCluster::makeCdatFile(), BaseCluster::makeGnuplotFile(), BaseCluster::makeIntenalStructureFile(), BaseCluster::makeOverlFile(), readNextArgument(), Mercury3DRestart::readNextArgument(), removeOldFiles(), FlowRule::run(), statistics_while_running< T >::run(), AngleOfRepose::run(), vibratedBed::run(), save(), SaveCountUnitTest::SaveCountUnitTest(), setCGHandler(), ClosedCSCStats::setupInitialConditions(), CSCStats::setupInitialConditions(), AirySavageHutter::setupInitialConditions(), SingleParticle< SpeciesType >::setupInitialConditions(), MovingWalls::setupInitialConditions(), Chute::setupInitialConditions(), ShearStage::ShearStage(), statistics_while_running< T >::statistics_while_running(), Mercury3DRestart::writeOutputFiles(), Calibration::writePSDToFile(), writePythonFileForVTKVisualisation(), GranuDrum::writeResults(), GranuHeap::writeResults(), HorizontalMixer::writeScript(), ChutePeriodic::writeToLocalFolder(), and ChuteWithPeriodicInflow::writeXBallsScript().
Mdouble DPMBase::getNextTime | ( | ) | const |
Returns the current simulation time.
References time_, and timeStep_.
Referenced by InsertionBoundary::checkBoundaryBeforeTimeStep(), and RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep().
int DPMBase::getNToWrite | ( | ) | const |
get the number of elements to write to the
Gets nToWrite. If a user wants to output e.g. particle information to the screen we limit the number of outputs to nToWrite elements to not get an overflow of information in the terminal.
[out] | nToWrite_ | Number of elements to write to the screen |
References nToWrite_.
Referenced by write().
std::vector< unsigned > DPMBase::getNumberOfDomains | ( | ) |
returns the number of domains
number of domains in parallel code in terms of domains in x,y,z direction
References numberOfDomains_.
Referenced by RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), CGHandler::evaluateDataFiles(), CGHandler::evaluateRestartFiles(), and DomainHandler::getParticleDomainGlobalIndex().
int DPMBase::getNumberOfOMPThreads | ( | ) | const |
References numberOfOMPThreads_.
Referenced by SphericalIndenter::actionsBeforeTimeStep(), computeAllForces(), Mercury3Dclump::computeAllForces(), setNumberOfOMPThreads(), and write().
unsigned int DPMBase::getNumberOfTimeSteps | ( | ) | const |
Returns the current counter of time-steps, i.e. the number of time-steps that the simulation has undergone so far.
References numberOfTimeSteps_.
Referenced by RotatingDrumWet::actionsAfterTimeStep(), ShearStage::actionsAfterTimeStep(), multiParticleT1::actionsAfterTimeStep(), TwoByTwoMPIDomainMPI4Test::actionsAfterTimeStep(), ForceLawsMPI2Test::actionsBeforeTimeStep(), SaveCountUnitTest::actionsBeforeTimeStep(), DropletBoundary::checkBoundaryAfterParticlesMove(), computeAllForces(), computeForcesDueToWalls(), Mercury3Dclump::computeForcesDueToWalls(), computeInternalForce(), Mercury3Dclump::computeInternalForce(), computeOneTimeStep(), DPM::continueSolve(), importParticlesAs(), GranuHeap::printTime(), ShearStage::printTime(), LiquidMigrationMPI2Test::printTime(), LiquidMigrationPeriodicBoundaryInteraction::printTime(), readNextFStatFile(), writeDataFile(), writeEneFile(), writeFStatFile(), and writeRestartFile().
unsigned int DPMBase::getParticleDimensions | ( | ) | const |
Returns the particle dimensionality.
References particleDimensions_.
Referenced by BaseParticle::getParticleDimensions(), ParticleSpecies::getVolumeFromRadius(), and write().
bool DPMBase::getParticlesWriteVTK | ( | ) | const |
Returns whether particles are written in a VTK file.
The VTK format is used for visualisation in Paraview.
References writeParticlesVTK_.
Referenced by writePythonFileForVTKVisualisation(), and writeVTKFiles().
bool DPMBase::getRestarted | ( | ) | const |
Returns the flag denoting if the simulation was restarted or not.
References restarted_.
Referenced by autoNumber(), initialiseSolve(), and writeOutputFiles().
File & DPMBase::getRestartFile | ( | ) |
The non const version. Allows to edit the File::restartFile.
References restartFile.
const File & DPMBase::getRestartFile | ( | ) | const |
The const version. Does not allow for any editing of the File::restartFile.
References restartFile.
std::string DPMBase::getRestartVersion | ( | ) | const |
This is to take into account for different Mercury versions. Returns the version of the restart file.
References restartVersion_.
Referenced by Chute::read().
|
inline |
Indicates whether particle rotation is enabled or disabled.
true
if particle rotation is enabled; false
if particle rotation is disabled. References rotation_.
Referenced by computeAllForces(), computeForcesDueToWalls(), Mercury3Dclump::computeForcesDueToWalls(), computeInternalForce(), Mercury3Dclump::computeInternalForce(), BaseParticle::integrateBeforeForceComputation(), and SphericalParticleVtkWriter::writeVTKAngularVelocity().
Mdouble DPMBase::getRotationalEnergy | ( | ) | const |
JMFT Returns the global rotational energy stored in the system.
References BaseHandler< T >::begin(), BaseHandler< T >::end(), and particleHandler.
Referenced by getTotalEnergy(), and TangentialSpringEnergyConservationUnitTest::printTime().
int DPMBase::getRunNumber | ( | ) | const |
This returns the current value of the counter (runNumber_)
A simple "get function" which allows the user to retrieve the current value corresponding to the run number counter, runNumber_
References runNumber_.
Referenced by get1DParametersFromRunNumber(), get2DParametersFromRunNumber(), get3DParametersFromRunNumber(), and initialiseSolve().
File & DPMBase::getStatFile | ( | ) |
The non const version. Allows to edit the File::statFile.
References statFile.
const File & DPMBase::getStatFile | ( | ) | const |
The const version. Does not allow for any editing of the File::statFile.
References statFile.
Matrix3D DPMBase::getStaticStress | ( | ) | const |
Calculate the static stress tensor in the system averaged over the whole volume.
The function calculate the static stress tensor based on particle contact force and contact normal branch vector.
References Matrix3D::dyadic(), getTotalVolume(), constants::i, and interactionHandler.
Referenced by getTotalStress(), and DPM::printTime().
bool DPMBase::getSuperquadricParticlesWriteVTK | ( | ) | const |
unsigned int DPMBase::getSystemDimensions | ( | ) | const |
Returns the system dimensionality.
References systemDimensions_.
Referenced by HGridOptimiser::initialise(), outputXBallsData(), readNextDataFile(), StatisticsVector< T >::setNZ(), write(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
Mdouble DPMBase::getTime | ( | ) | const |
Returns the current simulation time.
References time_.
Referenced by SilbertHstop::actionAfterTimeStep(), GranuHeap::actionsAfterTimeStep(), ShearStage::actionsAfterTimeStep(), multiParticleT1::actionsAfterTimeStep(), MaserRepeatedOutInMPI2Test::actionsAfterTimeStep(), FreeCooling2DinWallsDemo::actionsAfterTimeStep(), FreeCooling3DDemoProblem::actionsAfterTimeStep(), FreeCooling3DinWallsDemo::actionsAfterTimeStep(), FreeCoolingDemoProblem::actionsAfterTimeStep(), HourGlass::actionsAfterTimeStep(), MinimalExampleDrum::actionsAfterTimeStep(), Chutebelt::actionsAfterTimeStep(), BoundariesSelfTest::actionsAfterTimeStep(), FluxAndPeriodicBoundarySelfTest::actionsAfterTimeStep(), FluxBoundarySelfTest::actionsAfterTimeStep(), DPM::actionsAfterTimeStep(), SphericalIndenter::actionsAfterTimeStep(), BouncingSuperQuadric::actionsAfterTimeStep(), GranularCollapse::actionsAfterTimeStep(), SphericalSuperQuadricCollision::actionsAfterTimeStep(), ContactDetectionNormalSpheresTest::actionsAfterTimeStep(), ContactDetectionRotatedSpheresTest::actionsAfterTimeStep(), Tutorial11::actionsAfterTimeStep(), BaseCluster::actionsAfterTimeStep(), LawinenBox::actionsBeforeTimeStep(), DPM::actionsBeforeTimeStep(), SmoothChute::actionsBeforeTimeStep(), Binary::actionsBeforeTimeStep(), AngleOfRepose::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), Chutebelt::actionsBeforeTimeStep(), ConstantRestitutionSelfTest::actionsBeforeTimeStep(), CoilSelfTest::actionsBeforeTimeStep(), DrumRot::actionsBeforeTimeStep(), RotatingDrum::actionsBeforeTimeStep(), QuaternionWallUnitTest::actionsBeforeTimeStep(), PeriodicWallsWithSlidingFrictionUnitTest::actionsBeforeTimeStep(), SaveCountUnitTest::actionsBeforeTimeStep(), AirySavageHutter::actionsOnRestart(), StatisticsVector< T >::check_current_time_for_statistics(), TimeDependentPeriodicBoundary::checkBoundaryAfterParticlesMove(), ClosedCSCStats::ClosedCSCStats(), commandLineCG(), ChuteWithPeriodicInflow::computeInternalForces(), SilbertHstop::continueSolve(), TimeDependentPeriodicBoundary::createGhostParticle(), CSCStats::CSCStats(), BaseCluster::decreaseForce(), CGHandler::evaluateDataFiles(), CGHandler::evaluateRestartFiles(), LeesEdwardsBoundary::getCurrentShift(), LeesEdwardsBoundary::getCurrentVelocity(), HorizontalBaseScrew::getDistanceAndNormal(), vibratedBed::getPrescribedVelocity(), BaseCluster::increaseForce(), integrateAfterForceComputation(), integrateBeforeForceComputation(), isTimeEqualTo(), loadingTest(), main(), normalAndTangentialLoadingTest(), objectivenessTest(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), inflowFromPeriodic::printTime(), printTime(), T_protectiveWall::printTime(), LawinenBox::printTime(), GranuDrum::printTime(), ShearStage::printTime(), ClosedCSCRestart::printTime(), ClosedCSCRun::printTime(), ClosedCSCStats::printTime(), ClosedCSCWalls::printTime(), CSCInit::printTime(), CSCRestart::printTime(), CSCRun::printTime(), CSCStats::printTime(), CSCWalls::printTime(), ChuteWithPeriodicInflow::printTime(), HorizontalMixer::printTime(), NozzleDemo::printTime(), Drum::printTime(), RotatingDrumWet::printTime(), VerticalMixer::printTime(), ForceLawsMPI2Test::printTime(), ParticleInclusion::printTime(), ParticleBeam::printTime(), SilbertPeriodic::printTime(), CLiveStatistics< T >::printTime(), statistics_while_running< T >::printTime(), vibratedBed::printTime(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::printTime(), ConstantMassFlowMaserSelfTest::printTime(), CubeDeletionBoundarySelfTest::printTime(), DeletionBoundarySelfTest::printTime(), DistributionSelfTest::printTime(), DistributionToPSDSelfTest::printTime(), InsertionBoundarySelfTest::printTime(), MultiplePSDSelfTest::printTime(), NozzleSelfTest::printTime(), PolydisperseInsertionBoundarySelfTest::printTime(), PSDManualInsertionSelfTest::printTime(), PSDSelfTest::printTime(), LiquidMigrationSelfTest::printTime(), TwoParticleElasticCollisionInteraction::printTime(), InitialConditions< SpeciesType >::printTime(), SinterPair::printTime(), SphericalIndenter::printTime(), DPM::printTime(), protectiveWall::printTime(), EvaporationAndHeatTest::printTime(), RandomClusterInsertionBoundarySelfTest::printTime(), viscoElasticUnitTest::printTime(), MultiParticlesInsertion::printTime(), regimeForceUnitTest::printTime(), BaseCluster::printTime(), Chute::printTime(), FileReader::read(), BaseWall::renderWall(), CGHandler::restart(), statistics_while_running< T >::run(), NozzleDemo::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), BaseCluster::setupInitialConditions(), ShearBoxBoundary::shiftHorizontalPosition(), LeesEdwardsBoundary::shiftVerticalPosition(), solve(), statistics_while_running< T >::statistics_while_running(), Domain::updateParticles(), LeesEdwardsBoundary::write(), write(), writeEneTimeStep(), LawinenBox::writeEneTimeStep(), Drum::writeEneTimeStep(), Penetration::writeEneTimeStep(), Silo::writeEneTimeStep(), SingleParticle< SpeciesType >::writeEneTimeStep(), Sintering::writeEneTimeStep(), SphericalIndenter::writeEneTimeStep(), SlidingFrictionUnitTest::writeEneTimeStep(), writeFstatHeader(), protectiveWall::writeFstatHeader(), BaseInteraction::writeInteraction(), ClosedCSCRestart::writeOutputFiles(), CSCRestart::writeOutputFiles(), BaseCluster::writeToCdatFile(), BaseCluster::writeToOverlFile(), HorizontalBaseScrew::writeVTK(), and writeVTKFiles().
Mdouble DPMBase::getTimeMax | ( | ) | const |
Returns the maximum simulation duration.
References timeMax_.
Referenced by AngleOfRepose::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), AirySavageHutter::actionsOnRestart(), ChutePeriodicDemo::ChutePeriodicDemo(), ForceLawsMPI2Test::ForceLawsMPI2Test(), StatisticsVector< T >::getTimeMaxStat(), GranuDrum::GranuDrum(), loadingTest(), main(), normalAndTangentialLoadingTest(), objectivenessTest(), ParticleBeam::ParticleBeam(), printTime(), T_protectiveWall::printTime(), LawinenBox::printTime(), GranuDrum::printTime(), HorizontalMixer::printTime(), NozzleDemo::printTime(), Drum::printTime(), RotatingDrumWet::printTime(), ParticleBeam::printTime(), SilbertPeriodic::printTime(), CLiveStatistics< T >::printTime(), statistics_while_running< T >::printTime(), vibratedBed::printTime(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::printTime(), ConstantMassFlowMaserSelfTest::printTime(), DistributionSelfTest::printTime(), DistributionToPSDSelfTest::printTime(), InsertionBoundarySelfTest::printTime(), MultiplePSDSelfTest::printTime(), NozzleSelfTest::printTime(), PolydisperseInsertionBoundarySelfTest::printTime(), PSDManualInsertionSelfTest::printTime(), PSDSelfTest::printTime(), SinterPair::printTime(), protectiveWall::printTime(), RandomClusterInsertionBoundarySelfTest::printTime(), MultiParticlesInsertion::printTime(), regimeForceUnitTest::printTime(), Chute::printTime(), readNextArgument(), Mercury3DRestart::readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), save(), ChutePeriodic::setup(), ClosedCSCStats::setupInitialConditions(), CSCRun::setupInitialConditions(), CSCStats::setupInitialConditions(), MarbleRun::setupInitialConditions(), Drum::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), SingleParticle< SpeciesType >::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWall::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), Slide::Slide(), solve(), statistics_while_running< T >::statistics_while_running(), write(), and protectiveWall::writeFstatHeader().
Mdouble DPMBase::getTimeStep | ( | ) | const |
Returns the simulation time step.
References timeStep_.
Referenced by ClosedCSCRestart::actionsAfterTimeStep(), ClosedCSCRun::actionsAfterTimeStep(), ClosedCSCWalls::actionsAfterTimeStep(), HorizontalMixer::actionsAfterTimeStep(), CubicCell::actionsAfterTimeStep(), FreeCooling2DinWallsDemo::actionsAfterTimeStep(), FreeCooling3DDemoProblem::actionsAfterTimeStep(), FreeCooling3DinWallsDemo::actionsAfterTimeStep(), FreeCoolingDemoProblem::actionsAfterTimeStep(), HourGlass::actionsAfterTimeStep(), MarbleRun::actionsAfterTimeStep(), SphericalIndenter::actionsAfterTimeStep(), GranularCollapse::actionsAfterTimeStep(), SlidingSpheresUnitTest::actionsAfterTimeStep(), SphericalSuperQuadricCollision::actionsAfterTimeStep(), ContactDetectionNormalSpheresTest::actionsAfterTimeStep(), ContactDetectionRotatedSpheresTest::actionsAfterTimeStep(), Tutorial11::actionsAfterTimeStep(), BaseCluster::actionsAfterTimeStep(), HeatFluidCoupledSpecies< NormalForceSpecies >::actionsAfterTimeStep(), LawinenBox::actionsBeforeTimeStep(), DPM::actionsBeforeTimeStep(), SmoothChute::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), Chutebelt::actionsBeforeTimeStep(), CoilSelfTest::actionsBeforeTimeStep(), BaseCluster::actionsOnRestart(), StressStrainControlBoundary::activateStrainRateControl(), NautaMixer::addSpeciesAndSetTimeStepAndSaveCount(), BaseCluster::calculateTimeStep(), StatisticsVector< T >::check_current_time_for_statistics(), HeaterBoundary::checkBoundaryAfterParticleMoved(), DropletBoundary::checkBoundaryAfterParticlesMove(), checkSettings(), ChutePeriodicDemo::ChutePeriodicDemo(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCWalls::ClosedCSCWalls(), FrictionInteraction::computeFrictionForce(), MindlinInteraction::computeFrictionForce(), MindlinRollingTorsionInteraction::computeFrictionForce(), ChuteWithPeriodicInflow::computeInternalForces(), SinterInteraction::computeNormalForce(), SinterLinInteraction::computeNormalForce(), HertzianSinterInteraction::computeSinterForce(), SlidingFrictionInteraction::computeSlidingSpring(), SlidingFrictionInteraction::computeSlidingSpringSuperQuadric(), WearableNurbsWall::computeWear(), WearableTriangleMeshWall::computeWear(), WearableTriangulatedWall::computeWear(), SilbertHstop::continueSolve(), CSCWalls::CSCWalls(), StressStrainControlBoundary::determineStressControlledShearBoundaries(), ForceLawsMPI2Test::ForceLawsMPI2Test(), ChuteWithHopper::getTimeStepRatio(), GranuDrum::GranuDrum(), integrateAfterForceComputation(), ChuteWithPeriodicInflow::integrateBeforeForceComputation(), integrateBeforeForceComputation(), inflowFromPeriodic::integrateBeforeForceComputation(), isTimeEqualTo(), LeesEdwardsDemo::LeesEdwardsDemo(), main(), ChuteBottom::makeRoughBottom(), ParticleBeam::ParticleBeam(), ParticleCreation::ParticleCreation(), readNextArgument(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), BaseWall::renderWall(), Screw::rotate(), save(), Cstatic2d::set_particle_properties(), Cstatic3D::set_particle_properties(), SilbertPeriodic::set_study(), Calibration::setSpecies(), Material::setSpecies(), ChutePeriodic::setup(), ChuteWithContraction::setup_particles_initial_conditions(), CSCRun::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), MarbleRun::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), SingleParticle< SpeciesType >::setupInitialConditions(), InitialConditions< SpeciesType >::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWall::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), BaseCluster::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SilbertHstop::SilbertHstop(), Slide::Slide(), statistics_while_running< T >::statistics_while_running(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), StressStrainControlBoundary::updateDomainSize(), and write().
Mdouble DPMBase::getTotalEnergy | ( | ) | const |
References getElasticEnergy(), getGravitationalEnergy(), getKineticEnergy(), and getRotationalEnergy().
Mdouble DPMBase::getTotalMass | ( | ) | const |
JMFT: Return the total mass of the system, excluding fixed particles.
References ParticleHandler::getMass(), and particleHandler.
Referenced by ShearStage::actionsAfterTimeStep(), getKineticStress(), ShearStage::printTime(), setMeanVelocity(), and setMeanVelocityAndKineticEnergy().
Vec3D DPMBase::getTotalMomentum | ( | ) | const |
JMFT: Return the total momentum of the system, excluding fixed particles.
Returns the total momentum in the system, excluding fixed particles (which will usually, but not always, have velocity 0)
References ParticleHandler::getMomentum(), and particleHandler.
Referenced by setMeanVelocity(), and setMeanVelocityAndKineticEnergy().
Matrix3D DPMBase::getTotalStress | ( | ) | const |
Calculate the total stress tensor in the system averaged over the whole volume.
The function calculate the total stress tensor which is the sum of kinetic and static stress tensors.
References getKineticStress(), and getStaticStress().
Referenced by ShearStage::actionsAfterTimeStep(), StressStrainControlBoundary::computeStrainRate(), StressStrainControlBoundary::computeStressError(), and ShearStage::printTime().
Mdouble DPMBase::getTotalVolume | ( | ) | const |
Get the total volume of the cuboid system.
References getXMax(), getXMin(), getYMax(), getYMin(), getZMax(), and getZMin().
Referenced by ShearStage::actionsAfterTimeStep(), getKineticStress(), getStaticStress(), GranuHeap::GranuHeap(), and ShearStage::printTime().
ParticleVtkWriter * DPMBase::getVtkWriter | ( | ) | const |
References vtkWriter_.
FileType DPMBase::getWallsWriteVTK | ( | ) | const |
Returns whether walls are written in a VTK file.
The VTK file is used for visualisation in Paraview.
References WallHandler::getWriteVTK(), logger, wallHandler, and WARN.
|
inline |
References clock_, and Time::getWallTime().
WallVTKWriter & DPMBase::getWallVTKWriter | ( | ) |
References wallVTKWriter_.
Referenced by WallHandler::getWriteWallSurfaceAreaVTK(), and WallHandler::setWriteWallSurfaceAreaVTK().
bool DPMBase::getWritePythonFileForVTKVisualisation | ( | ) | const |
References forceWritePythonFileForVTKVisualisation_.
std::string DPMBase::getXBallsAdditionalArguments | ( | ) | const |
Returns the additional arguments for xballs.
References xBallsAdditionalArguments_.
Referenced by write(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
int DPMBase::getXBallsColourMode | ( | ) | const |
Get the xballs colour mode (CMode).
Returns the integer value corresponding to the colour scheme used by the XBalls visualisation software. See also setXBallsColourMode and the Visualising data in xballs
References xBallsColourMode_.
Referenced by inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
double DPMBase::getXBallsScale | ( | ) | const |
Returns the scale of the view in xballs.
References xBallsScale_.
Referenced by inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
double DPMBase::getXBallsVectorScale | ( | ) | const |
Returns the scale of vectors used in xballs.
Returns the length of the vectors which represent particle velocities in XBalls visualisations (see also setXBallsVectorScale and the Visualising data in xballs).
References xBallsVectorScale_.
Referenced by inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
|
inline |
|
inline |
If the length of the problem domain in x-direction is XMax - XMin, then getXMax() returns XMax.
References max_, and Vec3D::x().
Referenced by LeesEdwardsDemo::actionsAfterTimeStep(), TimeDependentPeriodicBoundary3DSelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundaryTest::actionsAfterTimeStep(), Chutebelt::actionsAfterTimeStep(), Chutebelt::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), StressStrainControlBoundary::activateStrainRateControl(), ChuteWithPeriodicInflow::AddContinuingBottom(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), Funnel::check_funnel(), checkSettings(), ChutePeriodicDemo::ChutePeriodicDemo(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContinuingBottom::ChuteWithPeriodicInflowAndContinuingBottom(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ChuteWithPeriodicInflowAndVariableBottom::ChuteWithPeriodicInflowAndVariableBottom(), ChuteWithPeriodicInflow::cleanChute(), ChuteWithContraction::cleanChute(), Chute::cleanChute(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCWalls::ClosedCSCWalls(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), Chute::createBottom(), Chute::createFlowParticle(), CSCWalls::CSCWalls(), decompose(), StressStrainControlBoundary::determineStressControlledShearBoundaries(), Chute::getChuteLength(), ChuteWithHopper::getChuteLength(), ChuteWithHopper::getMaximumVelocityInducedByGravity(), DomainHandler::getParticleDomainGlobalIndex(), getTotalVolume(), StatisticsVector< T >::getXMaxStat(), MarbleRun::includeInDomain(), Indenter::Indenter(), inflowFromPeriodic::inflowFromPeriodic(), InitialConditions< SpeciesType >::InitialConditions(), HGridOptimiser::initialise(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), LawinenBox::LawinenBox(), ChuteWithPeriodicInflow::loadPeriodicBox(), main(), MercuryCGSelfTest::MercuryCGSelfTest(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), ParticleCreation::ParticleCreation(), protectiveWall::protectiveWall(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), StressStrainControlBoundary::set(), ChuteWithHopper::setHopperShift(), SphericalIndenter::setIndenterHeight(), T_protectiveWall::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), MercuryLogo::setupInitialConditions(), multiParticleT1::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), LiquidMigrationMPI2Test::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), LeesEdwardsDemo::setupInitialConditions(), MarbleRun::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), TimeDependentPeriodicBoundaryTest::setupInitialConditions(), Cstatic2d::setupInitialConditions(), AngleOfRepose::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), RotatingDrum::setupInitialConditions(), Chutebelt::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), SquarePacking::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), SingleParticle< SpeciesType >::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), MercuryProblem::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial1::setupInitialConditions(), Tutorial2::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial5::setupInitialConditions(), Tutorial6::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), Tutorial9::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), setXMin(), Siegen::Siegen(), FlowFrontChute::stretch(), T_protectiveWall::T_protectiveWall(), StressStrainControlBoundary::updateDomainSize(), viscoElasticUnitTest::viscoElasticUnitTest(), write(), writeFstatHeader(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
|
inline |
If the length of the problem domain in x-direction is XMax - XMin, then getXMin() returns XMin.
References min_, and Vec3D::x().
Referenced by LeesEdwardsDemo::actionsAfterTimeStep(), TimeDependentPeriodicBoundary3DSelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundaryTest::actionsAfterTimeStep(), Chutebelt::actionsAfterTimeStep(), Chutebelt::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), StressStrainControlBoundary::activateStrainRateControl(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), Funnel::check_funnel(), checkSettings(), ChutePeriodicDemo::ChutePeriodicDemo(), Chute::cleanChute(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCWalls::ClosedCSCWalls(), MercuryLogo::constructTextAsParticles(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), ChuteWithVerticalHopper::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), Chute::createBottom(), Chute::createFlowParticle(), CSCWalls::CSCWalls(), decompose(), StressStrainControlBoundary::determineStressControlledShearBoundaries(), DomainHandler::getParticleDomainGlobalIndex(), getTotalVolume(), StatisticsVector< T >::getXMinStat(), MarbleRun::includeInDomain(), Indenter::Indenter(), InitialConditions< SpeciesType >::InitialConditions(), HGridOptimiser::initialise(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), main(), MercuryCGSelfTest::MercuryCGSelfTest(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), ParticleCreation::ParticleCreation(), protectiveWall::protectiveWall(), readParAndIniFiles(), save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), StressStrainControlBoundary::set(), SphericalIndenter::setIndenterHeight(), T_protectiveWall::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), MercuryLogo::setupInitialConditions(), multiParticleT1::setupInitialConditions(), my_problem::setupInitialConditions(), Binary::setupInitialConditions(), ForceLawsMPI2Test::setupInitialConditions(), LiquidMigrationMPI2Test::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), LeesEdwardsDemo::setupInitialConditions(), MarbleRun::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), TimeDependentPeriodicBoundaryTest::setupInitialConditions(), Cstatic2d::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), RotatingDrum::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), SquarePacking::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), MercuryProblem::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial6::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), MD_demo::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), setXMax(), FlowFrontChute::stretch(), T_protectiveWall::T_protectiveWall(), StressStrainControlBoundary::updateDomainSize(), write(), writeFstatHeader(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
|
inline |
|
inline |
If the length of the problem domain in y-direction is YMax - YMin, then getYMax() returns XMax.
References max_, and Vec3D::y().
Referenced by T_protectiveWall::actionsAfterTimeStep(), LeesEdwardsDemo::actionsAfterTimeStep(), TimeDependentPeriodicBoundary3DSelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundaryTest::actionsAfterTimeStep(), GranularCollapse::actionsAfterTimeStep(), protectiveWall::actionsAfterTimeStep(), SmoothChute::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), StressStrainControlBoundary::activateStrainRateControl(), ChuteWithHopper::addHopper(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), Funnel::check_funnel(), checkSettings(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCWalls::ClosedCSCWalls(), MercuryLogo::constructTextAsParticles(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), ChuteWithVerticalHopper::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), SegregationWithHopper::create_inflow_particle(), Funnel::create_walls(), Chute::createBottom(), Chute::createFlowParticle(), CSCWalls::CSCWalls(), decompose(), StressStrainControlBoundary::determineStressControlledShearBoundaries(), ChuteWithPeriodicInflow::ExtendInWidth(), Chute::getChuteWidth(), DomainHandler::getParticleDomainGlobalIndex(), getTotalVolume(), StatisticsVector< T >::getYMaxStat(), MarbleRun::includeInDomain(), Indenter::Indenter(), InitialConditions< SpeciesType >::InitialConditions(), HGridOptimiser::initialise(), HorizontalMixer::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), LawinenBox::LawinenBox(), main(), MercuryCGSelfTest::MercuryCGSelfTest(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), ParticleCreation::ParticleCreation(), protectiveWall::protectiveWall(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), StressStrainControlBoundary::set(), SphericalIndenter::setIndenterHeight(), T_protectiveWall::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass::setupInitialConditions(), LeesEdwardsDemo::setupInitialConditions(), MarbleRun::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), TimeDependentPeriodicBoundaryTest::setupInitialConditions(), AngleOfRepose::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), SquarePacking::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), MercuryProblem::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial1::setupInitialConditions(), Tutorial2::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial5::setupInitialConditions(), Tutorial6::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), Tutorial9::setupInitialConditions(), MD_demo::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), ChuteWithHopper::setupInitialConditions(), Chute::setupSideWalls(), setYMin(), T_protectiveWall::T_protectiveWall(), StressStrainControlBoundary::updateDomainSize(), viscoElasticUnitTest::viscoElasticUnitTest(), write(), writeFstatHeader(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
|
inline |
If the length of the problem domain in y-direction is YMax - YMin, then getYMin() returns YMin.
References min_, and Vec3D::y().
Referenced by LeesEdwardsDemo::actionsAfterTimeStep(), TimeDependentPeriodicBoundary3DSelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundaryTest::actionsAfterTimeStep(), SmoothChute::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), StressStrainControlBoundary::activateStrainRateControl(), ChuteWithHopper::addHopper(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), Funnel::check_funnel(), checkSettings(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCWalls::ClosedCSCWalls(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), ChuteWithVerticalHopper::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), SegregationWithHopper::create_inflow_particle(), Funnel::create_walls(), Chute::createBottom(), Chute::createFlowParticle(), CSCWalls::CSCWalls(), decompose(), StressStrainControlBoundary::determineStressControlledShearBoundaries(), ChuteWithPeriodicInflow::ExtendInWidth(), DomainHandler::getParticleDomainGlobalIndex(), getTotalVolume(), StatisticsVector< T >::getYMinStat(), MarbleRun::includeInDomain(), Indenter::Indenter(), InitialConditions< SpeciesType >::InitialConditions(), HGridOptimiser::initialise(), HorizontalMixer::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), main(), MercuryCGSelfTest::MercuryCGSelfTest(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), ParticleCreation::ParticleCreation(), readParAndIniFiles(), save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), StressStrainControlBoundary::set(), SphericalIndenter::setIndenterHeight(), T_protectiveWall::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), my_problem::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), Binary::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass::setupInitialConditions(), LeesEdwardsDemo::setupInitialConditions(), MarbleRun::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), TimeDependentPeriodicBoundaryTest::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), SquarePacking::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), MercuryProblem::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), ChuteWithHopper::setupInitialConditions(), Chute::setupSideWalls(), setYMax(), StressStrainControlBoundary::updateDomainSize(), write(), writeFstatHeader(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
|
inline |
|
inline |
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMax() returns ZMax.
References max_, and Vec3D::z().
Referenced by SmoothChute::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), StressStrainControlBoundary::activateStrainRateControl(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), checkSettings(), ClosedCSCWalls::ClosedCSCWalls(), MercuryLogo::constructTextAsParticles(), Funnel::create_funnel(), LawinenBox::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), ChuteWithVerticalHopper::create_inflow_particle(), CSCWalls::CSCWalls(), decompose(), StressStrainControlBoundary::determineStressControlledShearBoundaries(), DomainHandler::getParticleDomainGlobalIndex(), getTotalVolume(), StatisticsVector< T >::getZMaxStat(), MarbleRun::includeInDomain(), HGridOptimiser::initialise(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), LawinenBox::LawinenBox(), main(), MercuryCGSelfTest::MercuryCGSelfTest(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), ParticleCreation::ParticleCreation(), protectiveWall::protectiveWall(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), StressStrainControlBoundary::set(), T_protectiveWall::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), NozzleDemo::setupInitialConditions(), Binary::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), MarbleRun::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), AngleOfRepose::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), RotatingDrum::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), DPM::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Contact::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial1::setupInitialConditions(), Tutorial2::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial5::setupInitialConditions(), Tutorial6::setupInitialConditions(), FreeFall::setupInitialConditions(), MD_demo::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), setZMin(), Siegen::Siegen(), SilbertHstop::solve_analytic(), T_protectiveWall::T_protectiveWall(), StressStrainControlBoundary::updateDomainSize(), viscoElasticUnitTest::viscoElasticUnitTest(), write(), writeFstatHeader(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
|
inline |
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMin() returns ZMin.
References min_, and Vec3D::z().
Referenced by HourGlass2D::actionsAfterTimeStep(), HourGlass::actionsAfterTimeStep(), Tutorial11::actionsAfterTimeStep(), SmoothChute::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), StressStrainControlBoundary::activateStrainRateControl(), SilbertPeriodic::add_flow_particles(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), checkSettings(), Funnel::cleanChute(), inflowFromPeriodic::cleanChute(), ClosedCSCWalls::ClosedCSCWalls(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), ChuteWithVerticalHopper::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), Chute::createBottom(), Chute::createFlowParticle(), CSCWalls::CSCWalls(), decompose(), StressStrainControlBoundary::determineStressControlledShearBoundaries(), SphericalIndenter::getBedHeight(), DomainHandler::getParticleDomainGlobalIndex(), getTotalVolume(), StatisticsVector< T >::getZMinStat(), MarbleRun::includeInDomain(), InitialConditions< SpeciesType >::InitialConditions(), HGridOptimiser::initialise(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), main(), MercuryCGSelfTest::MercuryCGSelfTest(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), ParticleCreation::ParticleCreation(), readParAndIniFiles(), save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), StressStrainControlBoundary::set(), HorizontalMixer::setOuterWalls(), T_protectiveWall::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), NozzleDemo::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), Chain::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), MarbleRun::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), AngleOfRepose::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), RotatingDrum::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), DPM::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial9::setupInitialConditions(), MD_demo::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), WallSpecies::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), setZMax(), StressStrainControlBoundary::updateDomainSize(), write(), writeFstatHeader(), inflowFromPeriodic::writeXBallsScript(), and ChuteWithPeriodicInflow::writeXBallsScript().
|
virtual |
\briefHandles the addition of particles to the particleHandler
This function is called by ParticleHandler::addObject and ParticleHandler::addGhostObject to broadcast the addition of a particle from the handler. It passes the information on to the walls in the wallHandler.
[in] | id | The id of the removed particle. |
[in] | p | A pointer to the particle. |
References wallHandler.
Referenced by ParticleHandler::addGhostObject(), and ParticleHandler::addObject().
|
virtual |
Handles the removal of particles from the particleHandler.
This function is called by ParticleHandler::removeObject and ParticleHandler::removeGhostObject to broadcast the removal of a particle from the handler. It passes the information on to the walls in the wallHandler.
[in] | id | The id of the removed particle. |
References wallHandler.
Referenced by ParticleHandler::clear(), ParticleHandler::removeGhostObject(), ParticleHandler::removeLastObject(), and ParticleHandler::removeObject().
|
protectedvirtual |
This function has to be called after integrateBeforeForceComputation.
no implementation but can be overidden in its derived classes.
Reimplemented in MercuryBase.
Referenced by computeOneTimeStep().
|
protectedvirtual |
This function has to be called before integrateBeforeForceComputation.
no implementation but can be overidden in its derived classes.
Reimplemented in MercuryBase.
Referenced by computeOneTimeStep().
|
protectedvirtual |
A virtual function that allows one to carry out hGrid operations before the start of the time loop.
no implementation but can be overidden in its derived classes.
Reimplemented in MercuryBase.
Referenced by initialiseSolve().
|
protectedvirtual |
A virtual function that allows one to set or execute hGrid parameters or operations before every simulation time step.
no implementation but can be overidden in its derived classes.
Reimplemented in MercuryBase.
Referenced by computeOneTimeStep(), and initialiseSolve().
|
inlinevirtual |
Creates a list of neighbour particles obtained from the hgrid.
Reimplemented in Mercury3D, and Mercury2D.
Referenced by PeriodicBoundaryHandler::processLocalInteractionData(), PeriodicBoundaryHandler::processReceivedInteractionData(), and Domain::processReceivedInteractionData().
|
virtual |
no implementation but can be overidden in its derived classes.
Referenced by ParticleHandler::addExistingObject(), ParticleHandler::addGhostObject(), and ParticleHandler::addObject().
|
virtual |
no implementation but can be overidden in its derived classes.
Referenced by ParticleHandler::removeGhostObject(), ParticleHandler::removeLastObject(), and ParticleHandler::removeObject().
|
virtual |
no implementation but can be overidden in its derived classes.
Reimplemented in MercuryBase.
Referenced by PeriodicBoundary::checkBoundaryAfterParticlesMove(), BaseParticle::integrateBeforeForceComputation(), ClumpParticle::integrateBeforeForceComputation(), Domain::updateParticlePosition(), and PeriodicBoundaryHandler::updateParticles().
|
virtual |
no implementation but can be overidden in its derived classes.
Referenced by ParticleHandler::addExistingObject(), ParticleHandler::addGhostObject(), ParticleHandler::addObject(), MercuryBase::hGridActionsBeforeTimeStep(), and MercuryBase::hGridRebuild().
void DPMBase::importParticlesAs | ( | ParticleHandler & | particleH, |
InteractionHandler & | interactionH, | ||
const ParticleSpecies * | species | ||
) |
Copies particles, interactions assigning species from a local simulation to a global one. Useful for the creation of a cluster.
Copies particles, interactions assigning species from a local simulation to a global one; useful for the creation of a cluster.
[in] | particleH | the particle handler from wich particles are copied, |
[in] | particleH | the interaction handler from wich interactions are copied, |
[in] | species | the species that will be assigned to the particle. |
References BaseHandler< T >::begin(), BaseHandler< T >::copyAndAddObject(), BaseHandler< T >::end(), getNumberOfTimeSteps(), BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), constants::i, interactionHandler, and particleHandler.
Referenced by FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), and RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep().
|
static |
Increment the run Number (counter value) stored in the file_counter (COUNTER_DONOTDEL) by 1 and store the new value in the counter file.
In order to increment the counter stored in COUNTER_DONOTDEL, we initialise two fstream objects counter_file, counter_file2 and an integer type temp_counter. First we open the file COUNTER_DONOTDEL, check if everything went fine with the opening. If yes, we extract the runNumber (counter) into the temp_counter. Increment the temp_counter and then write it into COUNTER_DONOTDEL. This is how we increment the counter in the file.
Referenced by autoNumber().
void DPMBase::initialiseSolve | ( | ) |
Beginning of the solve routine, before time stepping.
Further details are included in the body of the code, below.
Initialise the time and sets up the initial conditions for the simulation
References InteractionHandler::actionsAfterTimeStep(), actionsBeforeTimeLoop(), actionsOnRestart(), DomainHandler::addNewParticles(), PeriodicBoundaryHandler::addNewParticles(), BoundaryHandler::boundaryActionsBeforeTimeLoop(), boundaryHandler, checkAndDuplicatePeriodicParticles(), checkSettings(), computeAllForces(), ParticleHandler::computeAllMasses(), DEBUG, decompose(), domainHandler, getAppend(), getInteractionFile(), getName(), getRestarted(), getRunNumber(), hGridActionsBeforeTimeLoop(), hGridActionsBeforeTimeStep(), constants::i, INFO, initialiseStatistics(), interactionHandler, logger, units::name, NUMBER_OF_PROCESSORS, numberOfTimeSteps_, ONE_FILE, File::open(), particleHandler, periodicBoundaryHandler, removeDuplicatePeriodicParticles(), resetFileCounter(), restartFile, setName(), setOpenMode(), File::setOpenMode(), setTime(), setupInitialConditions(), wallHandler, and WARN.
Referenced by solve().
|
protectedvirtual |
This function is overridden by StatisticsVector
Reimplemented in statistics_while_running< T >, StatisticsVector< T >, StatisticsVector< O >, StatisticsVector< XZ >, and statistics_while_running< T >.
References cgHandler, and CGHandler::initialise().
Referenced by initialiseSolve().
void DPMBase::insertGhostParticle | ( | BaseParticle * | particle | ) |
This function inserts a particle in the mpi communication boundaries.
[in] | particle | Pointer to a base particle that needs to be inserted in the communication boundaries |
References PeriodicBoundaryHandler::addNewParticle(), Domain::addParticle(), domainHandler, DomainHandler::getCurrentDomain(), BaseHandler< T >::getSize(), and periodicBoundaryHandler.
Referenced by ParticleHandler::addObject().
|
protectedvirtual |
Update particles' and walls' positions and velocities after force computation.
Performs integration - i.e. updating particle's positions, velocities and accelerations - for all particles and walls within the system (i.e. in the particleHandler and wallHandler). Integration is performed using the BaseParticle::integrateBeforeForceComputation() function.
The velocity Verlet algorithm requires us to integrate twice each time step: both before and after the force computation. This method is therefore used in conjunction with DPMBase::integrateAfterForceComputation(). See http://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet for details.
References BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), getTime(), getTimeStep(), BaseInteractable::integrateAfterForceComputation(), BaseParticle::integrateAfterForceComputation(), BaseParticle::isMPIParticle(), BaseParticle::isPeriodicGhostParticle(), particleHandler, and wallHandler.
Referenced by computeOneTimeStep().
|
protectedvirtual |
Update particles' and walls' positions and velocities before force computation.
This is where the integration is done, at the moment it is velocity Verlet integration and is done before the forces are computed. See http://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet
Performs integration - i.e. updating particle's positions, velocities and accelerations - for all particles and walls within the system (i.e. in the particleHandler and wallHandler). Integration is performed using the BaseParticle::integrateBeforeForceComputation() function.
The velocity Verlet algorithm requires us to integrate twice each time step: both before and after the force computation. This method is therefore used in conjunction with DPMBase::integrateAfterForceComputation(). See http://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet for details.
Reimplemented in ChuteWithPeriodicInflow.
References BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), getTime(), getTimeStep(), BaseInteractable::integrateBeforeForceComputation(), BaseParticle::integrateBeforeForceComputation(), BaseParticle::isMPIParticle(), BaseParticle::isPeriodicGhostParticle(), particleHandler, and wallHandler.
Referenced by computeOneTimeStep().
Checks whether the input variable "time" is the current time in the simulation.
Returns true if and only if the "time" argument passed to the function is equal to the current simulation time i.e. if "time" is either exactly equal to the current simulation time (getTime() ) or at least lies between this time step and the next increment (this nicely avoids rounding errors!)
true
if "time" and getTime() are equal, otherwise false
. References getTime(), and getTimeStep().
This launches a code from within this code. Please pass the name of the code to run.
Reads in the name of the command (code) to be launched. This name is then converted to a string stream and appended with " &" (such that command is run in the background), before being converted back to a C string and then fed to the system() command which will execute the named code from within the running Mercury program.
[in] | name | The name of the code to be launched |
[in] | quick |
References units::name.
Referenced by ParameterStudy1DDemo::actionsAfterSolve(), ParameterStudy2DDemo::actionsAfterSolve(), ParameterStudy3DDemo::actionsAfterSolve(), ParameterStudy1DDemo::actionsBeforeTimeLoop(), ParameterStudy2DDemo::actionsBeforeTimeLoop(), ParameterStudy3DDemo::actionsBeforeTimeLoop(), and FlowRule::launch().
bool DPMBase::mpiInsertParticleCheck | ( | BaseParticle * | P | ) |
Function that checks if the mpi particle should really be inserted by the current domain.
When adding a particle, all domains "add" the particle to enable communication between processors However not very domain should add the particle, only the domain that actually contains the particle There is one exception, if an MPI Particle is added (which is not physically in the current domain), this has already been approved by the domain and hence it should return true.
[in] | P | Pointer to a baseParticle that requires an insertion check |
References Domain::containsParticle(), domainHandler, DomainHandler::getCurrentDomain(), BaseHandler< T >::getSize(), and Global_Physical_Variables::P.
Referenced by ParticleHandler::addObject().
bool DPMBase::mpiIsInCommunicationZone | ( | BaseParticle * | particle | ) |
Checks if the position of the particle is in an mpi communication zone or not.
[in] | particle | Pointer to a base particle |
References MPIContainer::broadcast(), domainHandler, MPIContainer::gather(), DomainHandler::getCurrentDomain(), constants::i, MPIContainer::Instance(), Domain::isInCommunicationZone(), NUMBER_OF_PROCESSORS, and PROCESSOR_ID.
|
protected |
Displays the interaction details corresponding to the pointer objects in the interaction handler.
Skims through all the object pointers of type BaseInteraction in the interaction handler. Outputs the type of interaction between two particles P and I.
References INFO, interactionHandler, logger, and NO_FLUSH.
|
protectedvirtual |
This function is overridden by StatisticsVector
Reimplemented in StatisticsVector< T >, StatisticsVector< O >, and StatisticsVector< XZ >.
|
protectedvirtual |
This function writes the location of the walls and particles in a format the XBalls program can read. For more information on the XBalls program, see Visualising data in xballs.
[in] | os |
Reimplemented in SphericalIndenter, LiquidMigrationSelfTest, and LiquidMigrationMPI2Test.
References DEBUG, ERROR, ParticleHandler::getNumberOfRealObjectsLocal(), BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), getSystemDimensions(), getTime(), getXMax(), getXMin(), getYMax(), getYMin(), getZMax(), getZMin(), constants::i, BaseParticle::isMPIParticle(), BaseParticle::isPeriodicGhostParticle(), logger, outputXBallsDataParticle(), and particleHandler.
Referenced by CSCInit::save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), and writeDataFile().
|
protectedvirtual |
This function writes out the particle locations into an output stream in a format the XBalls program can read. For more information on the XBalls program, see Visualising data in xballs.
Referenced by outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), and SphericalIndenter::outputXBallsData().
|
protected |
When the Verlet scheme updates the positions and velocities of particles, ghost particles will need an update as wel. Their status will also be updated accordingly.
References DomainHandler::addNewParticles(), PeriodicBoundaryHandler::addNewParticles(), deleteGhostParticles(), domainHandler, NUMBER_OF_PROCESSORS, periodicBoundaryHandler, PeriodicBoundaryHandler::updateStatus(), and DomainHandler::updateStatus().
Referenced by computeOneTimeStep().
|
protected |
updates the final time-step velocity of the ghost particles
References NUMBER_OF_PROCESSORS.
|
protectedvirtual |
Displays the current simulation time and the maximum simulation duration.
Gets and prints the current simulation time (getTime()
) and the currently set maximum simulation time (getTimeMax()
) .
Reimplemented in Chute, BaseCluster, TangentialSpringEnergyConservationUnitTest, SpeciesTest, regimeForceUnitTest, RandomClusterInsertionBoundarySelfTest, PeriodicWallsWithSlidingFrictionUnitTest, MultiParticlesInsertion, LiquidMigrationPeriodicBoundaryInteraction, viscoElasticUnitTest, LongHertzianSinterForceUnitTest, RandomClusterInsertionBoundarySelfTest, EvaporationAndHeatTest, protectiveWall, DPM, SphericalIndenter, SinterPair, Sintering, InitialConditions< SpeciesType >, SingleParticle< SpeciesType >, TwoParticleElasticCollisionInteraction, LiquidMigrationSelfTest, PSDSelfTest, PSDManualInsertionSelfTest, PolydisperseInsertionBoundarySelfTest, NozzleSelfTest, MultiplePSDSelfTest, InsertionBoundarySelfTest, DistributionToPSDSelfTest, DistributionSelfTest, DeletionBoundarySelfTest, CubeDeletionBoundarySelfTest, ConstantMassFlowMaserSelfTest, ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest, Silo, Penetration, Drum, vibratedBed, statistics_while_running< T >, SilbertPeriodic, CLiveStatistics< T >, SilbertPeriodic, SilbertPeriodic, statistics_while_running< T >, statistics_while_running< T >, ParticleBeam, ParticleInclusion, LiquidMigrationMPI2Test, ForceLawsMPI2Test, VerticalMixer, RotatingDrumWet, Drum, NozzleDemo, HorizontalMixer, ChuteWithPeriodicInflow, RandomClusterInsertionBoundarySelfTest, Vreman, Vreman, Vreman, VariableBottom, ChutePeriodic, VariableBottom, ChutePeriodic, CSCWalls, CSCStats, CSCRun, CSCRestart, CSCInit, ClosedCSCWalls, ClosedCSCStats, ClosedCSCRun, ClosedCSCRestart, ShearStage, GranuHeap, GranuDrum, LawinenBox, LawinenBox, LawinenBox, and T_protectiveWall.
References MPIContainer::getProcessorID(), getTime(), getTimeMax(), INFO, MPIContainer::Instance(), and logger.
Referenced by LongHertzianSinterForceUnitTest::printTime(), TangentialSpringEnergyConservationUnitTest::printTime(), Mercury3DRestart::readNextArgument(), and writeOutputFiles().
|
protectedvirtual |
This function is overridden by StatisticsVector
Reimplemented in StatisticsVector< T >, StatisticsVector< O >, and StatisticsVector< XZ >.
|
virtual |
Reads all data from a restart file, e.g. domain data and particle data.
Reads in an existing .restart file line-by-line and passes all relevant parameters to the current instance of DPMBase. The data stream corresponding to the desired input file is passed as an argument.
[in] | is | The data stream from which the particle data will be read. |
\TODO: Bound checking
\TODO: Same order as other file format, please?
todo{Do we want to calculate the mass?}
Reimplemented in MercuryBase, ChuteWithHopper, Chute, BaseCluster, Funnel, MembraneSelfTest, and MembraneDemo.
References DomainHandler::addNewParticles(), PeriodicBoundaryHandler::addNewParticles(), backgroundDrag_, boundaryHandler, boundaryVTKWriter_, BaseHandler< T >::clear(), ParticleHandler::clear(), helpers::compare(), dataFile, decompose(), domainHandler, eneFile, ERROR, FATAL, fStatFile, ParticleHandler::getLargestInteractionRadius(), helpers::getLineFromStringStream(), File::getName(), gravity_, constants::i, INFO, interactionFile, interactionHandler, interactionVTKWriter_, logger, max_, min_, name_, NO_FILE, NUMBER_OF_PROCESSORS, numberOfDomains_, numberOfTimeSteps_, particleDimensions_, particleHandler, periodicBoundaryHandler, random, BaseHandler< T >::read(), InteractionHandler::read(), RNG::read(), BoundaryHandler::readAndAddObject(), WallHandler::readAndAddObject(), ParticleHandler::readAndAddObject(), ReadNoInteractions, ReadNoParticlesAndInteractions, readOld(), restartFile, restartVersion_, runNumber_, BaseVTKWriter< H >::setFileCounter(), DomainHandler::setInteractionDistance(), PeriodicBoundaryHandler::setInteractionDistance(), setName(), File::setName(), setNumberOfOMPThreads(), setParticlesWriteVTK(), BaseHandler< T >::setStorageCapacity(), WallHandler::setWriteDetailsVTK(), BoundaryHandler::setWriteVTK(), InteractionHandler::setWriteVTK(), WallHandler::setWriteVTK(), setXBallsAdditionalArguments(), speciesHandler, statFile, systemDimensions_, time_, timeMax_, timeStep_, vtkWriter_, wallDetailsVTKWriter_, wallHandler, wallVTKWriter_, Vec3D::x(), XAXIS, Vec3D::y(), YAXIS, Vec3D::z(), and ZAXIS.
Referenced by MercuryBase::read(), readRestartFile(), and readSpeciesFromDataFile().
Can interpret main function input arguments that are passed by the driver codes.
Interprets commands passed in the command line (e.g. -tmin 0 -tmax 100 ...).
argc
gives the number of commands passed, while argv
stores the commands themselves (as strings).
Outputs the name and value of each flag passed, then calls the readNextArgument() function to actually interpret and implement the relevant arguments. Will raise an error if an unknown flag is passed.
[in] | argc | "Argument count" - number of individual elements that argv will possess |
[in] | *argv[] | An array of length argc - specifically an array of strings (or, in C terminology, a character array) |
References ERROR, constants::i, INFO, logger, NO_FLUSH, and readNextArgument().
Referenced by main(), FlowRule::run(), vibratedBed::run(), solve(), and statistics_while_running< T >::statistics_while_running().
bool DPMBase::readDataFile | ( | std::string | fileName = "" , |
unsigned int | format = 0 |
||
) |
This allows particle data to be reloaded from data files.
This function reads a .data file, which contains info about each particle's position, velocity, angular velocity, radius ...info. See also MD::readRestartFile For XBalls: Can read in format_ 14 - 8 or format_ 7 data format. This code saves in format_ 8 for 2D and format_ 14 for 3D. So if no extra parameters are specified it will assume many parameters, like density cannot be set using the data file. use of string instead of string& b/c this function is often used with a string literal
[in] | fileName | |
[in] | format | (format for specifying if its for 2D or 3D data) |
References File::close(), dataFile, File::getCounter(), File::getFileType(), File::getFstream(), File::getFullName(), File::getName(), logger, ONE_FILE, File::open(), readNextDataFile(), File::setCounter(), File::setFileType(), File::setName(), and WARN.
Referenced by VariableBottom::add_particles(), VariableBottom::createBottom(), LawinenBox::LawinenBox(), main(), readNextArgument(), my_problem::setupInitialConditions(), free_cooling::setupInitialConditions(), restart::setupInitialConditions(), and DPM::setupInitialConditions().
Interprets the i^th command-line argument.
Reads, recognises and applies all valid flags passed when starting or restarting a Mercury simulation.
For all of the N = argc
(argument count) command line arguments passed when starting/restarting a code (e.g. -tmax, -tmin ...), compares them to the "known" arguments understood by Mercury (note that further recognised arguments can be added in derived classes). If a match is found, the relevant parameter is set to the corresponding value(s) following the flag and true
is returned. Otherwise, false
is returned.
For instance, if the flag -xmin 0
is passed, the code's second if statement will recognise the flag, convert the subsequent string in argv
to a double, and then call the setXMin() function to implement the new value (0) of XMin.
For developers: note the use of strcmp here. This cannot be replaced with a simpler ==, as we are comparing c-style strings (char*), instead of std::string. Thus, == would return equality of the pointers instead of the contents of the string. strcmp returns 0 if the strings are the same, and another number if they are different. This is then implicitly cast to a bool, where 0->false and other numbers will give true. Finally, the !-operator makes sure that the expression in the if-statements are true if the strings are the same, and false otherwise.
[in] | i | the position of the element that will be read, note that the count starts at 1, as element 0 is the name of the executable |
[in] | argc | number of arguments the user has given |
[in] | *argv[] | the command-line arguments the user has given when calling the executable |
true
if the argument is successfully read, and false
otherwise. -gravity_ requires three arguments
-restart or -r loads a restart file. By default, it loads <name>.restart. If an argument "arg" is given it loads the file "arg", or "arg".restart (if the ending is not given).
Reimplemented in MercuryBase, Mercury3DRestart, ChuteWithHopper, Chute, SilbertPeriodic, SilbertPeriodic, FlowRule, Funnel, GranularJet, and AxisymmetricHopper.
References autoNumber(), dataFile, eneFile, fStatFile, getName(), File::getSaveCount(), getTimeMax(), getTimeStep(), constants::i, INFO, logger, random, RNG::randomise(), readDataFile(), readRestartFile(), readSpeciesFromDataFile_, removeOldFiles(), restartFile, setAppend(), setFileType(), File::setFileType(), setFixedParticles(), setGravity(), setName(), setRunNumber(), setSaveCount(), File::setSaveCount(), setSystemDimensions(), setTimeMax(), setTimeStep(), setXMax(), setXMin(), setYMax(), setYMin(), setZMax(), setZMin(), and statFile.
Referenced by readArguments(), and MercuryBase::readNextArgument().
bool DPMBase::readNextDataFile | ( | unsigned int | format = 0 | ) |
Reads the next data file with default format=0. However, one can modify the format based on whether the particle data corresponds to 3D or 2D data- see Visualising data in xballs.
Used to load data from existing .data files (particle positions, velocities, sizes etc.) when restarting a simulation. The 'format' to choose depends on the formatting of the data files to be read in which varies, for instance, if the code is 2D (format 8) or 3D (format 14).
[in] | format |
todo make systemDimensions enum (2 or 3)
References ParticleHandler::clear(), ParticleHandler::computeAllMasses(), BaseParticle::copy(), BaseHandler< T >::copyAndAddObject(), dataFile, BaseParticle::fixParticle(), File::getFstream(), helpers::getLineFromStringStream(), BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), BaseInteractable::getSpecies(), getSystemDimensions(), constants::i, BaseParticle::isFixed(), logger, max_, min_, NUMBER_OF_PROCESSORS, File::open(), particleHandler, readSpeciesFromDataFile_, Quaternion::setAngleZ(), BaseInteractable::setAngularVelocity(), Quaternion::setEuler(), BaseParticle::setMPIParticle(), BaseInteractable::setOrientation(), BaseInteractable::setOrientationViaEuler(), BaseParticle::setPeriodicGhostParticle(), BaseInteractable::setPosition(), BaseParticle::setRadius(), BaseParticle::setSpecies(), BaseHandler< T >::setStorageCapacity(), BaseInteractable::setVelocity(), speciesHandler, time_, BaseParticle::unfix(), WARN, Vec3D::X, Vec3D::x(), Vec3D::Y, Vec3D::y(), Vec3D::Z, and Vec3D::z().
Referenced by CGHandler::evaluateDataFiles(), and readDataFile().
void DPMBase::readNextFStatFile | ( | ) |
Reads the next fstat file.
References InteractionHandler::addInteraction(), BaseHandler< T >::clear(), BaseHandler< T >::copyAndAddObject(), fStatFile, File::getFstream(), BaseHandler< T >::getLastObject(), BaseHandler< T >::getNumberOfObjects(), getNumberOfTimeSteps(), BaseHandler< T >::getObject(), interactionHandler, BaseParticle::isFixed(), logger, File::open(), Global_Physical_Variables::P, particleHandler, BaseInteraction::setFStatData(), speciesHandler, wallHandler, and WARN.
Referenced by CGHandler::evaluateDataFiles().
|
virtual |
Reads all data from a restart file, e.g. domain data and particle data; old version.
[in] | is |
References boundaryHandler, dataFile, eneFile, fStatFile, gravity_, max_, min_, particleHandler, BaseHandler< T >::read(), restartFile, File::setFileType(), setName(), setRestarted(), File::setSaveCount(), speciesHandler, statFile, systemDimensions_, time_, timeMax_, timeStep_, wallHandler, Vec3D::x(), Vec3D::y(), and Vec3D::z().
Referenced by read().
bool DPMBase::readParAndIniFiles | ( | std::string | fileName | ) |
Allows the user to read par.ini files (useful to read files produced by the MDCLR simulation code - external to MercuryDPM)
use of string instead of string& b/c this function is often used with a string literal
[in] | fileName |
References SpeciesHandler::addObject(), boundaryHandler, SpeciesHandler::clear(), BaseHandler< T >::copyAndAddObject(), dataFile, ERROR, fStatFile, BaseHandler< T >::getObject(), getTimeStep(), getXMax(), getXMin(), getYMax(), getYMin(), getZMax(), getZMin(), logger, helpers::round(), PeriodicBoundary::set(), InfiniteWall::set(), setGravity(), setParticleDimensions(), setSaveCount(), File::setSaveCount(), BaseWall::setSpecies(), setTime(), setTimeMax(), setTimeStep(), speciesHandler, wallHandler, and WARN.
bool DPMBase::readRestartFile | ( | ReadOptions | opt = ReadOptions::ReadAll | ) |
Reads all the particle data corresponding to a given, existing . restart file (for more details regarding restart files, refer to the training materials on the MercuryDPM website).Returns true if it is successful, false otherwise.
Opens a file input stream corresponding to the restart file to be opened. If the file can be successfully opened, uses the read() function to extract all data from the restart file. Once the read-in has been successfully completed, sets the "restarted_" flag to true such that, where necessary, other functions will know that the file has been restarted.
References File::close(), File::getFstream(), File::getFullName(), INFO, logger, File::open(), read(), restartFile, and setRestarted().
Referenced by BaseCluster::actionsOnRestart(), ChuteWithPeriodicInflowAndVariableBottom::ChuteWithPeriodicInflowAndVariableBottom(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCStats::ClosedCSCStats(), CSCInit::CSCInit(), CSCRestart::CSCRestart(), CSCStats::CSCStats(), CGHandler::evaluateRestartFiles(), CLiveStatistics< T >::getLiveStatistics(), Indenter::Indenter(), LawinenBox::LawinenBox(), ChuteWithPeriodicInflow::loadPeriodicBox(), ChuteWithContraction::loadPeriodicBox(), main(), readNextArgument(), Mercury3DRestart::readNextArgument(), readRestartFile(), CGHandler::restart(), statistics_while_running< T >::run(), CSCRun::setupInitialConditions(), Cstatic3D::setupInitialConditions(), ShearStage::ShearStage(), SingleParticleIndenter::SingleParticleIndenter(), Sintering::Sintering(), statistics_while_running< T >::statistics_while_running(), and StressStrainControl::StressStrainControl().
int DPMBase::readRestartFile | ( | std::string | fileName, |
ReadOptions | opt = ReadOptions::ReadAll |
||
) |
The same as readRestartFile(bool), but also reads all the particle data corresponding to the current saved time step.
Reads in the name of a (.restart) file and then opens and reads in the data corresponding to this file using the argument-less readRestartFile() function. Note that this function should be called before setupInitialConditions().
[in] | fileName | The name of the (.restart) file to be read in. |
References helpers::fileExists(), constants::i, INFO, logger, NUMBER_OF_PROCESSORS, PROCESSOR_ID, readRestartFile(), restartFile, File::setCounter(), and File::setName().
|
static |
Read the run number or the counter from the counter file (COUNTER_DONOTDEL)
Reads in the current counter in from the COUNTER_DONOTDEL file stored on the disk. If a COUNTER_DONOTDEL file does not already exist, creates one and initialises it with a value "1"
Referenced by autoNumber().
|
inline |
|
inlinevirtual |
Allows you to read in a wall defined in a Driver directory; see USER/Luca/ScrewFiller.
Referenced by WallHandler::readAndCreateObject().
|
protected |
Removes periodic duplicate Particles.
Removes particles created by checkAndDuplicatePeriodicParticles().
Loops (from back to front) through the particle handler, removing particles marked as 'periodic' (i.e. BaseParticle::getPeriodicFromParticle() returns a real value, as opposed to a null pointer).
Since the duplicated particles will be stored at the 'back' of the particle handler, the function ceases when the first non-duplicated particle is found.
Note that between these two functions it is not allowed to create additional functions.
References BaseInteractable::getInteractions(), BaseHandler< T >::getObject(), BaseParticle::getPeriodicFromParticle(), BaseHandler< T >::getSize(), constants::i, interactionHandler, NUMBER_OF_PROCESSORS, particleHandler, ParticleHandler::removeObject(), and InteractionHandler::removeObjectKeepingPeriodics().
Referenced by computeOneTimeStep(), and initialiseSolve().
void DPMBase::removeOldFiles | ( | ) | const |
References getName(), INFO, logger, NUMBER_OF_PROCESSORS, PROCESSOR_ID, and to_string_padded().
Referenced by GranuDrum::GranuDrum(), main(), readNextArgument(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), MarbleRun::setupInitialConditions(), Drum::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), and AreaVTK::setupInitialConditions().
void DPMBase::resetFileCounter | ( | ) |
Resets the file counter for each file i.e. for ene, data, fstat, restart, stat)
This implicitly calls the setCounter() function defined in File.h
References boundaryVTKWriter_, dataFile, eneFile, fStatFile, interactionFile, interactionVTKWriter_, NEVER, restartFile, File::setCounter(), BaseVTKWriter< H >::setFileCounter(), setLastSavedTimeStep(), statFile, vtkWriter_, wallDetailsVTKWriter_, and wallVTKWriter_.
Referenced by initialiseSolve().
void DPMBase::setAppend | ( | bool | newAppendFlag | ) |
Sets whether the "append" option is on or off.
Used when a code is restarted. If set to true
, existing files (other than restart files, which are always overwritten) will be appended, rather than new files being created and/or old files being overwritten. If false
, files will simply be overwritten.
[in] | newAppendFlag |
References append_.
Referenced by ClosedCSCRestart::ClosedCSCRestart(), commandLineCG(), constructor(), CSCRestart::CSCRestart(), LawinenBox::LawinenBox(), main(), readNextArgument(), and Mercury3DRestart::readNextArgument().
|
inline |
Simple access function to turn on a background drag. The force of particleVelocity*drag is applied (note, it allowd to be negaitve i.e. create energy)
References backgroundDrag_.
Referenced by constructor().
void DPMBase::setDimension | ( | unsigned int | newDim | ) |
Sets both the system dimensions and the particle dimensionality.
Note: In MercuryDPM, it is possible to simulate, for example, 3D particles in a 2D system by setting "setSystemDimensions(newDim)" and "setParticleDimensions(newDim)" individually.
The relevant sanity checks exist within the "setSystemDimensions(newDim)" and "setParticleDimensions(newDim)" functions.
[in] | newDim | The desired dimensionality of the system and the particles: 1 → 1D, 2 → 2D, 3 → 3D. |
References setParticleDimensions(), and setSystemDimensions().
Referenced by main(), Contact::setupInitialConditions(), and EnergyUnitTest::setupInitialConditions().
Sets the minimum coordinates of the problem domain.
References logger, max_, min_, Vec3D::X, Vec3D::Y, and Vec3D::Z.
Referenced by AxisymmetricWallSelfTest::AxisymmetricWallSelfTest(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), DPM::DPM(), Hertzian2DUnitTest::Hertzian2DUnitTest(), main(), ParticleBeam::ParticleBeam(), CGHandler::restart(), BaseCluster::setDomainLimits(), NautaMixer::setupInitialConditions(), MarbleRun::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SquarePacking::setupInitialConditions(), Wall::setupInitialConditions(), Packing::setupInitialConditions(), SaveCountUnitTest::setupInitialConditions(), and CoupledProblem::setupMercury().
void DPMBase::setFileType | ( | FileType | fileType | ) |
Sets File::fileType_ for all files (ene, data, fstat, restart, stat)
Calls the setFileType() function from the File.h, which basically sets the File::fileType_. Note, this does not affect the interactionFile.
[in] | fileType | (an object of enum class FileType) |
References dataFile, eneFile, fStatFile, restartFile, File::setFileType(), and statFile.
Referenced by ClosedCSCRun::ClosedCSCRun(), ClosedCSCStats::ClosedCSCStats(), Contact::Contact(), CSCStats::CSCStats(), loadingTest(), main(), normalAndTangentialLoadingTest(), objectivenessTest(), readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), Calibration::setOutput(), CSCRun::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), AreaVTK::setupInitialConditions(), Tutorial11::Tutorial11(), viscoElasticUnitTest::viscoElasticUnitTest(), and Wall::Wall().
|
protected |
Sets a number, n
, of particles in the particleHandler as "fixed particles".
That is to say that the first n
particles in the handler will have their masses and inertiae set to infinity and their velocities set to zero, making them effectively immobile and immovable (see also BaseParticle::fixParticle() ). If n
exceeds the number of particles in the handler, then all particles will be "fixed".
[in] | n | The number of particles to "fix". |
References BaseParticle::fixParticle(), BaseHandler< T >::getObject(), BaseHandler< T >::getSize(), constants::i, n, and particleHandler.
Referenced by readNextArgument().
void DPMBase::setGravity | ( | Vec3D | newGravity | ) |
Sets a new value for the gravitational acceleration.
Allows the user to set the value of the gravitational acceleration (g) to which their simulated system is exposed. The gravity is passed to the function as a (Vec3D) vector value, thus providing all three components of g and hence allowing both its direction and strength to be altered.
[in] | newGravity | The desired new value of the gravitational acceleration as a Vec3D vector. |
References gravity_.
Referenced by BoundariesSelfTest::BoundariesSelfTest(), CGBasicSelfTest::CGBasicSelfTest(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), constructor(), CSCWalls::CSCWalls(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), InitialConditions< SpeciesType >::InitialConditions(), LawinenBox::LawinenBox(), LeesEdwardsDemo::LeesEdwardsDemo(), load(), main(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MinimalExampleDrum::MinimalExampleDrum(), MultiParticlesInsertion::MultiParticlesInsertion(), multiParticleT1::multiParticleT1(), ParticleCreation::ParticleCreation(), ParticleInclusion::ParticleInclusion(), ParticleParticleCollision::ParticleParticleCollision(), protectiveWall::protectiveWall(), readNextArgument(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), SingleParticle< SpeciesType >::scaleMass(), InitialConditions< SpeciesType >::scaleMass(), Cstatic2d::set_particle_properties(), Cstatic3D::set_particle_properties(), Chute::setChuteAngleAndMagnitudeOfGravity(), CurvyChute::setChuteAngleAndMagnitudeOfGravity(), ExtremeOverlapUnitTest::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), NautaMixer::setupInitialConditions(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), Chain::setupInitialConditions(), StressStrainControl::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), FiveParticles::setupInitialConditions(), Drum::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), SimpleOpt::setupInitialConditions(), InitialConditions< SpeciesType >::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), FreeFall::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWall::setupInitialConditions(), MovingWallTangential::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), SinterPair::SinterPair(), Slide::Slide(), statistics_while_running< T >::statistics_while_running(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), T_protectiveWall::T_protectiveWall(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), Tutorial11::Tutorial11(), and viscoElasticUnitTest::viscoElasticUnitTest().
void DPMBase::setInteractionsWriteVTK | ( | bool | writeVTK | ) |
Sets whether interactions are written into a VTK file.
References interactionHandler, logger, InteractionHandler::setWriteVTK(), and WARN.
void DPMBase::setLastSavedTimeStep | ( | unsigned int | nextSavedTimeStep | ) |
Sets the next time step for all the files (ene, data, fstat, restart, stat) at which the data is to be written or saved.
Sets the time step when the files will next be saved, except for the interaction file. Note, that the interaction file is independent of time steps, and just writes when an interaction starts or ends.
[in] | nextSavedTimeStep |
References dataFile, eneFile, fStatFile, restartFile, and File::setLastSavedTimeStep().
Referenced by forceWriteOutputFiles(), main(), and resetFileCounter().
void DPMBase::setLogarithmicSaveCount | ( | Mdouble | logarithmicSaveCountBase | ) |
Sets File::logarithmicSaveCount_ for all files (ene, data, fstat, restart, stat)
sets the number of time steps skipped between each save for ALL data files, except for the interaction file. And the increament of this number of time steps is based on a user input logarithmicSaveCountBase, e.g. if you put 10 as your input, the saving point will be at 10, 10^1, 10^2, 10^3, which results equal distance on a log scale. Note, that the interaction file is independent of time steps, and just writes when an interaction starts or ends.
[in] | logarithmicSaveCountBase |
References dataFile, eneFile, fStatFile, restartFile, File::setlogarithmicSaveCount(), and statFile.
void DPMBase::setMax | ( | const Vec3D & | newMax | ) |
Sets the maximum coordinates of the problem domain.
This specifies one corner of the problem's cuboidal bounding box. These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
A sanity check is performed to verify that each of the maximum coordinates are greater than the corresponding minimum coordinates. It raises a (logged) warning if not.
[in] | newMax |
References logger, max_, min_, WARN, Vec3D::x(), Vec3D::y(), and Vec3D::z().
Referenced by ForceLawsMPI2Test::ForceLawsMPI2Test(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), InsertionBoundaryMPI2Test::InsertionBoundaryMPI2Test(), InsertionBoundarySelfTest::InsertionBoundarySelfTest(), LawinenBox::LawinenBox(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), loadingTest(), main(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MinimalExampleDrum::MinimalExampleDrum(), MultiParticlesInsertion::MultiParticlesInsertion(), multiParticleT1::multiParticleT1(), normalAndTangentialLoadingTest(), objectivenessTest(), ParticleInclusion::ParticleInclusion(), FileReader::read(), runFreeFall(), setMax(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), ShapesDemo::setupInitialConditions(), VisualisationTest::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), MovingWalls::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), AreaVTK::setupInitialConditions(), SinterPair::SinterPair(), StressStrainControl::StressStrainControl(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), and TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test().
void DPMBase::setMeanVelocity | ( | Vec3D | V_mean_goal | ) |
This function will help you set a fixed kinetic energy and mean velocity in your system.
The function first generates random velocities for every particle in the system and then injects the desired kinetic energy and sets the desired mean velocity in the system.
[in] | V_mean_goal | The mean velocity you want to set after injecting energy |
[in] | Ek_goal | The kinetic energy you want to inject into the system |
References getTotalMass(), getTotalMomentum(), and particleHandler.
Referenced by FreeCooling2DinWalls::setupInitialConditions().
This function will help you set a fixed kinetic energy and mean velocity in your system.
The function first generates random velocities for every particle in the system and then injects the desired kinetic energy and sets the desired mean velocity in the system.
[in] | V_mean_goal | The mean velocity you want to set after injecting energy |
[in] | Ek_goal | The kinetic energy you want to inject into the system |
References getKineticEnergy(), Vec3D::getLengthSquared(), RNG::getRandomNumber(), getTotalMass(), getTotalMomentum(), INFO, logger, and particleHandler.
void DPMBase::setMin | ( | const Vec3D & | newMin | ) |
Sets the minimum coordinates of the problem domain.
This specifies one corner of the problem's cuboidal bounding box. These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
A sanity check is performed to verify that each of the minimum coordinates are greater than the corresponding maximum coordinates. It raises a (logged) warning if not.
[in] | newMin |
References logger, max_, min_, WARN, Vec3D::x(), Vec3D::y(), and Vec3D::z().
Referenced by ForceLawsMPI2Test::ForceLawsMPI2Test(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), InsertionBoundaryMPI2Test::InsertionBoundaryMPI2Test(), InsertionBoundarySelfTest::InsertionBoundarySelfTest(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), loadingTest(), main(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MinimalExampleDrum::MinimalExampleDrum(), MultiParticlesInsertion::MultiParticlesInsertion(), multiParticleT1::multiParticleT1(), normalAndTangentialLoadingTest(), objectivenessTest(), ParticleInclusion::ParticleInclusion(), FileReader::read(), setMin(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), ShapesDemo::setupInitialConditions(), VisualisationTest::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), MovingWalls::setupInitialConditions(), AreaVTK::setupInitialConditions(), SinterPair::SinterPair(), StressStrainControl::StressStrainControl(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), and TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test().
void DPMBase::setName | ( | const char * | name | ) |
void DPMBase::setName | ( | const std::string & | name | ) |
Allows to set the name of all the files (ene, data, fstat, restart, stat)
[in] | name |
References dataFile, eneFile, fStatFile, getInteractionFile(), interactionFile, units::name, name_, NUMBER_OF_PROCESSORS, PROCESSOR_ID, restartFile, File::setName(), and statFile.
Referenced by ChuteRestartDemo::actionsOnRestart(), AngleOfRepose::AngleOfRepose(), AxisymmetricWallSelfTest::AxisymmetricWallSelfTest(), CGBasicSelfTest::CGBasicSelfTest(), ChutePeriodicDemo::ChutePeriodicDemo(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContinuingBottom::ChuteWithPeriodicInflowAndContinuingBottom(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ChuteWithPeriodicInflowAndVariableBottom::ChuteWithPeriodicInflowAndVariableBottom(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCStats::ClosedCSCStats(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), ChuteBottom::constructor(), constructor(), Contact::Contact(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), Slide::create_rough_wall(), CSCInit::CSCInit(), CSCRestart::CSCRestart(), CSCStats::CSCStats(), CSCWalls::CSCWalls(), DPM::DPM(), DPMBase(), FileReader::FileReader(), ForceLawsMPI2Test::ForceLawsMPI2Test(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), Hertzian2DUnitTest::Hertzian2DUnitTest(), Indenter::Indenter(), inflowFromPeriodic::inflowFromPeriodic(), InitialConditions< SpeciesType >::InitialConditions(), initialiseSolve(), InsertionBoundaryMPI2Test::InsertionBoundaryMPI2Test(), LawinenBox::LawinenBox(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), load(), ChuteWithPeriodicInflow::loadPeriodicBox(), ChuteWithContraction::loadPeriodicBox(), main(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MovingWalls::MovingWalls(), MultiParticlesInsertion::MultiParticlesInsertion(), multiParticleT1::multiParticleT1(), ParticleBeam::ParticleBeam(), ParticleInclusion::ParticleInclusion(), particleParticleTest(), PointIsAboveCurve(), read(), readNextArgument(), Mercury3DRestart::readNextArgument(), readOld(), regimeForceUnitTest::regimeForceUnitTest(), CGHandler::restart(), statistics_while_running< T >::run(), AngleOfRepose::run(), vibratedBed::run(), runFreeFall(), SaveCountUnitTest::SaveCountUnitTest(), SilbertPeriodic::set_study(), setName(), Funnel::setName_(), ChutePeriodic::setup(), ClosedCSCStats::setupInitialConditions(), CSCRun::setupInitialConditions(), CSCStats::setupInitialConditions(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), Chain::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), Cstatic3D::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), SimpleOpt::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), AreaVTK::setupInitialConditions(), BaseCluster::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), ShearStage::ShearStage(), Siegen::Siegen(), SilbertPeriodic::SilbertPeriodic(), SingleParticle< SpeciesType >::SingleParticle(), SingleParticleIndenter::SingleParticleIndenter(), Sintering::Sintering(), SinterPair::SinterPair(), Slide::Slide(), statistics_while_running< T >::statistics_while_running(), StressStrainControl::StressStrainControl(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), T_protectiveWall::T_protectiveWall(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), BouncingSuperQuadric::test(), SlidingSpheresUnitTest::test(), ContactDetectionNormalSpheresTest::test(), ContactDetectionRotatedSpheresTest::test(), Packing::test(), HertzContactRestitutionUnitTest::test(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), Tutorial11::Tutorial11(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), viscoElasticUnitTest::viscoElasticUnitTest(), Wall::Wall(), wallParticleTest(), and ChutePeriodic::writeToLocalFolder().
void DPMBase::setNToWrite | ( | int | nToWrite | ) |
set the number of elements to write to the screen
sets nToWrite_. If a user wants to output e.g. particle information to the screen we limit the number of outputs to nToWrite elements to not get an overflow of information in the terminal.
[in] | nToWrite | Number of elements to write to the screen |
References nToWrite_.
void DPMBase::setNumberOfDomains | ( | std::vector< unsigned > | numberOfDomains | ) |
Sets the number of domains in x-,y- and z-direction. Required for parallel computations.
Sets the number of domains in DPMbase.
The parallel code decomposes the domain according to these values
[in] | numberOfDomains |
References INFO, logger, numberOfDomains_, and WARN.
Referenced by RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), ForceLawsMPI2Test::ForceLawsMPI2Test(), InsertionBoundaryMPI2Test::InsertionBoundaryMPI2Test(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), main(), splitDomain(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), and TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test().
void DPMBase::setNumberOfOMPThreads | ( | int | numberOfOMPThreads | ) |
References getNumberOfOMPThreads(), INFO, logger, NO_FLUSH, numberOfOMPThreads_, and WARN.
void DPMBase::setOpenMode | ( | std::fstream::openmode | openMode | ) |
Sets File::openMode_ for all files (ene, data, fstat, restart, stat)
[in] | openmode |
References dataFile, eneFile, fStatFile, interactionFile, restartFile, File::setOpenMode(), and statFile.
Referenced by initialiseSolve().
void DPMBase::setParticleDimensions | ( | unsigned int | particleDimensions | ) |
Sets the particle dimensionality.
Sets the dimensionality of the particles. This affects whether particles are treated as rods, discs or spheres. This is used e.g. for calculating masses and moments of inertia.
Note that the system may possess a different dimensionality.
The particles can be chosen to be one- two- or three-dimensional by passing, respectively, arguments equal to 1, 2 or 3. The code also performs a sanity check to ensure that the dimensionality cannot be higher than three or lower than one. If an unphysical dimensionality is chosen, the particle dimension is set to be equal to the system dimension. Note, that we cannot throw an error here, since in some old restart files the "particleDimensions_" are 0.
[in] | particleDimensions | An integer value representing the desired dimensionality of the particles: 1 → 1D, 2 → 2D, 3 → 3D. |
References ParticleHandler::computeAllMasses(), logger, particleDimensions_, particleHandler, systemDimensions_, and WARN.
Referenced by constructor(), Mercury2D::constructor(), Mercury3D::constructor(), loadingTest(), main(), normalAndTangentialLoadingTest(), objectivenessTest(), SpeciesHandler::readOldObject(), readParAndIniFiles(), setDimension(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWall::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), and Siegen::Siegen().
void DPMBase::setParticlesWriteVTK | ( | bool | writeParticlesVTK | ) |
Sets whether particles are written in a VTK file.
The VTK format is used for visualisation in Paraview.
[in] | writeParticlesVTK |
References particleHandler, vtkWriter_, writeParticlesVTK_, and writeSuperquadricParticlesVTK_.
Referenced by Chutebelt::actionsAfterTimeStep(), BaseCluster::actionsOnRestart(), AxisymmetricWallSelfTest::AxisymmetricWallSelfTest(), HorizontalMixer::HorizontalMixer(), main(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), ParticleBeam::ParticleBeam(), protectiveWall::protectiveWall(), read(), ChutePeriodicDemo::setupInitialConditions(), multiParticleT1::setupInitialConditions(), NautaMixer::setupInitialConditions(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), MarbleRun::setupInitialConditions(), Drum::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), MovingWalls::setupInitialConditions(), AreaVTK::setupInitialConditions(), BaseCluster::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), SinterPair::SinterPair(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), T_protectiveWall::T_protectiveWall(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), and Tutorial11::Tutorial11().
void DPMBase::setRestarted | ( | bool | newRestartedFlag | ) |
Allows to set the flag stating if the simulation is to be restarted or not.
[in] | newRestartedFlag |
References restarted_.
Referenced by ClosedCSCRun::ClosedCSCRun(), ClosedCSCStats::ClosedCSCStats(), constructor(), CSCInit::CSCInit(), CSCStats::CSCStats(), Indenter::Indenter(), inflowFromPeriodic::inflowFromPeriodic(), ChuteWithPeriodicInflow::loadPeriodicBox(), ChuteWithContraction::loadPeriodicBox(), main(), readOld(), readRestartFile(), CSCRun::setupInitialConditions(), ShearStage::ShearStage(), SingleParticleIndenter::SingleParticleIndenter(), Sintering::Sintering(), and StressStrainControl::StressStrainControl().
void DPMBase::setRestartVersion | ( | std::string | newRV | ) |
|
inline |
Sets whether particle rotation is enabled or disabled.
true
will enable particle rotation. Passing false
will disable particle rotation. [in] | newRotFlag |
References rotation_.
Referenced by ParticleHandler::addObject(), SpeciesHandler::addObject(), SpeciesHandler::removeObject(), MembraneDemo::setupInitialConditions(), and MembraneSelfTest::setupInitialConditions().
void DPMBase::setRunNumber | ( | int | runNumber | ) |
This sets the counter/Run number, overriding the defaults.
A simple "set function" which allows the user to simply overwrite the current run number to any valid new value.
[in] | runNumber | - the value to which we want to (re)set the internally stored run number parameter, runNumber_ |
References runNumber_.
Referenced by autoNumber(), and readNextArgument().
void DPMBase::setSaveCount | ( | unsigned int | saveCount | ) |
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
sets the number of time steps skipped between each save for ALL data files, except for the interaction file. Note, that the interaction file is independent of time steps, and just writes when an interaction starts or ends.
References cgHandler, dataFile, eneFile, fStatFile, restartFile, File::setSaveCount(), and statFile.
Referenced by BaseCluster::actionsAfterTimeStep(), DrumRot::actionsBeforeTimeStep(), SaveCountUnitTest::actionsBeforeTimeStep(), ChuteRestartDemo::actionsOnRestart(), DrumRot::actionsOnRestart(), BaseCluster::actionsOnRestart(), NautaMixer::addSpeciesAndSetTimeStepAndSaveCount(), AngleOfRepose::AngleOfRepose(), BoundariesSelfTest::BoundariesSelfTest(), CGBasicSelfTest::CGBasicSelfTest(), ChutePeriodicDemo::ChutePeriodicDemo(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCStats::ClosedCSCStats(), ClosedCSCWalls::ClosedCSCWalls(), constructor(), CSCStats::CSCStats(), CSCWalls::CSCWalls(), DPM::DPM(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), ForceLawsMPI2Test::ForceLawsMPI2Test(), CLiveStatistics< T >::getLiveStatistics(), GranuDrum::GranuDrum(), Hertzian2DUnitTest::Hertzian2DUnitTest(), InitialConditions< SpeciesType >::InitialConditions(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), loadingTest(), main(), ChuteBottom::makeRoughBottom(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MinimalExampleDrum::MinimalExampleDrum(), normalAndTangentialLoadingTest(), objectivenessTest(), ParticleBeam::ParticleBeam(), readNextArgument(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), FlowRule::run(), statistics_while_running< T >::run(), AngleOfRepose::run(), runFreeFall(), Calibration::setOutput(), ChutePeriodic::setup(), CSCRun::setupInitialConditions(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), Chain::setupInitialConditions(), MarbleRun::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), DPM::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), Contact::setupInitialConditions(), Wall::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), LongHertzianSinterForceUnitTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWalls::setupInitialConditions(), MovingWall::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SaveCountUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), AreaVTK::setupInitialConditions(), BaseCluster::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), SilbertHstop::SilbertHstop(), SilbertPeriodic::SilbertPeriodic(), SinterPair::SinterPair(), Slide::Slide(), statistics_while_running< T >::statistics_while_running(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), T_protectiveWall::T_protectiveWall(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), BouncingSuperQuadric::test(), SlidingSpheresUnitTest::test(), ContactDetectionNormalSpheresTest::test(), ContactDetectionRotatedSpheresTest::test(), HertzContactRestitutionUnitTest::test(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), and viscoElasticUnitTest::viscoElasticUnitTest().
|
protected |
function for setting sigaction constructor.
References INFO, logger, and signalHandler().
Referenced by constructor().
void DPMBase::setSuperquadricParticlesWriteVTK | ( | bool | writeParticlesVTK | ) |
[in] | writeParticlesVTK |
References particleHandler, vtkWriter_, writeParticlesVTK_, and writeSuperquadricParticlesVTK_.
Referenced by main(), and BouncingSuperQuadric::test().
void DPMBase::setSystemDimensions | ( | unsigned int | newDim | ) |
Sets the system dimensionality.
Sets the dimensionality of the system. (Note that particles
may possess a different dimensionality.)
A sanity check is performed to ensure that the dimensionality is 1, 2 or 3. If not, an error message is logged and the simulation terminates.
[in] | newDim | The desired dimensionality of the system: 1 → 1D, 2 → 2D, 3 → 3D. |
References ERROR, logger, and systemDimensions_.
Referenced by constructor(), Mercury2D::constructor(), Mercury3D::constructor(), loadingTest(), main(), normalAndTangentialLoadingTest(), objectivenessTest(), readNextArgument(), setDimension(), StressStrainControl::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), DPM::setupInitialConditions(), SimpleOpt::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWall::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), and T_protectiveWall::T_protectiveWall().
void DPMBase::setTime | ( | Mdouble | time | ) |
Sets a new value for the current simulation time.
This may be useful in codes where some initial set-up is required e.g. if a system of particles is first prepared and then exposed to excitation. In this situation, getNumberOfTimeSteps()
may be used to reset the time to zero at the point at which excitation begins to be applied.
[in] | time |
References constants::i, interactionHandler, and time_.
Referenced by Chutebelt::actionsAfterTimeStep(), DrumRot::actionsBeforeTimeStep(), constructor(), initialiseSolve(), main(), FileReader::read(), readParAndIniFiles(), ClosedCSCStats::setupInitialConditions(), CSCRun::setupInitialConditions(), CSCStats::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), Cstatic3D::setupInitialConditions(), and SingleParticleIndenter::SingleParticleIndenter().
void DPMBase::setTimeMax | ( | Mdouble | newTMax | ) |
Sets a new value for the maximum simulation duration.
A sanity check is performed to ensure that the new maximum simulation duration is nonnegative.
[in] | newTMmax |
References ERROR, logger, and timeMax_.
Referenced by GranuHeap::actionsAfterTimeStep(), ShearStage::actionsAfterTimeStep(), SphericalIndenter::actionsAfterTimeStep(), BaseCluster::actionsAfterTimeStep(), LawinenBox::actionsBeforeTimeStep(), ChuteRestartDemo::actionsOnRestart(), AngleOfRepose::AngleOfRepose(), AxisymmetricWallSelfTest::AxisymmetricWallSelfTest(), BoundariesSelfTest::BoundariesSelfTest(), ChutePeriodicDemo::ChutePeriodicDemo(), ClosedCSCStats::ClosedCSCStats(), ClosedCSCWalls::ClosedCSCWalls(), commandLineCG(), constructor(), Contact::Contact(), CSCStats::CSCStats(), CSCWalls::CSCWalls(), DPM::DPM(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), ForceLawsMPI2Test::ForceLawsMPI2Test(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), Hertzian2DUnitTest::Hertzian2DUnitTest(), InitialConditions< SpeciesType >::InitialConditions(), InsertionBoundaryMPI2Test::InsertionBoundaryMPI2Test(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), load(), loadingTest(), main(), ChuteBottom::makeRoughBottom(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MinimalExampleDrum::MinimalExampleDrum(), normalAndTangentialLoadingTest(), objectivenessTest(), ParticleBeam::ParticleBeam(), ParticleCreation::ParticleCreation(), ParticleInclusion::ParticleInclusion(), readNextArgument(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), FlowRule::run(), statistics_while_running< T >::run(), runFreeFall(), ChutePeriodic::setup(), ChuteWithContraction::setup_particles_initial_conditions(), ClosedCSCStats::setupInitialConditions(), CSCRun::setupInitialConditions(), CSCStats::setupInitialConditions(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), Chain::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), Cstatic3D::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), SimpleOpt::setupInitialConditions(), SingleParticle< SpeciesType >::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), ShapesDemo::setupInitialConditions(), VisualisationTest::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), LongHertzianSinterForceUnitTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWalls::setupInitialConditions(), MovingWall::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SaveCountUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), AreaVTK::setupInitialConditions(), BaseCluster::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), SilbertHstop::SilbertHstop(), SilbertPeriodic::SilbertPeriodic(), SingleParticle< SpeciesType >::SingleParticle(), SinterPair::SinterPair(), Slide::Slide(), SilbertHstop::solve_analytic(), statistics_while_running< T >::statistics_while_running(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), viscoElasticUnitTest::viscoElasticUnitTest(), Wall::Wall(), ClosedCSCRestart::writeOutputFiles(), and CSCRestart::writeOutputFiles().
void DPMBase::setTimeStep | ( | Mdouble | timeStep | ) |
Sets a new value for the simulation time step.
A sanity check is performed to ensure that the time step must be positive.
[in] | timeStep | The (Mdouble) value of the desired new time step |
References ERROR, logger, and timeStep_.
Referenced by NautaMixer::addSpeciesAndSetTimeStepAndSaveCount(), AngledPeriodicBoundarySecondUnitTest::AngledPeriodicBoundarySecondUnitTest(), AngledPeriodicBoundaryUnitTest::AngledPeriodicBoundaryUnitTest(), AngleOfRepose::AngleOfRepose(), BouncingSuperQuadric::BouncingSuperQuadric(), BoundariesSelfTest::BoundariesSelfTest(), BaseCluster::calculateTimeStep(), CGBasicSelfTest::CGBasicSelfTest(), ChutePeriodicDemo::ChutePeriodicDemo(), ClosedCSCWalls::ClosedCSCWalls(), Contact::Contact(), CSCWalls::CSCWalls(), DPM::DPM(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), ForceLawsMPI2Test::ForceLawsMPI2Test(), Hertzian2DUnitTest::Hertzian2DUnitTest(), InsertionBoundaryMPI2Test::InsertionBoundaryMPI2Test(), LawinenBox::LawinenBox(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), load(), loadingTest(), main(), ChuteBottom::makeRoughBottom(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MinimalExampleDrum::MinimalExampleDrum(), normalAndTangentialLoadingTest(), objectivenessTest(), ParticleBeam::ParticleBeam(), ParticleCreation::ParticleCreation(), ParticleInclusion::ParticleInclusion(), readNextArgument(), readParAndIniFiles(), regimeForceUnitTest::regimeForceUnitTest(), runFreeFall(), Cstatic2d::set_particle_properties(), Cstatic3D::set_particle_properties(), Calibration::setSpecies(), Material::setSpecies(), AxisymmetricWallSelfTest::setSpeciesAndTimeStep(), MercuryProblem::setSpeciesProperties(), ChutePeriodic::setup(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), Chain::setupInitialConditions(), MarbleRun::setupInitialConditions(), StressStrainControl::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), FiveParticles::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), SingleParticle< SpeciesType >::setupInitialConditions(), InitialConditions< SpeciesType >::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), ShapesDemo::setupInitialConditions(), VisualisationTest::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWalls::setupInitialConditions(), MovingWall::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SaveCountUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), AreaVTK::setupInitialConditions(), Siegen::Siegen(), SilbertPeriodic::SilbertPeriodic(), SinterPair::SinterPair(), statistics_while_running< T >::statistics_while_running(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), T_protectiveWall::T_protectiveWall(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), viscoElasticUnitTest::viscoElasticUnitTest(), and Wall::Wall().
|
virtual |
This function allows to set the initial conditions for our problem to be solved, by default particle locations are randomly set. Remember particle properties must also be defined here.
A virtual function with no implementation but can be overriden.
This sets up the particles initial conditions it is as you expect the user to override this. By default the particles are randomly distributed
Reimplemented in ChuteWithHopper, ChuteBottom, Chute, BaseCluster, AreaVTK, WallSpecies, TangentialSpringUnitTest, TangentialSpringEnergyConservationUnitTest, SpeciesTest, SinterForceUnitTest, SeparateFilesSelfTest, SaveCountUnitTest, my_problem_HGRID, my_problem, RandomClusterInsertionBoundarySelfTest, PlasticForceUnitTest, PeriodicWallsWithSlidingFrictionUnitTest, PeriodicWalls, MpiPeriodicBoundaryUnitTest, MpiPeriodicBoundaryUnitTest, MpiPeriodicBoundaryUnitTest, MultiParticlesInsertion, MovingWallTangentialPrescribedPositionPrescribedVelocity, MovingWallTangentialPrescribedVelocity, MovingWallTangentialPrescribedPosition, MovingWallTangentialSimpleIntegration, MovingWallTangentialReference, MovingWallTangential, MovingWallPrescribedPositionPrescribedVelocity, MovingWallPrescribedVelocity, MovingWallPrescribedPosition, MovingWallSimpleIntegration, MovingWallReference, MovingWall, MovingWalls, MovingIntersectionOfWallsUnitTest_MovingReferenceFrame, MovingIntersectionOfWallsUnitTest_Basic, MpiMaserChuteTest, InclinedPlane, MD_demo, LongHertzianSinterForceUnitTest, HertzianSinterForceUnitTest, HertzContactRestitutionUnitTest, my_problem, FullRestartTest, FreeFall, FreeFall, FreeFallHertzMindlinUnitTest, RandomClusterInsertionBoundarySelfTest, ExtremeOverlapWithWallsUnitTest, EvaporationAndHeatTest, EnergyUnitTest, DrivenParticleClass, ChargedBondedParticleUnitTest, CreateDataAndFStatFiles, ParticleWall, TwoParticles, Packing, TwoParticles, Packing, ArcWallUnitTest, AngledPeriodicBoundaryUnitTest, AngledPeriodicBoundarySecondUnitTest, ParticleWallInteraction, ParticleParticleInteractionWithPlasticForces, ParticleParticleInteraction, Tutorial9, Tutorial8, Tutorial7, Tutorial6, Tutorial5, Tutorial4, Tutorial3, Tutorial2, Tutorial1, Tutorial12, Tutorial11, DPM, protectiveWall, MercuryProblem, MyProblem, VisualisationTest, ShapesDemo, ContactDetectionRotatedSpheresTest, ContactDetectionNormalSpheresTest, SphericalSuperQuadricCollision, SlidingSpheresUnitTest, EllipticalSuperQuadricCollision, GranularCollapse, EllipticalSuperQuadricCollision, EllipsoidsBouncingOnWallDemo, BouncingSuperQuadric, Wall, Contact, ScalingTestRun, ScalingTestInitialConditionsRelax, ScalingTestRun, ScalingTestInitialConditionsRelax, SphericalIndenter, InitialConditions< SpeciesType >, SingleParticle< SpeciesType >, SimpleOpt, RotatingDrum, DrumRot, UnionOfWalls, TriangulatedWallSelfTest, TriangulatedStepWallSelfTest, TriangulatedStepSelfTest, TriangulatedScrewSelfTest, RollingOverTriangleWalls, MembraneSelfTest, GetDistanceAndNormalForTriangleWalls, ContactDetectionIntersectionOfWallsTest, CoilSelfTest, AxisymmetricWallSelfTest, TwoParticleElasticCollision, TwoParticleElasticCollisionInteraction, TwoParticleElasticCollisionInteraction, TwoBondedParticleElasticCollision, ObliqueImpactSelfTest, DPM, LiquidMigrationSelfTest, HertzianBSHPInteractionTwoParticleElasticCollision, FreeFallSelfTest, FreeFallInteractionSelfTest, my_problem_HGRID, WallParticleCollision, ParticleParticleCollision, ChargedBondedParticleUnitTest, ChargedBondedInteractionSelfTest, ParticleCreation, DPM, SquarePacking, NewtonsCradleSelfTest, NewtonsCradleSelftest, CGStaticBalanceSelfTest, CGHandlerSelfTest, CGHandlerSelfTest, CGHandlerSelfTest, CGBasicSelfTest, PSDSelfTest, PSDSelfTest, SubcriticalMaserBoundarySelfTest, StressStrainControl, PSDSelfTest, PSDManualInsertionSelfTest, PolydisperseInsertionBoundarySelfTest, clumpTest, NozzleSelfTest, MultiplePSDSelfTest, LeesEdwardsSelfTest, InsertionBoundarySelfTest, InsertionBoundarySelfTest, DistributionToPSDSelfTest, DistributionSelfTest, DeletionBoundarySelfTest, CubeDeletionBoundarySelfTest, ConstantMassFlowMaserSelfTest, ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest, Chutebelt, SegregationPeriodic, SegregationPeriodic, SegregationPeriodic, RotatingDrum, RotatingDrum, Siegen, SegregationPeriodic, Silo, Penetration, MindlinSelfTest, HertzSelfTest, Drum, Silo, Polygon, Nurbs, MyCoil, GetDistanceAndNormalForTriangleWall, GetDistanceAndNormalForScrew, GetDistanceAndNormalForIntersectionOfWalls, statistics_while_running< T >, SilbertPeriodic, Mercury3DRestart, statistics_while_running< T >, statistics_while_running< T >, statistics_while_running< T >, SilbertPeriodic, CLiveStatistics< T >, inflowFromPeriodic, SilbertPeriodic, Restart, AngleOfRepose, CLiveStatistics< T >, SilbertPeriodic, SilbertPeriodic, AngleOfRepose, statistics_while_running< T >, statistics_while_running< T >, Cstatic3D, Cstatic2d, Cstatic2d, ChutePeriodic, FiveParticles, TimeDependentPeriodicBoundaryTest, TimeDependentPeriodicBoundary3DSelfTest, ShiftingMaserBoundarySelfTest, ShiftingConstantMassFlowMaserBoundarySelfTest, StressStrainControl, StressStrainControl, StressStrainControl, ParameterStudy3DDemo, ParameterStudy2DDemo, ParameterStudy1DDemo, MinimalExampleDrum, MarbleRun, MarbleRun, LeesEdwardsDemo, HourGlass, HourGlass2D, HourGlass2D, HeaterBoundaryTest, FreeCoolingDemoProblem, FreeCooling3DinWallsDemo, FreeCooling3DDemoProblem, FreeCooling2DinWallsDemo, FreeCooling2DinWalls, CubicCell, TwoByTwoMPIDomainMPI4Test, SubcriticalMaserBoundaryTESTMPI2Test, PeriodicBounaryEnteringMPIDomainTest, MpiPeriodicBoundaryUnitTest, MaserRepeatedOutInMPI2Test, LiquidMigrationMPI2Test, InsertionBoundaryMPI2Test, ForceLawsMPI2Test, Mercury3DRestart, Chain, Chain, my_problem, my_problem, my_problem, Binary, Funnel, ChuteWithVerticalHopper, MembraneDemo, VerticalMixer, RotatingDrumWet, Drum, NozzleDemo, NautaMixer, HorizontalMixerWalls, HorizontalMixer, ChuteWithPeriodicInflow, restart, free_cooling, my_problem, my_problem, RandomClusterInsertionBoundarySelfTest, multiParticleT1, multiParticleT1, multiParticleT1, multiParticleT1, multiParticleT1, multiParticleT1, multiParticleT1, SmoothChute, SmoothChute, MercuryLogo, ChuteWithWedge, ChutePeriodicDemo, AxisymmetricHopper, AirySavageHutter, Vreman, Vreman, Vreman, VariableBottom, VariableBottom, ChutePeriodic, SegregationPeriodic, ChuteRestart, VariableBottom, ChutePeriodic, ChutePeriodic, ChutePeriodic, ChutePeriodic, CSCWalls, CSCStats, CSCRun, CSCInit, ClosedCSCWalls, ClosedCSCStats, ClosedCSCRun, LawinenBox, LawinenBox, LawinenBox, T_protectiveWall, ExtremeOverlapVolumeUnitTest, and ExtremeOverlapUnitTest.
Referenced by initialiseSolve(), loadingTest(), normalAndTangentialLoadingTest(), and objectivenessTest().
void DPMBase::setWallsWriteVTK | ( | bool | writeVTK | ) |
Sets whether walls are written into a VTK file.
The VTK file is used for visualisation in Paraview.
[in] | writeWallsVTK |
References logger, MULTIPLE_FILES, NO_FILE, WallHandler::setWriteVTK(), wallHandler, and WARN.
void DPMBase::setWallsWriteVTK | ( | FileType | writeWallsVTK | ) |
Sets whether walls are written into a VTK file.
Uses the preprocessor directive ifdef
to check if there exists a CONTACT_LIST_HGRID, before any code is compiled. If CONTACT_LIST_HGRID does exist, this function can be used to return the "possibleContactsList" - but not to alter it.
The VTK file is used for visualisation in Paraview.
[in] | writeWallsVTK |
References logger, WallHandler::setWriteVTK(), wallHandler, and WARN.
Referenced by multiParticleT1::multiParticleT1().
void DPMBase::setWritePythonFileForVTKVisualisation | ( | bool | forceWritePythonFileForVTKVisualisation | ) |
Enables/disables the writePythonFileForVTKVisualisation() function.
[in] | forceWritePythonFileForVTKVisualisation |
References forceWritePythonFileForVTKVisualisation_.
Referenced by AreaVTK::setupInitialConditions().
void DPMBase::setXBallsAdditionalArguments | ( | std::string | xBallsAdditionalArguments | ) |
Set the additional arguments for xballs.
Used to set, from the driver code itself, arguments to control the visualisation of the simulation run using xballs. All arguments can be passed as a single string, for example:
setXBallsAdditionalArguments("-cmode 8 -solidf");
will set the colour mode (cmode) to 8 (colour dependent on species) and draw particles with solid lines (solidf)
[in] | newXBArgs |
References xBallsAdditionalArguments_.
Referenced by BaseCluster::actionsOnRestart(), BoundariesSelfTest::BoundariesSelfTest(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), CSCInit::CSCInit(), CSCWalls::CSCWalls(), DPM::DPM(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), ForceLawsMPI2Test::ForceLawsMPI2Test(), InitialConditions< SpeciesType >::InitialConditions(), LawinenBox::LawinenBox(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), main(), MultiParticlesInsertion::MultiParticlesInsertion(), multiParticleT1::multiParticleT1(), read(), Calibration::setOutput(), CSCRun::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), DPM::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), BaseCluster::setupInitialConditions(), ShearStage::ShearStage(), SingleParticle< SpeciesType >::SingleParticle(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), Tutorial11::Tutorial11(), and TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test().
void DPMBase::setXBallsColourMode | ( | int | newCMode | ) |
Set the xballs output mode.
Allows the user to change the default "cmode" (colour mode) variable in MercuryDPM's built-in visualiser, "XBalls". cmode takes an integer value between 1 and 27 (1 and 14 for 2D problems); to each integer is assigned a different colour mode, which can be used to assign colours to individual particles based on a parameter such as the particles radius, velocity, rotational energy etc. etc. For further details, refer to the Visualising data in xballs
[in] | newCMode | The numerical value corresponding to the colour mode (see Visualising data in xballs) you want to use when visually reconstructing Mercury simulations. |
References xBallsColourMode_.
Referenced by main(), and ChutePeriodic::setup().
void DPMBase::setXBallsScale | ( | Mdouble | newScale | ) |
Sets the scale of the view (either normal, zoom in or zoom out) to display in xballs. The default is fit to screen.
[in] | newScale | The desired new scaling or "zoom". Values > 1 act to "zoom out", values < 1 act to "zoom in". |
References xBallsScale_.
Referenced by main().
void DPMBase::setXBallsVectorScale | ( | double | newVScale | ) |
Set the scale of vectors in xballs.
Allows the user to choose the default vector scaling, i.e. the length of the vectors representing particle velocities in the XBalls visualisation software. Further details may be found in the Visualising data in xballs
[in] | newVScale | The value of the desired vector length - a value of 100 sets the length to 1 particle radius, 1000 sets it to 10 particle radii etc. |
References xBallsVectorScale_.
Referenced by main(), and ChutePeriodic::setup().
void DPMBase::setXMax | ( | Mdouble | newXMax | ) |
Sets the value of XMax, the upper bound of the problem domain in the x-direction.
An access function which allows the user to alter the value of the (private) x value of the "Vec3D" object "max_", thus setting the maximum x-value corresponding to the system, i.e. the upper limit of the domain in the x-direction.
These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
The function also performs a sanity check to stop the user defining an upper bound that is lower than the corresponding lower bound (XMin), giving a (logged) warning if the user attempts to do so.
[in] | newXMax |
References getXMin(), logger, max_, WARN, and Vec3D::x().
Referenced by ChuteWithPeriodicInflow::AddContinuingBottom(), statistics_while_running< T >::auto_set_domain(), BoundariesSelfTest::BoundariesSelfTest(), Funnel::check_funnel(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContinuingBottom::ChuteWithPeriodicInflowAndContinuingBottom(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ChuteWithPeriodicInflowAndVariableBottom::ChuteWithPeriodicInflowAndVariableBottom(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), CSCWalls::CSCWalls(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), MarbleRun::includeInDomain(), inflowFromPeriodic::inflowFromPeriodic(), InitialConditions< SpeciesType >::InitialConditions(), LawinenBox::LawinenBox(), load(), main(), multiParticleT1::multiParticleT1(), ParticleCreation::ParticleCreation(), protectiveWall::protectiveWall(), readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), Chute::setChuteLength(), ChuteWithHopper::setChuteLength(), ChuteWithHopper::setHopperShift(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), SmoothChute::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Chain::setupInitialConditions(), FiveParticles::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Cstatic3D::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), SimpleOpt::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWall::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), FlowFrontChute::stretch(), T_protectiveWall::T_protectiveWall(), Tutorial11::Tutorial11(), StressStrainControlBoundary::updateDomainSize(), and viscoElasticUnitTest::viscoElasticUnitTest().
void DPMBase::setXMin | ( | Mdouble | newXMin | ) |
Sets the value of XMin, the lower bound of the problem domain in the x-direction.
An access function which allows the user to alter the value of the (private) x value of the "Vec3D" object "min_", thus setting the minimum x-value corresponding to the system, i.e. the lower limit of the domain in the x-direction.
These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
The function also performs a sanity check to stop the user defining a lower bound that is higher than the corresponding upper bound (XMax), giving a (logged) warning if the user attempts to do so.
[in] | newXMin |
References getXMax(), logger, min_, WARN, and Vec3D::x().
Referenced by statistics_while_running< T >::auto_set_domain(), BoundariesSelfTest::BoundariesSelfTest(), Funnel::check_funnel(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), CSCWalls::CSCWalls(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), MarbleRun::includeInDomain(), InitialConditions< SpeciesType >::InitialConditions(), load(), main(), multiParticleT1::multiParticleT1(), ParticleCreation::ParticleCreation(), readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), ChuteWithHopper::setChuteLength(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), SmoothChute::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Chain::setupInitialConditions(), FiveParticles::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), SimpleOpt::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), Tutorial11::Tutorial11(), StressStrainControlBoundary::updateDomainSize(), and viscoElasticUnitTest::viscoElasticUnitTest().
void DPMBase::setYMax | ( | Mdouble | newYMax | ) |
Sets the value of YMax, the upper bound of the problem domain in the y-direction.
An access function which allows the user to alter the value of the (private) y value of the "Vec3D" object "max_", thus setting the maximum y-value corresponding to the system, i.e. the upper limit of the domain in the y-direction.
These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
The function also performs a sanity check to stop the user defining an upper bound that is lower than the corresponding lower bound (YMin), giving a (logged) warning if the user attempts to do so.
[in] | newYMax |
References getYMin(), logger, max_, WARN, and Vec3D::y().
Referenced by statistics_while_running< T >::auto_set_domain(), BoundariesSelfTest::BoundariesSelfTest(), Funnel::check_funnel(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), CSCWalls::CSCWalls(), ChuteWithPeriodicInflow::ExtendInWidth(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), MarbleRun::includeInDomain(), InitialConditions< SpeciesType >::InitialConditions(), LawinenBox::LawinenBox(), load(), main(), multiParticleT1::multiParticleT1(), ParticleCreation::ParticleCreation(), protectiveWall::protectiveWall(), readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), Slide::set_Walls(), Chute::setChuteWidth(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), SmoothChute::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Chain::setupInitialConditions(), FiveParticles::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Cstatic3D::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), SimpleOpt::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWall::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), T_protectiveWall::T_protectiveWall(), Tutorial11::Tutorial11(), StressStrainControlBoundary::updateDomainSize(), and viscoElasticUnitTest::viscoElasticUnitTest().
void DPMBase::setYMin | ( | Mdouble | newYMin | ) |
Sets the value of YMin, the lower bound of the problem domain in the y-direction.
An access function which allows the user to alter the value of the (private) y value of the "Vec3D" object "min_", thus setting the minimum y-value corresponding to the system, i.e. the lower limit of the domain in the y-direction.
These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
The function also performs a sanity check to stop the user defining a lower bound that is higher than the corresponding upper bound (YMax), giving a (logged) warning if the user attempts to do so.
[in] | newYMin |
References getYMax(), logger, min_, WARN, and Vec3D::y().
Referenced by statistics_while_running< T >::auto_set_domain(), BoundariesSelfTest::BoundariesSelfTest(), Funnel::check_funnel(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), CSCWalls::CSCWalls(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), MarbleRun::includeInDomain(), InitialConditions< SpeciesType >::InitialConditions(), load(), main(), multiParticleT1::multiParticleT1(), ParticleCreation::ParticleCreation(), readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), Slide::set_Walls(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), SmoothChute::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Chain::setupInitialConditions(), FiveParticles::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), SimpleOpt::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), Tutorial11::Tutorial11(), StressStrainControlBoundary::updateDomainSize(), and viscoElasticUnitTest::viscoElasticUnitTest().
void DPMBase::setZMax | ( | Mdouble | newZMax | ) |
Sets the value of ZMax, the upper bound of the problem domain in the z-direction.
An access function which allows the user to alter the value of the (private) z value of the "Vec3D" object "max_", thus setting the maximum z-value corresponding to the system, i.e. the upper limit of the domain in the z-direction.
These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
The function also performs a sanity check to stop the user defining an upper bound that is lower than the corresponding lower bound (ZMin), giving a (logged) warning if the user attempts to do so.
[in] | newZMax |
References getZMin(), logger, max_, WARN, and Vec3D::z().
Referenced by Chutebelt::actionsAfterTimeStep(), ChutePeriodic::add_flow_particles(), SilbertPeriodic::add_flow_particles(), Chute::addFlowParticlesCompactly(), ChuteWithHopper::addHopper(), statistics_while_running< T >::auto_set_domain(), statistics_while_running< T >::auto_set_z(), BoundariesSelfTest::BoundariesSelfTest(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), CSCWalls::CSCWalls(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), MarbleRun::includeInDomain(), InitialConditions< SpeciesType >::InitialConditions(), load(), main(), multiParticleT1::multiParticleT1(), ParticleCreation::ParticleCreation(), protectiveWall::protectiveWall(), readNextArgument(), Chute::readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), ClosedCSCWalls::saveWalls(), AngleOfRepose::set_H(), SilbertPeriodic::set_H(), Slide::set_Walls(), Chute::setInflowHeight(), ChutePeriodic::setup(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), LawinenBox::setupInitialConditions(), SmoothChute::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Chain::setupInitialConditions(), FiveParticles::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Cstatic3D::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), SimpleOpt::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), MovingWall::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), T_protectiveWall::T_protectiveWall(), Tutorial11::Tutorial11(), StressStrainControlBoundary::updateDomainSize(), and viscoElasticUnitTest::viscoElasticUnitTest().
void DPMBase::setZMin | ( | Mdouble | newZMin | ) |
Sets the value of ZMin, the lower bound of the problem domain in the z-direction.
An access function which allows the user to alter the value of the (private) z value of the "Vec3D" object "min_", thus setting the minimum z-value corresponding to the system, i.e. the lower limit of the domain in the z-direction.
These bounds are used for display, plotting and statistics purposes. They do not affect the dynamics.
The function also performs a sanity check to stop the user defining a lower bound that is higher than the corresponding upper bound (ZMax), giving a (logged) warning if the user attempts to do so.
[in] | newZMin |
References getZMax(), logger, min_, WARN, and Vec3D::z().
Referenced by statistics_while_running< T >::auto_set_domain(), statistics_while_running< T >::auto_set_z(), BoundariesSelfTest::BoundariesSelfTest(), ClosedCSCWalls::ClosedCSCWalls(), clumpTest::clumpTest(), CSCWalls::CSCWalls(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), MarbleRun::includeInDomain(), InitialConditions< SpeciesType >::InitialConditions(), load(), main(), multiParticleT1::multiParticleT1(), ParticleCreation::ParticleCreation(), readNextArgument(), regimeForceUnitTest::regimeForceUnitTest(), Slide::set_Walls(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), SmoothChute::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Chain::setupInitialConditions(), FiveParticles::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), SimpleOpt::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), Tutorial11::Tutorial11(), StressStrainControlBoundary::updateDomainSize(), and viscoElasticUnitTest::viscoElasticUnitTest().
|
staticprotected |
signal handler function.
References continueFlag_, INFO, and logger.
Referenced by setSoftStop().
void DPMBase::solve | ( | ) |
The work horse of the code.
References clock_, computeOneTimeStep(), continueSolve(), finaliseSolve(), getTime(), getTimeMax(), initialiseSolve(), Time::tic(), and Time::toc().
Referenced by FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), commandLineCG(), ClusterGenerator::create(), CLiveStatistics< T >::getLiveStatistics(), main(), ChuteBottom::makeRoughBottom(), MovingWalls::MovingWalls(), particleParticleTest(), PointIsAboveCurve(), FlowRule::run(), statistics_while_running< T >::run(), AngleOfRepose::run(), vibratedBed::run(), runFreeFall(), SaveCountUnitTest::SaveCountUnitTest(), solve(), SilbertHstop::solve_analytic(), statistics_while_running< T >::statistics_while_running(), ContactDetectionIntersectionOfWallsTest::test(), BouncingSuperQuadric::test(), SlidingSpheresUnitTest::test(), ContactDetectionNormalSpheresTest::test(), ContactDetectionRotatedSpheresTest::test(), Packing::test(), HertzContactRestitutionUnitTest::test(), and wallParticleTest().
void DPMBase::solve | ( | int | argc, |
char * | argv[] | ||
) |
The work horse of the code. Can handle flags from the command line.
This method allows flags to be passed to Mercury from driver codes, such that variables can be altered without needing to alter the driver files - for example, if the user wishes to give specific commands for the manner in which the system will be displayed in xballs.
After reading in the arguments provided, the normal 'solve()' routine is called. For full details see the documentation of the solve() function (linked).
[in] | argc | |
[in] | argv |
References readArguments(), and solve().
void DPMBase::splitDomain | ( | DomainSplit | domainSplit | ) |
Splits domain as neatly as possible. e.g. splitDomain(XY) splits domain into a 6x5x1 grid for 30 processors, a 6x6x1 grid for 36 processors
References n, NUMBER_OF_PROCESSORS, setNumberOfDomains(), X, XY, XZ, Y, YZ, and Z.
|
protected |
References MPIContainer::broadcast(), copyDataFromMPIParticleToParticle(), MPISphericalParticle::copyDataFromParticleToMPIParticle(), MPIContainer::getProcessorID(), MPIContainer::Instance(), PARTICLE, and particleHandler.
void DPMBase::updateGhostGrid | ( | BaseParticle * | P | ) |
Checks if the Domain/periodic interaction distance needs to be updated and updates it accordingly.
Checks if the domain and periodicBoundaryHandler need to update the interaction distance. If this is the case it will update the ghost particles as well.
When adding a new particle with a larger interaction radius than all previous particles, the domain needs to update the interactionDistance and initialise all particles that are now also included in the communication zones. All other domains are updated as well.
[in] | P | Pointer to a baseParticle that recently has been added to the simulation |
References DomainHandler::addNewParticles(), PeriodicBoundaryHandler::addNewParticles(), domainHandler, DomainHandler::getCurrentDomain(), DomainHandler::getInteractionDistance(), logger, NUMBER_OF_PROCESSORS, Global_Physical_Variables::P, periodicBoundaryHandler, PROCESSOR_ID, DomainHandler::setInteractionDistance(), PeriodicBoundaryHandler::setInteractionDistance(), and VERBOSE.
Referenced by ParticleHandler::addObject().
|
virtual |
\brief Loads all MD data and plots statistics for all time steps in the .data file ‍/
void statisticsFromRestartData(const char *name); /
/*! \brief Writes all data into a restart file
Writes out all relevant information - e.g. system dimensions, run duration, particle information - for a .restart file to the chosen output stream, os
. More detailed comments may be seen in the body of the code.
[in] | writeAllParticles | A boolean which decides whether or not all particle information is written to the output file. (Otherwise, only a small number of particles are printed.) |
[in] | nToWrite |
Reimplemented in MercuryBase, ChuteWithHopper, Chute, Funnel, BaseCluster, MembraneSelfTest, MembraneDemo, SegregationPeriodic, SegregationPeriodic, and SegregationPeriodic.
References boundaryHandler, boundaryVTKWriter_, helpers::compare(), dataFile, eneFile, fStatFile, getBackgroundDrag(), BaseVTKWriter< H >::getFileCounter(), getGravity(), getNToWrite(), BaseHandler< T >::getNumberOfObjects(), getNumberOfOMPThreads(), BaseHandler< T >::getObject(), getParticleDimensions(), getRepositoryURL(), getRevision(), BaseHandler< T >::getSize(), getSystemDimensions(), getTime(), getTimeMax(), getTimeStep(), getVersion(), WallHandler::getWriteDetailsVTKAny(), BoundaryHandler::getWriteVTK(), InteractionHandler::getWriteVTK(), WallHandler::getWriteVTK(), WallHandler::getWriteWallDetailsVTKAll(), getXBallsAdditionalArguments(), getXMax(), getXMin(), getYMax(), getYMin(), getZMax(), getZMin(), constants::i, interactionFile, interactionHandler, interactionVTKWriter_, name_, NUMBER_OF_PROCESSORS, numberOfDomains_, numberOfTimeSteps_, particleHandler, random, restartFile, runNumber_, speciesHandler, statFile, vtkWriter_, wallDetailsVTKWriter_, wallHandler, wallVTKWriter_, InteractionHandler::write(), RNG::write(), ParticleHandler::write(), SpeciesHandler::write(), writeParticlesVTK_, XAXIS, YAXIS, and ZAXIS.
Referenced by statistics_while_running< T >::actionsBeforeTimeLoop(), operator<<(), CLiveStatistics< T >::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), Slide::Slide(), MercuryBase::write(), and writeRestartFile().
void DPMBase::writeDataFile | ( | ) |
References File::close(), dataFile, File::getFstream(), getNumberOfTimeSteps(), File::openWrite(), and outputXBallsData().
Referenced by main(), and writeOutputFiles().
void DPMBase::writeEneFile | ( | ) |
References File::close(), eneFile, File::getFstream(), getNumberOfTimeSteps(), File::openWrite(), and writeEneTimeStep().
Referenced by main(), and writeOutputFiles().
|
protectedvirtual |
Writes a header with a certain format for ENE file.
If the "append" flag is off (false) - i.e. the file has not been restarted - creates a header for the output ".ene" file. The headers simply give titles to each of the columns output to this file.
If the "append" flag is on (true), i.e. if the file has restarted, simply ends the function without writing a header - otherwise restarted files will have a random header at the point of restart, making data processing more difficult...
The function takes as an argument an output stream, "os", which tells the compiler where to output the headers, if they are required.
[in] | os | The output stream to the file in which the header should be written. |
Reimplemented in BaseCoupling< Mercury3D, SolidProblem< SCoupledElement< ELEMENT > > >, BaseCoupling< Mercury3D, SolidProblem< ScaleCoupledElement< ELEMENT > > >, SlidingFrictionUnitTest, SphericalIndenter, Sintering, and SingleParticle< SpeciesType >.
References getAppend().
Referenced by writeEneTimeStep().
|
protectedvirtual |
Write the global kinetic, potential energy, etc. in the system.
The function cycles over all particles within the system (or rather, the particleHandler), creating sums of the relevant energies and "mass lengths" (m.x, m.y, m.z) from which the system's centre of mass can also be calculated. The summed energy values and calculated centre of mass values are then output to the file corresponding to "os" alongside the current time step.
A check is performed - if (!p->isFixed())
- to ensure that calculations are not performed on fixed particles, as these are assigned an effectively infinite mass and would hence cause compiler issues.
[in] | os | The output stream to which the data will be written |
Reimplemented in BaseCoupling< Mercury3D, SolidProblem< SCoupledElement< ELEMENT > > >, BaseCoupling< Mercury3D, SolidProblem< ScaleCoupledElement< ELEMENT > > >, SlidingFrictionUnitTest, SphericalIndenter, Sintering, SingleParticle< SpeciesType >, Slide, Slide, Silo, Penetration, Drum, LawinenBox, LawinenBox, and LawinenBox.
References Vec3D::dot(), eneFile, File::getCounter(), getElasticEnergy(), File::getFileType(), getGravity(), ParticleHandler::getKineticEnergy(), ParticleHandler::getMass(), ParticleHandler::getMassTimesPosition(), ParticleHandler::getRotationalEnergy(), getTime(), MULTIPLE_FILES, MULTIPLE_FILES_PADDED, constants::NaN, particleHandler, writeEneHeader(), Vec3D::X, Vec3D::Y, and Vec3D::Z.
Referenced by writeEneFile().
void DPMBase::writeFStatFile | ( | ) |
References File::close(), fStatFile, File::getFstream(), getNumberOfTimeSteps(), File::openWrite(), and writeFstatHeader().
Referenced by main(), and writeOutputFiles().
|
protectedvirtual |
Writes a header with a certain format for FStat file.
The function takes as an argument an output stream and, to the corresponding file, outputs the relevant header and data for the ".fstat"-type output files. For more information regarding the fstat file format, please refer to the user guide on the Mercury website
[in] | os | The output stream (e.g. a file stream or cout) |
Reimplemented in protectiveWall.
References ParticleHandler::getLargestParticleLocal(), BaseParticle::getRadius(), ParticleHandler::getSmallestParticleLocal(), getTime(), getXMax(), getXMin(), getYMax(), getYMin(), getZMax(), getZMin(), interactionHandler, and particleHandler.
Referenced by writeFStatFile().
|
virtual |
Writes simulation data to all the main Mercury files: .data, .ene, .fstat, .xballs and .restart (see the Mercury website for more details regarding these files).
Writes headers and all relevant information to the relevant output files. Note that the writeFstatHeader() actually contains within it the functionality to write the full fstat data, whereas for .ene files the functions to write the headers and main data are separate. Note that the interaction file is not written here: it is written with the start and end of each interaction.
The function [X].saveCurrentTimeStep(numberOfTimeSteps_) returns true
if:
a) The current time step is greater than or equal to the time step at which the next write or read operation is supposed to happen.
b) The FileType is not "NO_FILE".
c) The file is open.
Reimplemented in Mercury3DRestart, Mercury3DRestarter, CSCRestart, ClosedCSCRestart, StatisticsVector< T >, StatisticsVector< O >, and StatisticsVector< XZ >.
References cgHandler, dataFile, eneFile, CGHandler::evaluate(), fStatFile, File::getCounter(), File::getFileType(), getRestarted(), NO_FILE, numberOfTimeSteps_, printTime(), restartFile, File::saveCurrentTimeStep(), File::saveCurrentTimeStepNoFileTypeCheck(), File::setLastSavedTimeStep(), writeDataFile(), writeEneFile(), writeFStatFile(), writeRestartFile(), writeVTKFiles(), and writeXBallsScript().
Referenced by computeOneTimeStep(), forceWriteOutputFiles(), ClosedCSCRestart::writeOutputFiles(), CSCRestart::writeOutputFiles(), Mercury3DRestarter::writeOutputFiles(), and Mercury3DRestart::writeOutputFiles().
void DPMBase::writePythonFileForVTKVisualisation | ( | ) | const |
References WallHandler::BOUNDINGBOX, getName(), getParticlesWriteVTK(), helpers::getPath(), WallHandler::getWriteDetailsVTK(), InteractionHandler::getWriteVTK(), WallHandler::getWriteVTK(), INFO, interactionHandler, logger, NO_FILE, NUMBER_OF_PROCESSORS, WallHandler::NURBSWALL, PROCESSOR_ID, wallHandler, and helpers::writeToFile().
Referenced by writeVTKFiles().
|
virtual |
Stores all the particle data for current save time step to a "restart" file, which is a file simply intended to store all the information necessary to "restart" a simulation from a given time step (see also MercuryDPM.org for more information on restart files).
Calls the write() function in order to output all relevant data (particle positions and velocities, system dimensions, positions of walls and boundaries...) to a restart file.
See also readRestartFile
Reimplemented in FlowRule, FlowRule, FlowRule, FlowRule, and FlowRule.
References File::close(), File::getFstream(), getNumberOfTimeSteps(), File::openWriteNoAppend(), restartFile, and write().
Referenced by ParameterStudy1DDemo::actionsAfterSolve(), ParameterStudy2DDemo::actionsAfterSolve(), ParameterStudy3DDemo::actionsAfterSolve(), ChutePeriodic::add_flow_particles(), SilbertPeriodic::add_flow_particles(), main(), PointIsAboveCurve(), AngleOfRepose::run(), vibratedBed::run(), CSCInit::save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), statistics_while_running< T >::statistics_while_running(), writeOutputFiles(), and FlowRule::writeRestartFile().
|
protected |
References boundaryHandler, boundaryVTKWriter_, forceWritePythonFileForVTKVisualisation_, BaseVTKWriter< H >::getFileCounter(), getParticlesWriteVTK(), getSuperquadricParticlesWriteVTK(), getTime(), WallHandler::getWriteDetailsVTKAny(), BoundaryHandler::getWriteVTK(), InteractionHandler::getWriteVTK(), WallHandler::getWriteVTK(), interactionHandler, interactionVTKWriter_, MULTIPLE_FILES, MULTIPLE_FILES_PADDED, NO_FILE, ONE_FILE, vtkWriter_, wallDetailsVTKWriter_, wallHandler, wallVTKWriter_, writePythonFileForVTKVisualisation(), BaseVTKWriter< H >::writeVTK(), BoundaryVTKWriter::writeVTK(), InteractionVTKWriter::writeVTK(), WallDetailsVTKWriter::writeVTK(), and WallVTKWriter::writeVTK().
Referenced by GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), MyCoil::setupInitialConditions(), Nurbs::setupInitialConditions(), Polygon::setupInitialConditions(), Silo::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), and writeOutputFiles().
|
virtual |
This writes a script which can be used to load the xballs problem to display the data just generated.
Reimplemented in ChuteWithPeriodicInflow.
Referenced by ClosedCSCRun::ClosedCSCRun(), CSCInit::CSCInit(), main(), CSCRun::setupInitialConditions(), and writeOutputFiles().
|
private |
A flag to determine if the file has to be appended or not. See DPMBase::Solve() for example.
Referenced by DPMBase(), getAppend(), and setAppend().
|
private |
This is a global background drag to help retard particles, or to do a simple fluid drag. The force particleVeclocity*backgroundDrag is applied.
Referenced by DPMBase(), getBackgroundDrag(), read(), and setBackgroundDrag().
BoundaryHandler DPMBase::boundaryHandler |
An object of the class BoundaryHandler which concerns insertion and deletion of particles into or from regions.
Referenced by T_protectiveWall::actionsAfterTimeStep(), GranuHeap::actionsAfterTimeStep(), LeesEdwardsDemo::actionsAfterTimeStep(), ShiftingConstantMassFlowMaserBoundarySelfTest::actionsAfterTimeStep(), ShiftingMaserBoundarySelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundary3DSelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundaryTest::actionsAfterTimeStep(), Chutebelt::actionsAfterTimeStep(), BoundariesSelfTest::actionsAfterTimeStep(), PolydisperseInsertionBoundarySelfTest::actionsAfterTimeStep(), GranularCollapse::actionsAfterTimeStep(), protectiveWall::actionsAfterTimeStep(), SilbertPeriodic::add_flow_particles(), AngledPeriodicBoundarySecondUnitTest::AngledPeriodicBoundarySecondUnitTest(), AngledPeriodicBoundaryUnitTest::AngledPeriodicBoundaryUnitTest(), BoundariesSelfTest::BoundariesSelfTest(), ChuteWithPeriodicInflow::Check_and_Duplicate_Periodic_Particle(), checkAndDuplicatePeriodicParticles(), Mercury3Dclump::checkClumpForInteractionPeriodic(), checkInteractionWithBoundaries(), checkParticleForInteractionLocalPeriodic(), ChutePeriodicDemo::ChutePeriodicDemo(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ClosedCSCWalls::ClosedCSCWalls(), Mercury3Dclump::computeAllForces(), computeOneTimeStep(), constructor(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), Funnel::create_walls(), CSCWalls::CSCWalls(), DPMBase(), ChuteWithPeriodicInflow::ExtendInWidth(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), GranuDrum::GranuDrum(), InitialConditions< SpeciesType >::InitialConditions(), initialiseSolve(), ChuteWithPeriodicInflow::integrateBeforeForceComputation(), main(), protectiveWall::protectiveWall(), read(), readOld(), readParAndIniFiles(), ChutePeriodic::setupInitialConditions(), MercuryLogo::setupInitialConditions(), multiParticleT1::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), my_problem::setupInitialConditions(), NozzleDemo::setupInitialConditions(), Drum::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), InsertionBoundaryMPI2Test::setupInitialConditions(), MaserRepeatedOutInMPI2Test::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicBounaryEnteringMPIDomainTest::setupInitialConditions(), SubcriticalMaserBoundaryTESTMPI2Test::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), LeesEdwardsDemo::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), StressStrainControl::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), TimeDependentPeriodicBoundaryTest::setupInitialConditions(), Cstatic2d::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), Silo::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Tutorial6::setupInitialConditions(), Packing::setupInitialConditions(), FullRestartTest::setupInitialConditions(), MD_demo::setupInitialConditions(), MpiMaserChuteTest::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), ChuteWithHopper::setupInitialConditions(), Chute::setupSideWalls(), ShearStage::ShearStage(), T_protectiveWall::T_protectiveWall(), write(), and writeVTKFiles().
|
private |
Referenced by read(), resetFileCounter(), write(), and writeVTKFiles().
CGHandler DPMBase::cgHandler |
Object of the class cgHandler.
Referenced by commandLineCG(), constructor(), DPMBase(), finishStatistics(), initialiseStatistics(), main(), setCGHandler(), setSaveCount(), Packing::test(), testCGHandler(), and writeOutputFiles().
Time DPMBase::clock_ |
record when the simulation started
Referenced by getCPUTime(), getWallTime(), and solve().
|
staticprivate |
Stores whether code should be stopped
Referenced by continueSolve(), and signalHandler().
File DPMBase::dataFile |
An instance of class File to handle in- and output into a .data file.
Referenced by RotatingDrumWet::actionsAfterTimeStep(), ParameterStudy1DDemo::actionsBeforeTimeLoop(), ParameterStudy2DDemo::actionsBeforeTimeLoop(), ParameterStudy3DDemo::actionsBeforeTimeLoop(), BaseCluster::actionsOnRestart(), NautaMixer::addSpeciesAndSetTimeStepAndSaveCount(), BoundariesSelfTest::BoundariesSelfTest(), ClosedCSCRun::ClosedCSCRun(), closeFiles(), commandLineCG(), ChuteBottom::constructor(), constructor(), CGHandler::evaluateDataFiles(), CGHandler::evaluateRestartFiles(), findNextExistingDataFile(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), getDataFile(), CLiveStatistics< T >::getLiveStatistics(), ChuteWithPeriodicInflow::integrateBeforeForceComputation(), LeesEdwardsDemo::LeesEdwardsDemo(), main(), MultiParticlesInsertion::MultiParticlesInsertion(), read(), readDataFile(), readNextArgument(), readNextDataFile(), readOld(), readParAndIniFiles(), BaseWall::renderWall(), resetFileCounter(), CGHandler::restart(), FlowRule::run(), statistics_while_running< T >::run(), AngleOfRepose::run(), CSCInit::save(), SaveCountUnitTest::SaveCountUnitTest(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), AngleOfRepose::set_study(), SilbertPeriodic::set_study(), setFileType(), setLastSavedTimeStep(), setLogarithmicSaveCount(), FlowRule::setName(), setName(), setOpenMode(), Calibration::setOutput(), setSaveCount(), ChutePeriodic::setup(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), Cstatic3D::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), Packing::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), BaseCluster::setupInitialConditions(), SilbertHstop::SilbertHstop(), SilbertPeriodic::SilbertPeriodic(), statistics_while_running< T >::statistics_while_running(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), write(), writeDataFile(), writeOutputFiles(), and ChuteWithPeriodicInflow::writeXBallsScript().
DomainHandler DPMBase::domainHandler |
An object of the class DomainHandler which deals with parallel code.
Referenced by constructor(), SubcriticalMaserBoundaryTEST::copyExtraParticles(), decompose(), deleteGhostParticles(), DPMBase(), SubcriticalMaserBoundaryTEST::extendBottom(), PeriodicBoundaryHandler::findTargetProcessor(), getCurrentDomain(), PeriodicBoundaryHandler::getMPIFlags(), ParticleHandler::getNumberOfRealObjectsLocal(), initialiseSolve(), insertGhostParticle(), mpiInsertParticleCheck(), mpiIsInCommunicationZone(), performGhostParticleUpdate(), ForceLawsMPI2Test::printTime(), read(), and updateGhostGrid().
File DPMBase::eneFile |
An instance of class File to handle in- and output into a .ene file.
Referenced by BaseCluster::actionsOnRestart(), closeFiles(), ChuteWithPeriodicInflow::computeInternalForces(), ChuteBottom::constructor(), constructor(), ForceLawsMPI2Test::ForceLawsMPI2Test(), getEneFile(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), main(), read(), readNextArgument(), readOld(), resetFileCounter(), FlowRule::run(), statistics_while_running< T >::run(), AngleOfRepose::run(), setFileType(), setLastSavedTimeStep(), setLogarithmicSaveCount(), setName(), setOpenMode(), Calibration::setOutput(), setSaveCount(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), Cstatic3D::setupInitialConditions(), Drum::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), BaseCluster::setupInitialConditions(), SilbertPeriodic::SilbertPeriodic(), statistics_while_running< T >::statistics_while_running(), Tutorial11::Tutorial11(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), write(), writeEneFile(), writeEneTimeStep(), Drum::writeEneTimeStep(), Penetration::writeEneTimeStep(), Silo::writeEneTimeStep(), and writeOutputFiles().
|
private |
File DPMBase::fStatFile |
An instance of class File to handle in- and output into a .fstat file.
Referenced by ChuteRestartDemo::actionsOnRestart(), BaseCluster::actionsOnRestart(), AxisymmetricWallSelfTest::AxisymmetricWallSelfTest(), BoundariesSelfTest::BoundariesSelfTest(), closeFiles(), ChuteWithPeriodicInflow::computeInternalForces(), ChuteBottom::constructor(), constructor(), CGHandler::evaluateDataFiles(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), ForceLawsMPI2Test::ForceLawsMPI2Test(), getFStatFile(), CLiveStatistics< T >::getLiveStatistics(), HorizontalMixer::HorizontalMixer(), InitialConditions< SpeciesType >::InitialConditions(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), main(), ParticleParticleCollision::ParticleParticleCollision(), read(), readNextArgument(), readNextFStatFile(), readOld(), readParAndIniFiles(), resetFileCounter(), FlowRule::run(), statistics_while_running< T >::run(), AngleOfRepose::run(), setFileType(), setLastSavedTimeStep(), setLogarithmicSaveCount(), setName(), setOpenMode(), setSaveCount(), ChutePeriodic::setup(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), MarbleRun::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), Cstatic3D::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), SingleParticle< SpeciesType >::setupInitialConditions(), Packing::setupInitialConditions(), MovingWalls::setupInitialConditions(), BaseCluster::setupInitialConditions(), SilbertHstop::SilbertHstop(), SilbertPeriodic::SilbertPeriodic(), statistics_while_running< T >::statistics_while_running(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepWallSelfTest::TriangulatedStepWallSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), Tutorial11::Tutorial11(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), write(), writeFStatFile(), and writeOutputFiles().
|
private |
Gravity vector.
Referenced by DPMBase(), getGravity(), read(), readOld(), and setGravity().
File DPMBase::interactionFile |
File class to handle in- and output into .interactions file. This file hold information about interactions.
Referenced by closeFiles(), ChuteBottom::constructor(), constructor(), getInteractionFile(), read(), resetFileCounter(), setName(), setOpenMode(), and write().
InteractionHandler DPMBase::interactionHandler |
An object of the class InteractionHandler.
Referenced by ForceLawsMPI2Test::actionsAfterSolve(), Contact::actionsAfterSolve(), TwoByTwoMPIDomainMPI4Test::actionsAfterTimeStep(), SlidingSpheresUnitTest::actionsAfterTimeStep(), SphericalSuperQuadricCollision::actionsAfterTimeStep(), ContactDetectionNormalSpheresTest::actionsAfterTimeStep(), ContactDetectionRotatedSpheresTest::actionsAfterTimeStep(), MercuryProblem::actionsAfterTimeStep(), ForceLawsMPI2Test::actionsBeforeTimeStep(), ConstantRestitutionSelfTest::actionsBeforeTimeStep(), QuaternionWallUnitTest::actionsBeforeTimeStep(), PeriodicWallsWithSlidingFrictionUnitTest::actionsBeforeTimeStep(), SilbertPeriodic::add_flow_particles(), DropletBoundary::checkBoundaryAfterParticlesMove(), FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), PeriodicBoundaryHandler::collectInteractionData(), computeAllForces(), DPM::computeAllForcesNoHGrid(), computeForcesDueToWalls(), Mercury3Dclump::computeForcesDueToWalls(), computeInternalForce(), Mercury3Dclump::computeInternalForce(), computeOneTimeStep(), constructor(), BaseCluster::createAdjacencyMatrix(), DPMBase(), CGHandler::evaluateDataFiles(), CGHandler::evaluateRestartFiles(), Domain::finaliseBoundaryDataTransmission(), gatherContactStatistics(), getElasticEnergy(), LiquidMigrationPeriodicBoundaryInteraction::getLiquidBridgeVolume(), Sintering::getMeanPlasticOverlap(), InitialConditions< SpeciesType >::getMeanRelativeContactRadius(), Sintering::getMeanRelativeContactRadius(), regimeForceUnitTest::getMeanRelativeContactRadius(), getStaticStress(), importParticlesAs(), initialiseSolve(), main(), BaseCluster::makeDataAnalysis(), BaseCluster::makeGnuplotFile(), outputInteractionDetails(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), Domain::performBoundaryDataTransmission(), PeriodicBoundaryHandler::performNewParticleTransmission(), GranuDrum::printTime(), Drum::printTime(), RotatingDrumWet::printTime(), ForceLawsMPI2Test::printTime(), LiquidMigrationMPI2Test::printTime(), ParticleInclusion::printTime(), LiquidMigrationSelfTest::printTime(), TwoParticleElasticCollisionInteraction::printTime(), EvaporationAndHeatTest::printTime(), PeriodicBoundaryHandler::processLocalInteractionData(), PeriodicBoundaryHandler::processReceivedInteractionData(), Domain::processReceivedInteractionData(), FileReader::read(), read(), readNextFStatFile(), removeDuplicatePeriodicParticles(), CGHandler::restart(), CSCWalls::saveWalls(), setInteractionsWriteVTK(), setTime(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), MovingWalls::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), ContactDetectionTester::testEllipsoidsContact(), ContactDetectionWithWallTester::testEllipsoidsContact(), ContactDetectionTester::testSpheresContact(), ContactDetectionWithWallTester::testSpheresContact(), write(), BaseCluster::writeAmatFile(), SingleParticle< SpeciesType >::writeEneTimeStep(), SlidingFrictionUnitTest::writeEneTimeStep(), writeFstatHeader(), writePythonFileForVTKVisualisation(), BaseCluster::writeToOverlFile(), and writeVTKFiles().
|
private |
Referenced by read(), resetFileCounter(), write(), and writeVTKFiles().
|
private |
Referenced by constructor(), DPMBase(), getMax(), getXCenter(), getXMax(), getYCenter(), getYMax(), getZCenter(), getZMax(), read(), readNextDataFile(), readOld(), setDomain(), setMax(), setMin(), setXMax(), setYMax(), and setZMax().
|
private |
These vectors are used for the XBalls domain, and occasionally people use it to add walls.
Referenced by constructor(), DPMBase(), getMin(), getXCenter(), getXMin(), getYCenter(), getYMin(), getZCenter(), getZMin(), read(), readNextDataFile(), readOld(), setDomain(), setMax(), setMin(), setXMin(), setYMin(), and setZMin().
|
private |
the name of the problem, used, e.g., for the output files
Referenced by constructor(), getName(), read(), setName(), and write().
|
private |
number of elements to write to a screen
Referenced by constructor(), getNToWrite(), and setNToWrite().
|
private |
Vector containing the number of domains in x-,y- and z-direction, required for parallel computations.
Referenced by constructor(), decompose(), DPMBase(), getNumberOfDomains(), read(), setNumberOfDomains(), and write().
|
private |
Referenced by constructor(), DPMBase(), getNumberOfOMPThreads(), and setNumberOfOMPThreads().
|
private |
Stores the number of time steps.
Referenced by computeOneTimeStep(), constructor(), DPMBase(), getNumberOfTimeSteps(), initialiseSolve(), read(), write(), and writeOutputFiles().
ParticleHandler DPMBase::paoloParticleHandler |
Fake particleHandler created by Paolo needed temporary by just Paolo.
|
private |
determines if 2D or 3D particle volume is used for mass calculations
Referenced by DPMBase(), getParticleDimensions(), read(), and setParticleDimensions().
ParticleHandler DPMBase::particleHandler |
An object of the class ParticleHandler, contains the pointers to all the particles created.
Referenced by DPM::actionsAfterSolve(), MaserRepeatedOutInMPI2Test::actionsAfterSolve(), PSDManualInsertionSelfTest::actionsAfterSolve(), HertzianBSHPInteractionTwoParticleElasticCollision::actionsAfterSolve(), Contact::actionsAfterSolve(), EllipsoidsBouncingOnWallDemo::actionsAfterSolve(), EllipticalSuperQuadricCollision::actionsAfterSolve(), SphericalSuperQuadricCollision::actionsAfterSolve(), VisualisationTest::actionsAfterSolve(), SpeciesTest::actionsAfterSolve(), BaseCluster::actionsAfterSolve(), RotatingDrumWet::actionsAfterTimeStep(), ShearStage::actionsAfterTimeStep(), ClosedCSCRestart::actionsAfterTimeStep(), ClosedCSCRun::actionsAfterTimeStep(), multiParticleT1::actionsAfterTimeStep(), TwoByTwoMPIDomainMPI4Test::actionsAfterTimeStep(), CubicCell::actionsAfterTimeStep(), LeesEdwardsDemo::actionsAfterTimeStep(), ShiftingConstantMassFlowMaserBoundarySelfTest::actionsAfterTimeStep(), ShiftingMaserBoundarySelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundary3DSelfTest::actionsAfterTimeStep(), TimeDependentPeriodicBoundaryTest::actionsAfterTimeStep(), vibratedBed::actionsAfterTimeStep(), BoundariesSelfTest::actionsAfterTimeStep(), FluxAndPeriodicBoundarySelfTest::actionsAfterTimeStep(), FluxBoundarySelfTest::actionsAfterTimeStep(), PolydisperseInsertionBoundarySelfTest::actionsAfterTimeStep(), DPM::actionsAfterTimeStep(), BouncingSuperQuadric::actionsAfterTimeStep(), GranularCollapse::actionsAfterTimeStep(), SlidingSpheresUnitTest::actionsAfterTimeStep(), SphericalSuperQuadricCollision::actionsAfterTimeStep(), ContactDetectionNormalSpheresTest::actionsAfterTimeStep(), ContactDetectionRotatedSpheresTest::actionsAfterTimeStep(), MercuryProblem::actionsAfterTimeStep(), DrivenParticleClass::actionsAfterTimeStep(), Slide::actionsBeforeTimeLoop(), LawinenBox::actionsBeforeTimeStep(), DPM::actionsBeforeTimeStep(), SmoothChute::actionsBeforeTimeStep(), AngleOfRepose::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), Chutebelt::actionsBeforeTimeStep(), PeriodicWallsWithSlidingFrictionUnitTest::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), ConstantMassFlowMaserBoundary::activateMaser(), SubcriticalMaserBoundary::activateMaser(), SubcriticalMaserBoundaryTEST::activateMaser(), ChutePeriodic::add_flow_particles(), SilbertPeriodic::add_flow_particles(), ChuteWithPeriodicInflow::AddContinuingBottom(), Chute::addFlowParticlesCompactly(), ChuteWithHopper::addHopper(), SpeciesHandler::addObject(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), BaseWall::addParticlesAtWall(), BaseCluster::applyCentralForce(), statistics_while_running< T >::auto_set_domain(), statistics_while_running< T >::auto_set_z(), Membrane::buildMesh(), ChuteWithPeriodicInflow::Check_and_Duplicate_Periodic_Particle(), checkAndDuplicatePeriodicParticles(), FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), InsertionBoundary::checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), Mercury3Dclump::checkClumpForInteraction(), Mercury3Dclump::checkClumpForInteractionPeriodic(), checkInteractionWithBoundaries(), checkParticleForInteractionLocal(), checkParticleForInteractionLocalPeriodic(), checkSettings(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContinuingBottom::ChuteWithPeriodicInflowAndContinuingBottom(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ChuteWithPeriodicInflowAndVariableBottom::ChuteWithPeriodicInflowAndVariableBottom(), ChuteWithPeriodicInflow::cleanChute(), ChuteWithContraction::cleanChute(), Funnel::cleanChute(), Chute::cleanChute(), ContactDetectionTester::cleanup(), PeriodicBoundaryHandler::clearCommunicationLists(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), computeAllForces(), Mercury3Dclump::computeAllForces(), DPM::computeAllForcesNoHGrid(), computeInternalForces(), ChuteWithPeriodicInflow::computeInternalForces(), DPM::computeLocalVolumeFraction(), computeOneTimeStep(), computeWallForces(), constructor(), MercuryLogo::constructTextAsParticles(), ScalingTestInitialConditionsRelax::continueSolve(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), SubcriticalMaserBoundaryTEST::copyExtraParticles(), Funnel::create_funnel(), Slide::create_rough_wall(), BaseCluster::createAdjacencyMatrix(), AngleOfRepose::createBaseSpecies(), SilbertPeriodic::createBaseSpecies(), Chute::createBottom(), CurvyChute::createBottom(), PeriodicBoundary::createGhostParticle(), TimeDependentPeriodicBoundary::createGhostParticle(), Membrane::createVertexParticles(), CSCInit::CSCInit(), BaseCluster::dampVelocities(), decompose(), deleteGhostParticles(), DPM::DPM(), DPMBase(), CGHandler::evaluateDataFiles(), CGHandler::evaluateRestartFiles(), SubcriticalMaserBoundaryTEST::extendBottom(), ChuteWithPeriodicInflow::ExtendInWidth(), fillDomainWithParticles(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), SphericalIndenter::getBedHeight(), getCentreOfMass(), getGravitationalEnergy(), MercuryBase::getHGridTargetMaxInteractionRadius(), MercuryBase::getHGridTargetMinInteractionRadius(), MercuryBase::getHGridTargetNumberOfBuckets(), getKineticEnergy(), getKineticStress(), LiquidMigrationPeriodicBoundaryInteraction::getLiquidFilmVolume(), InitialConditions< SpeciesType >::getMeanRelativeContactRadius(), Sintering::getMeanRelativeContactRadius(), regimeForceUnitTest::getMeanRelativeContactRadius(), ParticleParticleCollision::getRelativeVelocity(), WallParticleCollision::getRelativeVelocity(), getRotationalEnergy(), getTotalMass(), getTotalMomentum(), GranuHeap::GranuHeap(), Hertzian2DUnitTest::Hertzian2DUnitTest(), MercuryBase::hGridActionsBeforeTimeStep(), MercuryBase::hGridNeedsRebuilding(), MercuryBase::hGridRebuild(), importParticlesAs(), Indenter::Indenter(), InitialConditions< SpeciesType >::InitialConditions(), HGridOptimiser::initialise(), initialiseSolve(), Membrane::initializeEdgeBendingQuantities(), integrateAfterForceComputation(), ChuteWithPeriodicInflow::integrateBeforeForceComputation(), integrateBeforeForceComputation(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), HorizontalMixer::introduceSingleParticle(), LawinenBox::LawinenBox(), load(), main(), BaseCluster::makeDataAnalysis(), ChuteBottom::makeRoughBottom(), MarbleRun::MarbleRun(), MercuryCGSelfTest::MercuryCGSelfTest(), MovingWall::MovingWall(), outputXBallsData(), LiquidMigrationMPI2Test::outputXBallsData(), LiquidMigrationSelfTest::outputXBallsData(), SphericalIndenter::outputXBallsData(), ChuteWithPeriodicInflow::outputXBallsDataParticlee(), ParticleBeam::ParticleBeam(), ParticleInclusion::ParticleInclusion(), BaseCluster::particleInsertionSuccessful(), LawinenBox::printTime(), GranuDrum::printTime(), GranuHeap::printTime(), ChuteWithPeriodicInflow::printTime(), NozzleDemo::printTime(), Drum::printTime(), RotatingDrumWet::printTime(), VerticalMixer::printTime(), LiquidMigrationMPI2Test::printTime(), ParticleBeam::printTime(), SilbertPeriodic::printTime(), vibratedBed::printTime(), CubeDeletionBoundarySelfTest::printTime(), DeletionBoundarySelfTest::printTime(), DistributionSelfTest::printTime(), DistributionToPSDSelfTest::printTime(), InsertionBoundarySelfTest::printTime(), MultiplePSDSelfTest::printTime(), NozzleSelfTest::printTime(), PolydisperseInsertionBoundarySelfTest::printTime(), PSDManualInsertionSelfTest::printTime(), PSDSelfTest::printTime(), LiquidMigrationSelfTest::printTime(), SinterPair::printTime(), EvaporationAndHeatTest::printTime(), RandomClusterInsertionBoundarySelfTest::printTime(), MultiParticlesInsertion::printTime(), regimeForceUnitTest::printTime(), BaseCluster::printTime(), Chute::printTime(), PeriodicBoundaryHandler::processLocalGhostParticles(), Domain::processReceivedBoundaryParticleData(), PeriodicBoundaryHandler::processReceivedGhostParticleData(), FileReader::read(), InsertionBoundary::read(), Membrane::read(), read(), InteractionHandler::readAndAddObject(), readNextDataFile(), readNextFStatFile(), readOld(), CurvyChute::recreateBottom(), regimeForceUnitTest::regimeForceUnitTest(), removeDuplicatePeriodicParticles(), CGHandler::restart(), MeshTriangle::retrieveVertexParticles(), CSCInit::save(), save(), Membrane::saveVertexPositions(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), Slide::set_Walls(), ParticleSpecies::setDensity(), setFixedParticles(), MeshTriangle::setHandler(), setMeanVelocity(), setMeanVelocityAndKineticEnergy(), setParticleDimensions(), setParticlesWriteVTK(), BaseParticle::setSpecies(), setSuperquadricParticlesWriteVTK(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCRun::setupInitialConditions(), CSCWalls::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), free_cooling::setupInitialConditions(), restart::setupInitialConditions(), HorizontalMixerWalls::setupInitialConditions(), MembraneDemo::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), Chain::setupInitialConditions(), ForceLawsMPI2Test::setupInitialConditions(), LiquidMigrationMPI2Test::setupInitialConditions(), MaserRepeatedOutInMPI2Test::setupInitialConditions(), PeriodicBounaryEnteringMPIDomainTest::setupInitialConditions(), SubcriticalMaserBoundaryTESTMPI2Test::setupInitialConditions(), TwoByTwoMPIDomainMPI4Test::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), ParameterStudy1DDemo::setupInitialConditions(), ParameterStudy2DDemo::setupInitialConditions(), ParameterStudy3DDemo::setupInitialConditions(), StressStrainControl::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), FiveParticles::setupInitialConditions(), Cstatic2d::setupInitialConditions(), Cstatic3D::setupInitialConditions(), AngleOfRepose::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), SquarePacking::setupInitialConditions(), DPM::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), MembraneSelfTest::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), SphericalIndenter::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), ScalingTestRun::setupInitialConditions(), Contact::setupInitialConditions(), Wall::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), GranularCollapse::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), ShapesDemo::setupInitialConditions(), VisualisationTest::setupInitialConditions(), MercuryProblem::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial1::setupInitialConditions(), Tutorial2::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial5::setupInitialConditions(), Tutorial6::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), Tutorial9::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), AngledPeriodicBoundaryUnitTest::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), FreeFall::setupInitialConditions(), FullRestartTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MpiMaserChuteTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWalls::setupInitialConditions(), MovingWallTangential::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), TangentialSpringEnergyConservationUnitTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), BaseCluster::setupInitialConditions(), ChuteBottom::setupInitialConditions(), ContactDetectionWithWallTester::setupParticleAndWall(), ContactDetectionTester::setupParticles(), Siegen::Siegen(), SingleParticle< SpeciesType >::SingleParticle(), SingleParticleIndenter::SingleParticleIndenter(), SinterPair::SinterPair(), Slide::Slide(), statistics_while_running< T >::statistics_while_running(), StressStrainControl::StressStrainControl(), FlowFrontChute::stretch(), synchroniseParticle(), ContactDetectionNormalSpheresTest::test(), InertiaTensorTester::test(), VolumeTest::test(), HertzContactRestitutionUnitTest::test(), PeriodicBoundaryHandler::updateMaserParticle(), PeriodicBoundaryHandler::updateParticleStatus(), viscoElasticUnitTest::viscoElasticUnitTest(), write(), BaseCluster::writeAmatFile(), writeEneTimeStep(), LawinenBox::writeEneTimeStep(), Drum::writeEneTimeStep(), Penetration::writeEneTimeStep(), Silo::writeEneTimeStep(), Slide::writeEneTimeStep(), SingleParticle< SpeciesType >::writeEneTimeStep(), writeFstatHeader(), Calibration::writePSDToFile(), and BaseCluster::writeToOverlFile().
PeriodicBoundaryHandler DPMBase::periodicBoundaryHandler |
Internal handler that deals with periodic boundaries, especially in a parallel build.
Referenced by BoundaryHandler::addObject(), checkInteractionWithBoundaries(), constructor(), deleteGhostParticles(), DPMBase(), ParticleHandler::getNumberOfRealObjectsLocal(), BaseParticle::getPeriodicComplexity(), initialiseSolve(), insertGhostParticle(), performGhostParticleUpdate(), read(), BaseParticle::setPeriodicComplexity(), and updateGhostGrid().
RNG DPMBase::random |
This is a random generator, often used for setting up the initial conditions etc...
Referenced by SmoothChute::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), NautaMixer::addParticles(), HeaterBoundary::checkBoundaryAfterParticleMoved(), FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), InsertionBoundary::checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), BaseCluster::computeInternalStructure(), constructor(), LawinenBox::create_inflow_particle(), ChutePeriodic::create_inflow_particle(), ChuteWithContraction::create_inflow_particle(), ChuteWithVerticalHopper::create_inflow_particle(), Funnel::create_inflow_particle(), AngleOfRepose::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), SegregationWithHopper::create_inflow_particle(), Slide::create_rough_wall(), Chute::createBottom(), CurvyChute::createBottom(), Chute::createFlowParticle(), DPMBase(), InitialConditions< SpeciesType >::InitialConditions(), HorizontalMixer::introduceParticlesInDomain(), LawinenBox::LawinenBox(), main(), BaseCluster::particleInsertionSuccessful(), particleParticleTest(), MD_demo::RandomRadius(), read(), readNextArgument(), BaseCluster::setRadii(), ClosedCSCWalls::setupInitialConditions(), CSCInit::setupInitialConditions(), CSCWalls::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), NozzleDemo::setupInitialConditions(), Binary::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), FiveParticles::setupInitialConditions(), Cstatic2d::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), ParticleCreation::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), ScalingTestInitialConditionsRelax::setupInitialConditions(), Contact::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), Tutorial11::setupInitialConditions(), MD_demo::setupInitialConditions(), MpiMaserChuteTest::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), ChuteBottom::setupInitialConditions(), wallParticleTest(), and write().
|
private |
Determines if the last column of the data file is interpreted as the info parameter during restart.
Referenced by constructor(), DPMBase(), readNextArgument(), readNextDataFile(), and readSpeciesFromDataFile().
|
private |
A bool to check if the simulation was restarted or not, ie. if setupInitialConditionsShould be run and the fileCounters reset.
Referenced by DPMBase(), getRestarted(), and setRestarted().
File DPMBase::restartFile |
An instance of class File to handle in- and output into a .restart file.
Referenced by BaseCluster::actionsOnRestart(), BoundariesSelfTest::BoundariesSelfTest(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCStats::ClosedCSCStats(), closeFiles(), commandLineCG(), ChuteBottom::constructor(), constructor(), CSCRestart::CSCRestart(), CSCStats::CSCStats(), CGHandler::evaluateRestartFiles(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), ForceLawsMPI2Test::ForceLawsMPI2Test(), CLiveStatistics< T >::getLiveStatistics(), getRestartFile(), Indenter::Indenter(), InitialConditions< SpeciesType >::InitialConditions(), initialiseSolve(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), main(), read(), readNextArgument(), Mercury3DRestart::readNextArgument(), readOld(), readRestartFile(), resetFileCounter(), CGHandler::restart(), FlowRule::run(), statistics_while_running< T >::run(), AngleOfRepose::run(), CSCInit::save(), ClosedCSCWalls::saveWalls(), CSCWalls::saveWalls(), setFileType(), setLastSavedTimeStep(), setLogarithmicSaveCount(), setName(), setOpenMode(), Calibration::setOutput(), setSaveCount(), ClosedCSCStats::setupInitialConditions(), CSCRun::setupInitialConditions(), CSCStats::setupInitialConditions(), MarbleRun::setupInitialConditions(), ChutePeriodic::setupInitialConditions(), Cstatic3D::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), BaseCluster::setupInitialConditions(), SilbertPeriodic::SilbertPeriodic(), SingleParticle< SpeciesType >::SingleParticle(), statistics_while_running< T >::statistics_while_running(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), Tutorial11::Tutorial11(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), write(), writeOutputFiles(), and writeRestartFile().
|
private |
Previous versions of MercuryDPM had a different restart file format, the below member variable allows one to specify the version in order to choose between the available version support.
Referenced by DPMBase(), getRestartVersion(), read(), and setRestartVersion().
|
private |
A flag to turn on/off particle rotation. true
will enable particle rotation. false
will disable particle rotation.
Referenced by DPMBase(), getRotation(), and setRotation().
|
private |
This stores the run number for saving.
Referenced by constructor(), DPMBase(), getRunNumber(), read(), setRunNumber(), and write().
SpeciesHandler DPMBase::speciesHandler |
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Referenced by ShiftingConstantMassFlowMaserBoundarySelfTest::actionsAfterTimeStep(), ShiftingMaserBoundarySelfTest::actionsAfterTimeStep(), DropletBoundary::actionsBeforeTimeLoop(), SmoothChute::actionsBeforeTimeStep(), Chutebelt::actionsOnRestart(), NautaMixer::addBaseWall(), NautaMixer::addConeWall(), ChuteWithPeriodicInflow::AddContinuingBottom(), ChuteWithHopper::addHopper(), InteractionHandler::addInteraction(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), BaseWall::addParticlesAtWall(), ConstantMassFlowMaserBoundary::addParticleToMaser(), SubcriticalMaserBoundary::addParticleToMaser(), NautaMixer::addScrew(), NautaMixer::addSpeciesAndSetTimeStepAndSaveCount(), NautaMixer::addTopWall(), AngledPeriodicBoundarySecondUnitTest::AngledPeriodicBoundarySecondUnitTest(), AngledPeriodicBoundaryUnitTest::AngledPeriodicBoundaryUnitTest(), AngleOfRepose::AngleOfRepose(), AreaVTK::AreaVTK(), BouncingSuperQuadric::BouncingSuperQuadric(), BoundariesSelfTest::BoundariesSelfTest(), BaseCluster::calculateTimeStep(), CGBasicSelfTest::CGBasicSelfTest(), FixedClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), RandomClusterInsertionBoundary::checkBoundaryBeforeTimeStep(), checkSettings(), ChutePeriodicDemo::ChutePeriodicDemo(), ChuteWithPeriodicInflowAndContinuingBottom::ChuteWithPeriodicInflowAndContinuingBottom(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ChuteWithPeriodicInflowAndVariableBottom::ChuteWithPeriodicInflowAndVariableBottom(), ClosedCSCWalls::ClosedCSCWalls(), ChuteWithPeriodicInflow::computeInternalForces(), BaseCluster::computeInternalStructure(), constructor(), Contact::Contact(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), copyDataFromMPIParticleToParticle(), ChutePeriodic::create_inflow_particle(), FlowRule::create_inflow_particle(), SilbertPeriodic::create_inflow_particle(), AngleOfRepose::createBaseSpecies(), SilbertPeriodic::createBaseSpecies(), Chute::createBottom(), CurvyChute::createBottom(), InteractionHandler::createEmptyInteraction(), Chute::createFlowParticle(), ParameterStudy1DDemo::createSpecies(), ParameterStudy2DDemo::createSpecies(), ParameterStudy3DDemo::createSpecies(), MercuryProblem::createTriangleWall(), CSCInit::CSCInit(), CSCWalls::CSCWalls(), decompose(), InteractionHandler::deleteEmptyInteraction(), DPM::DPM(), DPMBase(), fillDomainWithParticles(), FluxAndPeriodicBoundarySelfTest::FluxAndPeriodicBoundarySelfTest(), FluxBoundarySelfTest::FluxBoundarySelfTest(), ForceLawsMPI2Test::ForceLawsMPI2Test(), FlowRule::getDensityVariation(), NurbsWall::getDistanceAndNormal(), Screw::getDistanceAndNormal(), IntersectionOfWalls::getDistanceAndNormal(), InteractionHandler::getInteraction(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), GranularCollapse::GranularCollapse(), Hertzian2DUnitTest::Hertzian2DUnitTest(), HertzianSinterForceUnitTest::HertzianSinterForceUnitTest(), Indenter::Indenter(), inflowFromPeriodic::inflowFromPeriodic(), InitialConditions< SpeciesType >::InitialConditions(), MembraneDemo::initializeSpecies(), MembraneSelfTest::initializeSpecies(), InsertionBoundaryMPI2Test::InsertionBoundaryMPI2Test(), InsertionBoundarySelfTest::InsertionBoundarySelfTest(), ChuteWithPeriodicInflow::integrateBeforeForceComputation(), inflowFromPeriodic::integrateBeforeForceComputation(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), HorizontalMixer::introduceSingleParticle(), LawinenBox::LawinenBox(), LeesEdwardsDemo::LeesEdwardsDemo(), LiquidMigrationMPI2Test::LiquidMigrationMPI2Test(), MarbleRun::loadBigSeesaw(), ChuteWithPeriodicInflow::loadPeriodicBox(), MarbleRun::loadSmallSeesaw(), MarbleRun::loadSTLFile(), main(), ChuteBottom::makeRoughBottom(), MarbleRun::MarbleRun(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MD_demo::MD_demo(), MercuryCGSelfTest::MercuryCGSelfTest(), MinimalExampleDrum::MinimalExampleDrum(), MovingIntersectionOfWallsUnitTest_Basic::MovingIntersectionOfWallsUnitTest_Basic(), MovingWall::MovingWall(), MultiParticlesInsertion::MultiParticlesInsertion(), ParticleBeam::ParticleBeam(), ParticleCreation::ParticleCreation(), ParticleInclusion::ParticleInclusion(), BaseCluster::particleInsertionSuccessful(), ParticleParticleCollision::ParticleParticleCollision(), ParticleParticleInteraction::ParticleParticleInteraction(), ParticleParticleInteractionWithPlasticForces::ParticleParticleInteractionWithPlasticForces(), ParticleWallInteraction::ParticleWallInteraction(), PlasticForceUnitTest::PlasticForceUnitTest(), ShearStage::printTime(), protectiveWall::protectiveWall(), FileReader::read(), ConstantMassFlowMaserBoundary::read(), SubcriticalMaserBoundary::read(), Membrane::read(), MembraneDemo::read(), MembraneSelfTest::read(), read(), readNextDataFile(), readNextFStatFile(), readOld(), readParAndIniFiles(), CurvyChute::recreateBottom(), regimeForceUnitTest::regimeForceUnitTest(), CGHandler::restart(), runFreeFall(), Cstatic2d::set_particle_properties(), Cstatic3D::set_particle_properties(), FlowRule::setDensityVariation(), AxisymmetricWallSelfTest::setGeometry(), BaseParticle::setIndSpecies(), MercuryOS::setMaterialProperties(), BaseCluster::setSpecies(), Calibration::setSpecies(), Material::setSpecies(), AxisymmetricWallSelfTest::setSpeciesAndTimeStep(), MercuryProblem::setSpeciesProperties(), ChutePeriodic::setup(), ExtremeOverlapUnitTest::setupInitialConditions(), ExtremeOverlapVolumeUnitTest::setupInitialConditions(), LawinenBox::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), free_cooling::setupInitialConditions(), restart::setupInitialConditions(), HorizontalMixer::setupInitialConditions(), NozzleDemo::setupInitialConditions(), Drum::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), Chain::setupInitialConditions(), ForceLawsMPI2Test::setupInitialConditions(), InsertionBoundaryMPI2Test::setupInitialConditions(), LiquidMigrationMPI2Test::setupInitialConditions(), MaserRepeatedOutInMPI2Test::setupInitialConditions(), PeriodicBounaryEnteringMPIDomainTest::setupInitialConditions(), SubcriticalMaserBoundaryTESTMPI2Test::setupInitialConditions(), TwoByTwoMPIDomainMPI4Test::setupInitialConditions(), CubicCell::setupInitialConditions(), FreeCooling2DinWalls::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DDemoProblem::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), FreeCoolingDemoProblem::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), LeesEdwardsDemo::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), ParameterStudy1DDemo::setupInitialConditions(), ParameterStudy2DDemo::setupInitialConditions(), ParameterStudy3DDemo::setupInitialConditions(), StressStrainControl::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), TimeDependentPeriodicBoundary3DSelfTest::setupInitialConditions(), TimeDependentPeriodicBoundaryTest::setupInitialConditions(), FiveParticles::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), MyCoil::setupInitialConditions(), Nurbs::setupInitialConditions(), Polygon::setupInitialConditions(), Silo::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), CubeDeletionBoundarySelfTest::setupInitialConditions(), DeletionBoundarySelfTest::setupInitialConditions(), DistributionSelfTest::setupInitialConditions(), DistributionToPSDSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), LeesEdwardsSelfTest::setupInitialConditions(), MultiplePSDSelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), clumpTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), PSDManualInsertionSelfTest::setupInitialConditions(), PSDSelfTest::setupInitialConditions(), SubcriticalMaserBoundarySelfTest::setupInitialConditions(), CGBasicSelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), CGStaticBalanceSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), SquarePacking::setupInitialConditions(), DPM::setupInitialConditions(), ChargedBondedInteractionSelfTest::setupInitialConditions(), ParticleParticleCollision::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), SphericalIndenter::setupInitialConditions(), Contact::setupInitialConditions(), Wall::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), SlidingSpheresUnitTest::setupInitialConditions(), SphericalSuperQuadricCollision::setupInitialConditions(), ContactDetectionNormalSpheresTest::setupInitialConditions(), ContactDetectionRotatedSpheresTest::setupInitialConditions(), ShapesDemo::setupInitialConditions(), VisualisationTest::setupInitialConditions(), MercuryProblem::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial1::setupInitialConditions(), Tutorial2::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial5::setupInitialConditions(), Tutorial6::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), Tutorial9::setupInitialConditions(), ParticleParticleInteraction::setupInitialConditions(), ParticleParticleInteractionWithPlasticForces::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), AngledPeriodicBoundarySecondUnitTest::setupInitialConditions(), AngledPeriodicBoundaryUnitTest::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), Packing::setupInitialConditions(), CreateDataAndFStatFiles::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), DrivenParticleClass::setupInitialConditions(), EnergyUnitTest::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), RandomClusterInsertionBoundarySelfTest::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), FreeFall::setupInitialConditions(), FullRestartTest::setupInitialConditions(), HertzContactRestitutionUnitTest::setupInitialConditions(), HertzianSinterForceUnitTest::setupInitialConditions(), MD_demo::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MpiMaserChuteTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWalls::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), PeriodicWalls::setupInitialConditions(), PeriodicWallsWithSlidingFrictionUnitTest::setupInitialConditions(), PlasticForceUnitTest::setupInitialConditions(), SaveCountUnitTest::setupInitialConditions(), SeparateFilesSelfTest::setupInitialConditions(), SinterForceUnitTest::setupInitialConditions(), SpeciesTest::setupInitialConditions(), TangentialSpringEnergyConservationUnitTest::setupInitialConditions(), TangentialSpringUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), BaseCluster::setupInitialConditions(), Chute::setupInitialConditions(), ChuteBottom::setupInitialConditions(), ChuteWithHopper::setupInitialConditions(), ContactDetectionWithWallTester::setupParticleAndWall(), ContactDetectionTester::setupParticles(), Chute::setupSideWalls(), Siegen::Siegen(), SilbertPeriodic::SilbertPeriodic(), SingleParticle< SpeciesType >::SingleParticle(), Sintering::Sintering(), SinterPair::SinterPair(), statistics_while_running< T >::statistics_while_running(), StressStrainControl::StressStrainControl(), SubcriticalMaserBoundaryTESTMPI2Test::SubcriticalMaserBoundaryTESTMPI2Test(), T_protectiveWall::T_protectiveWall(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), BoundingRadiusTester::test(), InertiaTensorTester::test(), VolumeTest::test(), ShapeGradientHessianTester::testCushion(), ShapeGradientHessianTester::testEllipsoid(), ShapeGradientHessianTester::testRoundedBeam(), ShapeGradientHessianTester::testSphere(), TimeDependentPeriodicBoundary3DSelfTest::TimeDependentPeriodicBoundary3DSelfTest(), TimeDependentPeriodicBoundaryTest::TimeDependentPeriodicBoundaryTest(), TriangulatedScrewSelfTest::TriangulatedScrewSelfTest(), TriangulatedStepSelfTest::TriangulatedStepSelfTest(), TriangulatedWallSelfTest::TriangulatedWallSelfTest(), TwoByTwoMPIDomainMPI4Test::TwoByTwoMPIDomainMPI4Test(), viscoElasticUnitTest::viscoElasticUnitTest(), Wall::Wall(), and write().
File DPMBase::statFile |
An instance of class File to handle in- and output into a .stat file.
Referenced by ClosedCSCStats::ClosedCSCStats(), closeFiles(), ChuteWithPeriodicInflow::computeInternalForces(), constructor(), CSCStats::CSCStats(), getStatFile(), main(), read(), readNextArgument(), readOld(), resetFileCounter(), setFileType(), setLogarithmicSaveCount(), setName(), setOpenMode(), setSaveCount(), and write().
|
private |
The dimensions of the simulation i.e. 2D or 3D.
Referenced by checkSettings(), DPMBase(), getSystemDimensions(), read(), readOld(), setParticleDimensions(), and setSystemDimensions().
|
private |
Stores the current simulation time.
Referenced by computeOneTimeStep(), DPMBase(), getNextTime(), getTime(), read(), readNextDataFile(), readOld(), Binary::setSwitchPlateAmplitude(), and setTime().
|
private |
Stores the duration of the simulation.
Referenced by DPMBase(), getTimeMax(), read(), readOld(), and setTimeMax().
|
private |
Stores the simulation time step.
Referenced by computeOneTimeStep(), constructor(), DPMBase(), getNextTime(), getTimeStep(), read(), readOld(), and setTimeStep().
|
private |
Referenced by constructor(), DPMBase(), getVtkWriter(), read(), resetFileCounter(), setParticlesWriteVTK(), setSuperquadricParticlesWriteVTK(), write(), writeVTKFiles(), and ~DPMBase().
|
private |
Referenced by read(), resetFileCounter(), write(), and writeVTKFiles().
WallHandler DPMBase::wallHandler |
An object of the class WallHandler. Contains pointers to all the walls created.
Referenced by T_protectiveWall::actionsAfterTimeStep(), GranuHeap::actionsAfterTimeStep(), multiParticleT1::actionsAfterTimeStep(), NozzleDemo::actionsAfterTimeStep(), MaserRepeatedOutInMPI2Test::actionsAfterTimeStep(), HourGlass2D::actionsAfterTimeStep(), HourGlass::actionsAfterTimeStep(), MarbleRun::actionsAfterTimeStep(), MinimalExampleDrum::actionsAfterTimeStep(), ShiftingConstantMassFlowMaserBoundarySelfTest::actionsAfterTimeStep(), ShiftingMaserBoundarySelfTest::actionsAfterTimeStep(), vibratedBed::actionsAfterTimeStep(), Chutebelt::actionsAfterTimeStep(), NozzleSelfTest::actionsAfterTimeStep(), GranularCollapse::actionsAfterTimeStep(), MercuryProblem::actionsAfterTimeStep(), protectiveWall::actionsAfterTimeStep(), Tutorial11::actionsAfterTimeStep(), LawinenBox::actionsBeforeTimeStep(), Slide::actionsBeforeTimeStep(), DrumRot::actionsBeforeTimeStep(), RotatingDrum::actionsBeforeTimeStep(), DrumRot::actionsOnRestart(), NautaMixer::addBaseWall(), VerticalMixerStraightBlades::addBlades(), VerticalMixerAngledBlades::addBlades(), NautaMixer::addConeWall(), ChuteWithHopper::addHopper(), NautaMixer::addParticles(), NautaMixer::addParticlesAtWall(), VerticalMixerAngledBlades::addPrettyBlades(), NautaMixer::addScrew(), NautaMixer::addTopWall(), AxisymmetricWallSelfTest::AxisymmetricWallSelfTest(), DropletBoundary::checkBoundaryAfterParticlesMove(), checkParticleForInteractionLocal(), MercuryBase::checkParticleForInteractionLocal(), checkSettings(), ChuteWithContraction::ChuteWithContraction(), ChuteWithPeriodicInflowAndContraction::ChuteWithPeriodicInflowAndContraction(), ClosedCSCRestart::ClosedCSCRestart(), ClosedCSCRun::ClosedCSCRun(), ClosedCSCWalls::ClosedCSCWalls(), computeAllForces(), Mercury3Dclump::computeAllForces(), DPM::computeAllForcesNoHGrid(), computeOneTimeStep(), constructor(), ContractionWithPeriodicInflow::ContractionWithPeriodicInflow(), Slide::create_rough_wall(), Funnel::create_walls(), Chute::createBottom(), MercuryProblem::createTriangleWall(), CSCWalls::CSCWalls(), DPMBase(), CGHandler::evaluateRestartFiles(), getWallsWriteVTK(), GranuDrum::GranuDrum(), GranuHeap::GranuHeap(), handleParticleAddition(), handleParticleRemoval(), HorizontalMixer::HorizontalMixer(), InitialConditions< SpeciesType >::InitialConditions(), initialiseSolve(), integrateAfterForceComputation(), integrateBeforeForceComputation(), HorizontalMixer::introduceParticlesAtWall(), ContactDetectionIntersectionOfWallsTest::introduceParticlesAtWall(), HorizontalMixer::introduceParticlesInDomain(), load(), MarbleRun::loadBigSeesaw(), MarbleRun::loadSmallSeesaw(), MarbleRun::loadSTLFile(), main(), MaserRepeatedOutInMPI2Test::MaserRepeatedOutInMPI2Test(), MercuryCGSelfTest::MercuryCGSelfTest(), MovingWall::MovingWall(), MovingWalls::MovingWalls(), ParticleCreation::ParticleCreation(), PeriodicBoundaryHandler::processLocalInteractionData(), PeriodicBoundaryHandler::processReceivedInteractionData(), Domain::processReceivedInteractionData(), protectiveWall::protectiveWall(), FileReader::read(), Membrane::read(), read(), Funnel::read(), readNextFStatFile(), readOld(), readParAndIniFiles(), save(), ContractionWithPeriodicInflow::set_symmetric_contraction(), ChuteWithPeriodicInflowAndContraction::set_symmetric_contraction(), ChuteWithContraction::set_symmetric_contraction(), Slide::set_Walls(), AxisymmetricWallSelfTest::setGeometry(), HorizontalMixer::setOuterWalls(), HorizontalMixerWalls::setOuterWalls(), Calibration::setOutput(), HorizontalMixer::setScrewCore(), HorizontalMixerWalls::setScrewCore(), HorizontalMixer::setScrewWalls(), BaseWall::setSpecies(), T_protectiveWall::setupInitialConditions(), LawinenBox::setupInitialConditions(), ClosedCSCWalls::setupInitialConditions(), MercuryLogo::setupInitialConditions(), SmoothChute::setupInitialConditions(), multiParticleT1::setupInitialConditions(), NautaMixer::setupInitialConditions(), NozzleDemo::setupInitialConditions(), RotatingDrumWet::setupInitialConditions(), VerticalMixer::setupInitialConditions(), Binary::setupInitialConditions(), my_problem::setupInitialConditions(), Chain::setupInitialConditions(), MaserRepeatedOutInMPI2Test::setupInitialConditions(), PeriodicBounaryEnteringMPIDomainTest::setupInitialConditions(), FreeCooling2DinWallsDemo::setupInitialConditions(), FreeCooling3DinWallsDemo::setupInitialConditions(), HeaterBoundaryTest::setupInitialConditions(), HourGlass2D::setupInitialConditions(), HourGlass::setupInitialConditions(), MarbleRun::setupInitialConditions(), MinimalExampleDrum::setupInitialConditions(), ShiftingConstantMassFlowMaserBoundarySelfTest::setupInitialConditions(), ShiftingMaserBoundarySelfTest::setupInitialConditions(), Cstatic2d::setupInitialConditions(), AngleOfRepose::setupInitialConditions(), SilbertPeriodic::setupInitialConditions(), statistics_while_running< T >::setupInitialConditions(), GetDistanceAndNormalForIntersectionOfWalls::setupInitialConditions(), GetDistanceAndNormalForScrew::setupInitialConditions(), GetDistanceAndNormalForTriangleWall::setupInitialConditions(), MyCoil::setupInitialConditions(), Nurbs::setupInitialConditions(), Polygon::setupInitialConditions(), Drum::setupInitialConditions(), HertzSelfTest::setupInitialConditions(), MindlinSelfTest::setupInitialConditions(), Penetration::setupInitialConditions(), Silo::setupInitialConditions(), Chutebelt::setupInitialConditions(), ConstantMassFlowMaserBoundaryMixedSpeciesSelfTest::setupInitialConditions(), ConstantMassFlowMaserSelfTest::setupInitialConditions(), InsertionBoundarySelfTest::setupInitialConditions(), NozzleSelfTest::setupInitialConditions(), PolydisperseInsertionBoundarySelfTest::setupInitialConditions(), CGHandlerSelfTest::setupInitialConditions(), NewtonsCradleSelftest::setupInitialConditions(), NewtonsCradleSelfTest::setupInitialConditions(), SquarePacking::setupInitialConditions(), ChargedBondedParticleUnitTest::setupInitialConditions(), WallParticleCollision::setupInitialConditions(), my_problem_HGRID::setupInitialConditions(), FreeFallInteractionSelfTest::setupInitialConditions(), FreeFallSelfTest::setupInitialConditions(), HertzianBSHPInteractionTwoParticleElasticCollision::setupInitialConditions(), LiquidMigrationSelfTest::setupInitialConditions(), DPM::setupInitialConditions(), ObliqueImpactSelfTest::setupInitialConditions(), TwoBondedParticleElasticCollision::setupInitialConditions(), TwoParticleElasticCollisionInteraction::setupInitialConditions(), TwoParticleElasticCollision::setupInitialConditions(), AxisymmetricWallSelfTest::setupInitialConditions(), CoilSelfTest::setupInitialConditions(), ContactDetectionIntersectionOfWallsTest::setupInitialConditions(), GetDistanceAndNormalForTriangleWalls::setupInitialConditions(), RollingOverTriangleWalls::setupInitialConditions(), TriangulatedScrewSelfTest::setupInitialConditions(), TriangulatedStepSelfTest::setupInitialConditions(), TriangulatedStepWallSelfTest::setupInitialConditions(), TriangulatedWallSelfTest::setupInitialConditions(), UnionOfWalls::setupInitialConditions(), DrumRot::setupInitialConditions(), RotatingDrum::setupInitialConditions(), Wall::setupInitialConditions(), BouncingSuperQuadric::setupInitialConditions(), EllipsoidsBouncingOnWallDemo::setupInitialConditions(), GranularCollapse::setupInitialConditions(), EllipticalSuperQuadricCollision::setupInitialConditions(), protectiveWall::setupInitialConditions(), Tutorial11::setupInitialConditions(), Tutorial12::setupInitialConditions(), Tutorial3::setupInitialConditions(), Tutorial4::setupInitialConditions(), Tutorial7::setupInitialConditions(), Tutorial8::setupInitialConditions(), Tutorial9::setupInitialConditions(), ParticleWallInteraction::setupInitialConditions(), ArcWallUnitTest::setupInitialConditions(), EvaporationAndHeatTest::setupInitialConditions(), ExtremeOverlapWithWallsUnitTest::setupInitialConditions(), FreeFallHertzMindlinUnitTest::setupInitialConditions(), FreeFall::setupInitialConditions(), FullRestartTest::setupInitialConditions(), InclinedPlane::setupInitialConditions(), MpiMaserChuteTest::setupInitialConditions(), MovingIntersectionOfWallsUnitTest_Basic::setupInitialConditions(), MovingWalls::setupInitialConditions(), MultiParticlesInsertion::setupInitialConditions(), MpiPeriodicBoundaryUnitTest::setupInitialConditions(), WallSpecies::setupInitialConditions(), AreaVTK::setupInitialConditions(), ChuteBottom::setupInitialConditions(), MercuryProblem::setupMercuryProblem(), ContactDetectionWithWallTester::setupParticleAndWall(), Chute::setupSideWalls(), setWallsWriteVTK(), Slide::Slide(), FlowFrontChute::stretch(), T_protectiveWall::T_protectiveWall(), TangentialSpringEnergyConservationUnitTest::TangentialSpringEnergyConservationUnitTest(), Tutorial11::Tutorial11(), write(), LawinenBox::writeEneTimeStep(), Slide::writeEneTimeStep(), writePythonFileForVTKVisualisation(), and writeVTKFiles().
|
private |
Referenced by getWallVTKWriter(), read(), resetFileCounter(), write(), and writeVTKFiles().
|
private |
A flag to turn on/off the vtk writer for particles.
Referenced by constructor(), DPMBase(), getParticlesWriteVTK(), setParticlesWriteVTK(), setSuperquadricParticlesWriteVTK(), and write().
|
private |
|
private |
A string of additional arguments for xballs can be specified (see XBalls/xballs.txt). e.g. "-solidf -v0".
Referenced by constructor(), DPMBase(), getXBallsAdditionalArguments(), and setXBallsAdditionalArguments().
|
private |
XBalls is a package to view the particle data. As an alternative MercuryDPM also supports ParaView. The below variable is used to set the argument cmode in xballs script (see XBalls/xballs.txt)
Referenced by constructor(), DPMBase(), getXBallsColourMode(), and setXBallsColourMode().
|
private |
sets the xballs argument scale (see XBalls/xballs.txt)
Referenced by constructor(), DPMBase(), getXBallsScale(), and setXBallsScale().
|
private |
sets the xballs argument vscale (see XBalls/xballs.txt)
Referenced by constructor(), DPMBase(), getXBallsVectorScale(), and setXBallsVectorScale().