ScalingTestOldCompiler.cpp File Reference
#include <iostream>
#include <iomanip>
#include <ctime>
#include <Species/LinearViscoelasticSpecies.h>
#include "Mercury3D.h"
#include "Boundaries/PeriodicBoundary.h"
#include "Math/ExtendedMath.h"

Classes

class  ScalingTestInitialConditionsRelax
 
class  ScalingTestInitialConditionsEquilibrize
 
class  ScalingTestRun
 

Functions

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

Function Documentation

◆ main()

int main ( int argc  UNUSED,
char *argv[]  UNUSED 
)
145 {
146  ScalingTestInitialConditionsRelax scalingTestInitialConditionsRelax;
147  auto species=scalingTestInitialConditionsRelax.speciesHandler.copyAndAddObject(LinearViscoelasticSpecies());
148  scalingTestInitialConditionsRelax.N = 100;
149  scalingTestInitialConditionsRelax.initialVelocity = 2.0;
150  scalingTestInitialConditionsRelax.targetVelocity = 1.0;
151  scalingTestInitialConditionsRelax.particleRadius = 0.5;
152  scalingTestInitialConditionsRelax.setName("ScalingTestInitialConditionsRelax");
153  species->setDensity(constants::pi / 6.0);
154  scalingTestInitialConditionsRelax.setSaveCount(100);
155  species->setStiffness(2e5);
156  species->setDissipation(150);
157  scalingTestInitialConditionsRelax.setTimeStep(1e-4);
158  scalingTestInitialConditionsRelax.setTimeMax(10);
159  scalingTestInitialConditionsRelax.setGravity(Vec3D(0.0, 0.0, 0.0));
160  scalingTestInitialConditionsRelax.setHGridMaxLevels(1);
161  scalingTestInitialConditionsRelax.solve();
162 
163  ScalingTestInitialConditionsEquilibrize scalingTestInitialConditionsEquilibrize(scalingTestInitialConditionsRelax);
164  species=scalingTestInitialConditionsRelax.speciesHandler.copyAndAddObject(LinearViscoelasticSpecies());
165  scalingTestInitialConditionsEquilibrize.setName("ScalingTestInitialConditionsEquilibrize");
166  species->setDissipation(0.0);
167  scalingTestInitialConditionsEquilibrize.setSaveCount(100);
168  scalingTestInitialConditionsEquilibrize.setTimeMax(1);
169  scalingTestInitialConditionsEquilibrize.solve();
170 
171  for (unsigned int i = 1; i <= 10; i++)
172  {
173  ScalingTestRun scalingTestRun(scalingTestInitialConditionsEquilibrize);
174  std::string name = "ScalingTestRun";
175  name += std::to_string(i);
176  scalingTestRun.setName(name);
177  scalingTestRun.setMultiplicationFactor(i);
178  scalingTestRun.setSaveCount(100);
179  clock_t begin = std::clock();
180  scalingTestRun.solve();
181  clock_t end = std::clock();
182  double diff = double(end - begin) / CLOCKS_PER_SEC * 1000;
183  logger(INFO, "N=% T=%%5 ms", scalingTestRun.particleHandler.getNumberOfObjects(), std::scientific, diff);
184  }
185 
186 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Species< LinearViscoelasticNormalSpecies > LinearViscoelasticSpecies
Definition: LinearViscoelasticSpecies.h:11
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
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:360
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:386
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1433
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:400
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition: DPMBase.cc:1225
void setTimeMax(Mdouble newTMax)
Sets a new value for the maximum simulation duration.
Definition: DPMBase.cc:864
void solve()
The work horse of the code.
Definition: DPMBase.cc:4334
void setGravity(Vec3D newGravity)
Sets a new value for the gravitational acceleration.
Definition: DPMBase.cc:1374
void setHGridMaxLevels(unsigned int HGridMaxLevels)
Sets the maximum number of levels of the HGrid in this MercuryBase.
Definition: MercuryBase.cc:455
Definition: ScalingTest.cpp:77
Definition: ScalingTest.cpp:15
double initialVelocity
Definition: ScalingTest.cpp:71
double targetVelocity
Definition: ScalingTest.cpp:72
int N
Definition: ScalingTest.cpp:70
double particleRadius
Definition: ScalingTest.cpp:73
Definition: ScalingTest.cpp:87
Definition: Kernel/Math/Vector.h:30
static constexpr lastp1_t end
Definition: IndexedViewHelper.h:79
#define INFO(i)
Definition: mumps_solver.h:54
const Mdouble pi
Definition: ExtendedMath.h:23
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
std::string to_string(T object, unsigned float_precision=8)
Definition: oomph_utilities.h:189
string name
Definition: plotDoE.py:33

References BaseHandler< T >::copyAndAddObject(), e(), Eigen::placeholders::end, ParticleHandler::getNumberOfObjects(), i, INFO, ScalingTestInitialConditionsRelax::initialVelocity, logger, ScalingTestInitialConditionsRelax::N, plotDoE::name, DPMBase::particleHandler, ScalingTestInitialConditionsRelax::particleRadius, constants::pi, DPMBase::setGravity(), MercuryBase::setHGridMaxLevels(), ScalingTestRun::setMultiplicationFactor(), DPMBase::setName(), DPMBase::setSaveCount(), DPMBase::setTimeMax(), DPMBase::setTimeStep(), DPMBase::solve(), DPMBase::speciesHandler, oomph::Global_string_for_annotation::string(), ScalingTestInitialConditionsRelax::targetVelocity, and oomph::StringConversion::to_string().