11#ifndef MODEL_FASTDEMMODEL_H
12#define MODEL_FASTDEMMODEL_H
14#include "../modelData.h"
55 void log(std::ostringstream &oss,
int priority = 0,
bool check_condition =
true,
int override_priority = -1,
bool screen_out =
false);
68 void log(
const std::string &str,
int priority = 0,
bool check_condition =
true,
int override_priority = -1,
bool screen_out =
false);
174 std::shared_ptr<particle::RefParticle> ref_p);
177 std::shared_ptr<particle::RefParticle> ref_p);
181 const double &particle_orient,
183 const std::vector<double> &rep_geom_params,
184 const std::shared_ptr<util::geometry::GeomObject> &rep_geom_p,
185 std::shared_ptr<util::geometry::GeomObject> &p_geom);
A class for discrete element particle simulation with peridynamic model
virtual void computeExternalForces()
Computes external/boundary condition forces.
virtual void integrate()
Perform time integration.
virtual void setupContact()
Creates particles in a given container.
std::string ppCompressiveTest()
Function that handles post-processing for compressive test of particulate media by rigid wall and ret...
virtual void updatePeridynamicNeighborlist()
Update neighborlist for peridynamics force.
virtual void createGeometryAtSite(const double &particle_radius, const double &particle_orient, const util::Point &site, const std::vector< double > &rep_geom_params, const std::shared_ptr< util::geometry::GeomObject > &rep_geom_p, std::shared_ptr< util::geometry::GeomObject > &p_geom)
Creates geometrical object for a particle given particle radius, orientation, and site location.
virtual void output()
Output the snapshot of data at current time step.
virtual void applyInitialCondition()
Applies initial condition.
virtual void computeExternalDisplacementBC()
Applies displacement boundary conditions.
virtual void integrateStep()
Performs one time step.
virtual void computePeridynamicForces()
Computes peridynamic forces.
virtual void updateContactNeighborlist()
Update neighborlist for contact.
virtual void computeContactForces()
Computes contact forces.
virtual void close()
Closure operations.
virtual void updateGeometryObjectsPostInit()
Update varioud geometry objects associated with container, particles, and reference particles.
virtual void updateNeighborlistCombine()
Update neighborlist for contact and peridynamics force.
std::string ppTwoParticleTest()
Function that handles post-processing for two particle collision test and returns maximum vertical di...
void log(std::ostringstream &oss, int priority=0, bool check_condition=true, int override_priority=-1, bool screen_out=false)
Prints message if any of these two conditions are true.
virtual void integrateVerlet()
Perform time integration using velocity verlet scheme.
virtual void createParticlesFromFile(size_t z, std::shared_ptr< particle::RefParticle > ref_p)
Creates particles in a Hexagonal arrangement.
virtual void init()
Initialize remaining data members.
virtual void computeForces()
Computes peridynamic forces and contact forces.
virtual void checkStop()
Checks if simulation should be stopped due to abnormal state of system.
std::string d_name
Name of the model for logging purposes (useful if other classes are built on top of this class)
virtual void restart(inp::Input *deck)
Restarts the simulation from previous state.
virtual void integrateCD()
Perform time integration using central-difference scheme.
virtual bool updateContactNeighborSearchParameters()
Update contact neighbor search parameters.
virtual void createParticles()
Creates particles in a given container.
virtual void run(inp::Input *deck)
Main driver to simulate.
virtual void createParticleUsingParticleZoneGeomObject(size_t z, std::shared_ptr< particle::RefParticle > ref_p)
Creates particles in a given container.
virtual void setupQuadratureData()
Sets up quadrature data.
A class to store model data.
A structure to represent 3d vectors.