CoupledBeamDemo.cpp File Reference

Functions

int main ()
 [CoupledBeamDemo] More...
 

Function Documentation

◆ main()

int main ( )

[CoupledBeamDemo]

10 {
12  //set name
13  problem.setName("CoupledBeamUnitTest");
14 
15  //setup mercury
16  problem.setDomain({0,0,0},{0.16,0.04,0.01});
17  // add species
18  auto species = problem.speciesHandler.copyAndAddObject(LinearViscoelasticSpecies());
19  species->setDensity(1000);
20  species->setStiffness(5.2);
21  // add particle
22  SphericalParticle p(species);
23  p.setRadius(5e-3);
24  p.setPosition({problem.getXCenter(),problem.getYCenter(),problem.getZMax()+p.getRadius()});
25  p.setVelocity({0,0,-0.05});
26  auto particle = problem.particleHandler.copyAndAddObject(p);
27  // set time step
28  double tc = species->getCollisionTime(species->getMassFromRadius(p.getRadius()));
29  problem.setTimeStep(0.02*tc);
30 
31  // setup oomph
32  problem.setElasticModulus(1e6);
33  problem.setDensity(2500);
34  problem.setSolidCubicMesh(7, 5, 5, 0, 0.16, 0, 0.04, 0, 0.01);
35  problem.pinBoundaries({problem.Boundary::X_MIN, problem.Boundary::X_MAX});
36  problem.setNewtonSolverTolerance(3e-8);
37  problem.prepareForSolve();
38  problem.coupleBoundary(problem.Boundary::Z_MAX);
39  // sync time steps
40  problem.setOomphTimeStep(problem.getTimeStep());
41 
42  // setup time
43  problem.setTimeMax(100*problem.getTimeStep());
44 
45  // Solve the problem and save mesh
46  problem.solveSurfaceCoupling();
47  problem.saveSolidMesh();
48  return 0;
49 }
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Species< LinearViscoelasticNormalSpecies > LinearViscoelasticSpecies
Definition: LinearViscoelasticSpecies.h:11
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: SCoupledSolidProblem.h:10
A spherical particle is the most simple particle used in MercuryDPM.
Definition: SphericalParticle.h:16
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References e(), p, and problem.