Domino.cpp File Reference

Classes

struct  dominoes
 
class  ChangingTOIParticle
 

Functions

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

Variables

dominoes D
 

Function Documentation

◆ main()

int main ( int argc  ,
char argv[] 
)
186 {
187 
188  int NumParams = 1;
189 
190  // Get parameters passed through the command line
191  /*
192  std::vector <Mdouble> params(0);
193  for (int i = 0; i<NumParams; i++) {
194  std::string a;
195  Mdouble param = stod(helpers::readFromCommandLine(argc, argv, "-p"+std::to_string(i), a));
196  params.push_back(param);
197  std::cout<<params[i]<<std::endl;
198  }
199 */
201 
202  // D.S_dom = 0.2 * (2 * D.k_peb * D.S_peb) + 0.8 * (2 * D.k_peb * D.S_peb) * (params[0]/100);
203 
204  // Domino species
205  auto species0 = problem.speciesHandler.copyAndAddObject(LinearViscoelasticFrictionSpecies());
206 
207  // Wall species
208  auto species1 = problem.speciesHandler.copyAndAddObject(LinearViscoelasticFrictionSpecies());
209 
210  // Mixed
211  auto species01 = problem.speciesHandler.getMixedObject(species0, species1);
212 
213 
214 
215  species0->setDensity(1.0); // sets the species type-0 density
216  //species->setConstantRestitution(0);
217  species0->setSlidingFrictionCoefficient(0.0);
218  species0->setSlidingStiffness(5e5);
219  species0->setRollingFrictionCoefficient(0.0);
220  species0->setRollingStiffness(5e5);
221  species0->setDissipation(1.0);
222  species0->setStiffness(1e6);
223  const Mdouble collisionTime = species0->getCollisionTime(D.mass);
224 
225  species01->setSlidingFrictionCoefficient(0.2);
226  species01->setSlidingStiffness(5e5);
227  species01->setRollingFrictionCoefficient(0.1);
228  species01->setDissipation(1.0);
229  species01->setRollingStiffness(5e5);
230  species01->setStiffness(1e6);
231 
232 
233 
234  problem.setClumpDamping(5);
235  problem.setTimeStep(collisionTime / 50.0);
236 
237  // Quick demonstration
238  problem.setSaveCount(500);
239  problem.setTimeMax(10);
240 
241 
242  // For time averaging featuring equipartition - takes a while
243  // problem.setSaveCount(50000);
244  // problem.setTimeMax(100000);
245 
246  problem.removeOldFiles();
247  problem.solve();
248 
249  if ((D.started)&&(D.finished)) D.velocity = D.S_peb * (D.N_fin - D.N_ini) / (D.T2-D.T1);
250 
251  std::cout<<"DOMINO VELOCITY: "<<D.velocity<<std::endl;
252  std::cout<<"N_ini: "<<D.N_ini<<std::endl;
253  std::cout<<"N_fin: "<<D.N_fin<<std::endl;
254  std::cout<<"T1: "<<D.T1<<std::endl;
255  std::cout<<"T2: "<<D.T2<<std::endl;
256 
257  // Add velocity to log
258  std::ofstream funct("velocity.txt", std::ios_base::app | std::ios_base::out);
259  funct << D.velocity <<"\n";
260  funct.close();
261 
262 
263 
264  return 0;
265 }
dominoes D
Definition: Domino.cpp:55
Species< LinearViscoelasticNormalSpecies, FrictionSpecies > LinearViscoelasticFrictionSpecies
Definition: LinearViscoelasticFrictionSpecies.h:12
Definition: ChangingTOI.cpp:37
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213
bool finished
Definition: Domino.cpp:46
Mdouble T2
Definition: Domino.cpp:48
int N_ini
Definition: Domino.cpp:43
bool started
Definition: Domino.cpp:45
Mdouble T1
Definition: Domino.cpp:47
Mdouble S_peb
Definition: Domino.cpp:23
Mdouble velocity
Definition: Domino.cpp:49
Mdouble mass
Definition: Domino.cpp:37
int N_fin
Definition: Domino.cpp:44
std::ofstream out("Result.txt")

References D, dominoes::finished, dominoes::mass, dominoes::N_fin, dominoes::N_ini, out(), problem, dominoes::S_peb, dominoes::started, dominoes::T1, dominoes::T2, and dominoes::velocity.

Variable Documentation

◆ D

Referenced by ChangingTOIParticle::actionsAfterTimeStep(), DomainHandler::addObject(), aliasing_with_resize(), bdcsvd_check_convergence(), ChangingTOIParticle::ChangingTOIParticle(), oomph::RefineableQElement< 3 >::check_integrity(), oomph::OcTreeForest::construct_up_right_equivalents(), PSD::convertPdfPhiToPdfMeter(), RachelsAdvectionDiffusion::diff_function(), Global_Physical_Variables::diff_function(), oomph::OcTree::edge_neighbour_is_face_neighbour(), EIGEN_DECLARE_TEST(), UnsteadyHeatProblem< ELEMENT >::enforce_time_periodic_boundary_conditions(), oomph::OcTree::faces_of_common_edge(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::fill_in_generic_residual_contribution_adv_diff_react(), oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >::fill_in_generic_residual_contribution_adv_diff_react(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_cons_adv_diff(), oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_cons_adv_diff(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_cons_axisym_adv_diff(), oomph::OcTreeForest::find_neighbours(), generalized_eigensolver_real(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::get_diff_cons_adv_diff(), oomph::get_diff_cons_axisym_adv_diff(), RachelsAdvectionDiffusion::get_exact_u(), oomph::RefineableQElement< 3 >::get_face_bcs(), oomph::RefineableSolidQElement< 3 >::get_face_solid_bcs(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::get_total_flux(), oomph::get_total_flux(), IntersectionOfWalls::getDistanceAndNormal(), oomph::OcTree::gteq_face_neighbour(), oomph::RefineableQElement< 3 >::interpolated_zeta_on_face(), oomph::WarpedCubeDomain::macro_element_boundary(), oomph::QuarterPipeDomain::macro_element_boundary(), oomph::QuarterTubeDomain::macro_element_boundary(), oomph::TubeDomain::macro_element_boundary(), oomph::EighthSphereDomain::macro_element_boundary(), main(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::node_created_by_neighbour(), oomph::RefineableQElement< 3 >::node_created_by_neighbour(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::node_created_by_son_of_neighbour(), oomph::RefineableQElement< 3 >::oc_hang_helper(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), oomph::GeneralisedAdvectionDiffusionEquations< 2 >::output_fct(), oomph::RefineableQSpectralElement< 3 >::rebuild_from_sons(), oomph::OcTree::rotate(), Eigen::internal::compute_inverse_size4< Architecture::Target, float, MatrixType, ResultType >::run(), oomph::RefineableQElement< 3 >::setup_hang_for_value(), oomph::RefineableQElement< 3 >::setup_hanging_nodes(), oomph::OcTree::setup_static_data(), AxisymmetricHopper::setupInitialConditions(), ChangingTOIParticle::setupInitialConditions(), test1(), test2(), test_dynamic_bool(), test_lazy_single(), and Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::vectorD().