ExtremeOverlapWithWallsUnitTest.cpp File Reference
#include "DPMBase.h"
#include "Walls/InfiniteWall.h"
#include <iostream>
#include <Species/LinearViscoelasticSpecies.h>
#include <Logger.h>

Classes

class  ExtremeOverlapWithWallsUnitTest
 Compresses 2 particles (vertically) until they have an extreme overlap. More...
 

Functions

int main (int argc, char *argv[])
 

Function Documentation

◆ main()

int main ( int argc  ,
char argv[] 
)

Start off my solving the default problem

109 {
111  ExtremeOverlapWithWallsUnitTest OverlapProblem;
112  auto species = OverlapProblem.speciesHandler.copyAndAddObject(LinearViscoelasticSpecies());
113  species->setDensity(2000);
114  species->setStiffness(1e5);
115  species->setDissipation(1e-2);
116  OverlapProblem.setName("ExtremeOverlapWithWallsUnitTest");
117  OverlapProblem.setFileType(FileType::NO_FILE);
118  OverlapProblem.dataFile.setFileType(FileType::ONE_FILE);
119  //OverlapProblem.setWallsWriteVTK(true);
120  //OverlapProblem.setParticlesWriteVTK(true);
121  OverlapProblem.setSaveCount(1000);
122  OverlapProblem.setDimension(3);
123  OverlapProblem.setTimeStep(1e-7);
124  OverlapProblem.setTimeMax(0.01);
125  // OverlapProblem.dataFile.getFstream().precision(10);
126  OverlapProblem.solve(argc,argv);
127 
128  Vec3D position = OverlapProblem.particleHandler.getObject(0)->getPosition();
129  helpers::check(position,Vec3D(0.00402345, 0, 0), 1e-8,"First particle position");
130 
131  position = OverlapProblem.particleHandler.getObject(1)->getPosition();
132  helpers::check(position,Vec3D(0.00901182, 0, 0), 1e-8,"Second particle position");
133 
134  return 0;
135 }
@ NO_FILE
file will not be created/read
@ ONE_FILE
all data will be written into/ read from a single file called name_
Species< LinearViscoelasticNormalSpecies > LinearViscoelasticSpecies
Definition: LinearViscoelasticSpecies.h:33
std::enable_if<!std::is_pointer< U >::value, U * >::type copyAndAddObject(const U &object)
Creates a copy of a Object and adds it to the BaseHandler.
Definition: BaseHandler.h:379
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition: BaseHandler.h:613
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
Definition: BaseInteractable.h:218
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:408
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1427
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:422
void setDimension(unsigned int newDim)
Sets both the system dimensions and the particle dimensionality.
Definition: DPMBase.cc:1403
File dataFile
An instance of class File to handle in- and output into a .data file.
Definition: DPMBase.h:1478
void setFileType(FileType fileType)
Sets File::fileType_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:459
ParticleHandler particleHandler
An object of the class ParticleHandler, contains the pointers to all the particles created.
Definition: DPMBase.h:1437
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition: DPMBase.cc:1234
void setTimeMax(Mdouble newTMax)
Sets a new value for the maximum simulation duration.
Definition: DPMBase.cc:873
void solve()
The work horse of the code.
Definition: DPMBase.cc:4270
Compresses 2 particles (vertically) until they have an extreme overlap.
Definition: ExtremeOverlapWithWallsUnitTest.cpp:55
void setFileType(FileType fileType)
Sets the type of file needed to write into or read from. File::fileType_.
Definition: File.cc:215
Definition: Vector.h:51
void check(double real, double ideal, double error, std::string errorMessage)
Definition: TestHelpers.cc:37

References helpers::check(), BaseHandler< T >::copyAndAddObject(), DPMBase::dataFile, BaseHandler< T >::getObject(), BaseInteractable::getPosition(), NO_FILE, ONE_FILE, DPMBase::particleHandler, DPMBase::setDimension(), DPMBase::setFileType(), File::setFileType(), DPMBase::setName(), DPMBase::setSaveCount(), DPMBase::setTimeMax(), DPMBase::setTimeStep(), DPMBase::solve(), and DPMBase::speciesHandler.