MercuryDPM
0.10
|
ChuteWithHopper has a hopper as inflow. More...
#include <ChuteWithHopper.h>
Public Member Functions | |
ChuteWithHopper (Chute &other) | |
This is a copy constructor for Chute problems. More... | |
ChuteWithHopper (HGRID_3D &other) | |
ChuteWithHopper (HGRID_base &other) | |
ChuteWithHopper (MD &other) | |
ChuteWithHopper () | |
This is the default constructor. More... | |
void | constructor () |
This is the actually constructor, get called by all constructors above. More... | |
void | set_HopperFillPercentage (Mdouble new_fill) |
virtual void | setup_particles_initial_conditions () |
initialize particle position, velocity, radius More... | |
void | add_hopper () |
This creates the hopper on top of the chute, see diagram in class description for details of the points. More... | |
virtual void | create_inflow_particle () |
This creates an inflow particle in the top 50% of the hopper i.e. More... | |
void | set_HopperLowestPoint (Mdouble point) |
Mdouble | get_HopperLowestPoint () |
void | set_Hopper (Mdouble ExitLength, Mdouble ExitHeight, Mdouble Angle, Mdouble Length, Mdouble Height) |
Mdouble | get_MaximumVelocityInducedByGravity () |
Allows chute length to be accessed. More... | |
Mdouble | get_ChuteLength () |
Allows chute length to be accessed. More... | |
void | set_ChuteLength (Mdouble new_) |
Allows chute length to be changed. More... | |
void | set_centerHopper (bool new_) |
void | set_lowerFillHeight (Mdouble new_) |
void | set_shift (Mdouble new_) |
virtual void | read (std::istream &is) |
This function reads all chute data. More... | |
virtual void | write (std::ostream &os) |
This function writes all chute data. More... | |
virtual void | print (std::ostream &os) |
void | lift_hopper (Mdouble distance) |
This lifts the hopper above the plane of the chute. More... | |
Mdouble | get_lift_hopper () |
void | set_hopper_dim (Mdouble new_hopper_dim) |
void | set_align_base (bool new_align) |
int | readNextArgument (unsigned int &i, unsigned int argc, char *argv[]) |
![]() | |
Chute () | |
This is the default constructor. All it does is set sensible defaults. More... | |
Chute (MD &other) | |
Copy-constructor for creates an HGRID problem from an existing MD problem. More... | |
Chute (HGRID_base &other) | |
Chute (HGRID_3D &other) | |
void | constructor () |
This is the actual constructor; it is called do both constructors above. More... | |
void | make_chute_periodic () |
This makes the chute periodic, in y. More... | |
bool | get_IsPeriodic () |
Get wether the chute is periodic. More... | |
void | print (std::ostream &os, bool print_all=false) |
This function std::couts all chute data. More... | |
void | set_FixedParticleRadius (Mdouble new_) |
Allows radius of fixed particles to be changed. More... | |
Mdouble | get_FixedParticleRadius () |
Allows radius of fixed particles to be accessed. More... | |
void | set_RandomizedBottom (int new_) |
Changes RandomizedBottom. More... | |
int | get_RandomizedBottom () |
Accesses RandomizedBottom. More... | |
void | set_ChuteAngle (Mdouble new_) |
Sets gravity vector according to chute angle (in degrees) More... | |
void | set_ChuteAngle (Mdouble new_, Mdouble gravity) |
Sets gravity vector according to chute angle (in degrees) More... | |
Mdouble | get_ChuteAngle () |
Gets chute angle (in radians) More... | |
Mdouble | get_ChuteAngleDegrees () |
void | set_max_failed (unsigned int new_) |
Allows radius of fixed particles to be changed. More... | |
unsigned int | get_max_failed () |
Allows radius of fixed particles to be accessed. More... | |
void | set_InflowParticleRadius (Mdouble new_) |
Allows radius of inflow particles to be changed. More... | |
void | set_InflowParticleRadius (Mdouble new_min, Mdouble new_max) |
Allows radius of inflow particles to be set to a range of values. More... | |
void | set_MinInflowParticleRadius (Mdouble new_min) |
void | set_MaxInflowParticleRadius (Mdouble new_max) |
Mdouble | get_InflowParticleRadius () |
Allows radius of inflow particles to be accessed. More... | |
Mdouble | get_MinInflowParticleRadius () |
Allows radius of inflow particles to be accessed. More... | |
Mdouble | get_MaxInflowParticleRadius () |
Allows radius of inflow particles to be accessed. More... | |
void | set_InflowHeight (Mdouble new_) |
Changes inflow height. More... | |
Mdouble | get_InflowHeight () |
Accesses inflow height. More... | |
void | set_InflowVelocity (Mdouble new_) |
Changes inflow velocity. More... | |
Mdouble | get_InflowVelocity () |
Accesses inflow velocity. More... | |
void | set_InflowVelocityVariance (Mdouble new_) |
Changes inflow velocity variance. More... | |
Mdouble | get_InflowVelocityVariance () |
Accesses inflow velocity variance. More... | |
void | set_InitialHeight (Mdouble new_) |
Mdouble | get_InitialHeight () |
void | set_InitialVelocity (Mdouble new_) |
Mdouble | get_InitialVelocity () |
void | set_InitialVelocityVariance (Mdouble new_) |
Mdouble | get_InitialVelocityVariance () |
void | set_ChuteWidth (Mdouble new_) |
Access function that set the width of the chute. More... | |
Mdouble | get_ChuteWidth () |
Mdouble | get_ChuteLength () |
void | set_collision_time_and_restitution_coefficient (Mdouble tc, Mdouble eps) |
Sets k, disp such that it matches a given tc and eps for a collision of two inflow particles. More... | |
Mdouble | get_collision_time () |
Calculates collision time of two inflow particles. More... | |
Mdouble | get_restitution_coefficient () |
Calculates restitution coefficient of two inflow particles. More... | |
void | set_dt () |
Sets dt to 1/50-th of the collision time for two particles of mass P. More... | |
void | set_dt (Mdouble dt) |
Sets dt. More... | |
BaseParticle * | getSmallestParticle () |
Returns the smallest particle (by mass) in the system. More... | |
BaseParticle * | getLargestParticle () |
Returns the smallest particle (by mass) in the system. More... | |
BaseParticle * | get_P0 () |
Mdouble | get_SmallestParticleInteractionRadius () |
Returns the radius of the smallest particle. More... | |
Mdouble | get_LightestParticleMass () |
Returns the radius of the smallest particle. More... | |
![]() | |
HGRID_3D () | |
This is the default constructor. All it does is set senible defaults. More... | |
HGRID_3D (MD &other) | |
Copy-constructor for creates an HGRID problem from an existing MD problem. More... | |
HGRID_3D (HGRID_base &other) | |
void | constructor () |
This is the actually constructor it is called do both constructors above. More... | |
![]() | |
HGRID_base () | |
This is the default constructor. All it does is set senible defaults. More... | |
~HGRID_base () | |
This is the default destructor. More... | |
HGRID_base (MD &other) | |
Copy-constructor for creates an HGRID problem from an existing MD problem. More... | |
void | constructor () |
This is the actually constructor it is called do both constructors above. More... | |
void | HGRID_actions_before_time_loop () |
This sets up the broad phase information, has to be done at this stage becuase it requires the partcle size. More... | |
void | HGRID_actions_before_time_step () |
This resets all the bucket information. More... | |
void | set_HGRID_num_buckets (unsigned int new_num_buckets) |
This sets the number of buckets for the HGRID. More... | |
void | set_HGRID_num_buckets_to_power () |
set number of buckets to the smallest power of two bigger than the number of particles More... | |
void | set_HGRID_num_buckets_to_power (unsigned int N) |
set number of buckets to the smallest power of two bigger than N More... | |
void | read (std::istream &is) |
This function reads all HGRID data. More... | |
void | write (std::ostream &os) |
This function writes all HGRID data. More... | |
void | print (std::ostream &os, bool print_all) |
This function outputs all HGRID data. More... | |
Mdouble | getHGridCurrentMaxRelativeDisplacement () |
Mdouble | getHGridTotalCurrentMaxRelativeDisplacement () |
void | setHGridUpdateEachTimeStep (bool updateEachTimeStep) |
bool | getHGridUpdateEachTimeStep () |
void | setHGridMaxLevels (int HGridMaxLevels) |
int | getHGridMaxLevels () |
HGridMethod | getHGridMethod () |
void | setHGridMethod (HGridMethod hGridMethod) |
HGridDistribution | getHGridDistribution () |
void | setHGridDistribution (HGridDistribution hGridDistribution) |
Mdouble | getHGridCellOverSizeRatio () |
void | setHGridCellOverSizeRatio (Mdouble cellOverSizeRatio) |
![]() | |
void | constructor () |
A public constructor, which sets defaults so the problem can be solved off the shelf. More... | |
MD () | |
MD (STD_save &other) | |
virtual | ~MD () |
void | info () |
Set up a virtual info this will be provided from the inhertiance. More... | |
void | solve () |
The work horse of the code. More... | |
void | solve (unsigned int argc, char *argv[]) |
Read arguments before solving. More... | |
void | solveWithMDCLR () |
Tries to solve the problem using MDCLR. More... | |
Mdouble | get_t () |
Access function for the time. More... | |
void | set_t (Mdouble new_t) |
Access function for the time. More... | |
int | get_NSpecies () |
Allows the number of Species to be accessed. More... | |
std::vector< CSpecies > & | get_Species (void) |
Allows the species to be copied. More... | |
CSpecies * | get_Species (int i) |
Allows the species to be accessed. More... | |
CSpecies * | get_MixedSpecies (int i, int j) |
Allows the mixed species to be accessed. More... | |
void | set_MixedSpecies (int i, int j, CSpecies &S) |
Allows the mixed species to be set. More... | |
void | set_tmax (Mdouble new_tmax) |
Allows the upper time limit to be changed. More... | |
Mdouble | get_tmax () |
Allows the upper time limit to be accessed. More... | |
ParticleHandler & | getParticleHandler () |
WallHandler & | getWallHandler () |
BoundaryHandler & | getBoundaryHandler () |
void | set_savecount (int new_) |
Allows the number of time steps between saves to be changed, see also set_number_of_saves. More... | |
void | set_save_count_all (int new_) |
void | set_save_count_data (int new_) |
void | set_save_count_ene (int new_) |
void | set_save_count_stat (int new_) |
void | set_save_count_fstat (int new_) |
int | get_savecount () |
Allows the number of time steps between saves to be accessed. More... | |
int | get_save_count () |
int | get_save_count_data () |
int | get_save_count_ene () |
int | get_save_count_stat () |
int | get_save_count_fstat () |
void | set_do_stat_always (bool new_) |
Sets how often the data is saved using the number of saves wanted, tmax, and dt. See also set_savecount. More... | |
void | set_number_of_saves (Mdouble N) |
void | set_number_of_saves_all (Mdouble N) |
void | set_number_of_saves_data (Mdouble N) |
void | set_number_of_saves_ene (Mdouble N) |
void | set_number_of_saves_stat (Mdouble N) |
void | set_number_of_saves_fstat (Mdouble N) |
void | set_plastic_k1_k2max_kc_depth (Mdouble k1_, Mdouble k2max_, Mdouble kc_, Mdouble depth_, unsigned int indSpecies=0) |
Allows the plastic constants to be changed. More... | |
void | set_k1 (Mdouble new_, unsigned int indSpecies=0) |
void | set_k2max (Mdouble new_, unsigned int indSpecies=0) |
void | set_kc (Mdouble new_, unsigned int indSpecies=0) |
void | set_depth (Mdouble new_, unsigned int indSpecies=0) |
Mdouble | get_k1 (unsigned int indSpecies=0) |
Allows the plastic constants to be accessed. More... | |
Mdouble | get_k2max (unsigned int indSpecies=0) |
Mdouble | get_kc (unsigned int indSpecies=0) |
Mdouble | get_depth (unsigned int indSpecies=0) |
Mdouble | get_plastic_dt (Mdouble mass, unsigned int indSpecies=0) |
void | set_k (Mdouble new_, unsigned int indSpecies=0) |
Allows the spring constant to be changed. More... | |
Mdouble | get_k (int indSpecies=0) |
Allows the spring constant to be accessed. More... | |
void | set_kt (Mdouble new_, unsigned int indSpecies=0) |
Allows the spring constant to be changed. More... | |
Mdouble | get_kt (int indSpecies=0) |
Allows the spring constant to be accessed. More... | |
void | set_krolling (Mdouble new_, unsigned int indSpecies=0) |
Allows the spring constant to be changed. More... | |
Mdouble | get_krolling (int indSpecies=0) |
Allows the spring constant to be accessed. More... | |
void | set_ktorsion (Mdouble new_, unsigned int indSpecies=0) |
Allows the spring constant to be changed. More... | |
Mdouble | get_ktorsion (int indSpecies=0) |
Allows the spring constant to be accessed. More... | |
void | set_rho (Mdouble new_, unsigned int indSpecies=0) |
Allows the density to be changed. More... | |
Mdouble | get_rho (int indSpecies=0) |
Allows the density to be accessed. More... | |
void | set_dispt (Mdouble new_, unsigned int indSpecies=0) |
Allows the tangential viscosity to be changed. More... | |
Mdouble | get_dispt (unsigned int indSpecies=0) |
Allows the tangential viscosity to be accessed. More... | |
void | set_disprolling (Mdouble new_, unsigned int indSpecies=0) |
Allows the tangential viscosity to be changed. More... | |
Mdouble | get_disprolling (unsigned int indSpecies=0) |
Allows the tangential viscosity to be accessed. More... | |
void | set_disptorsion (Mdouble new_, unsigned int indSpecies=0) |
Allows the tangential viscosity to be changed. More... | |
Mdouble | get_disptorsion (unsigned int indSpecies=0) |
Allows the tangential viscosity to be accessed. More... | |
void | set_disp (Mdouble new_, unsigned int indSpecies=0) |
Allows the normal dissipation to be changed. More... | |
Mdouble | get_disp (unsigned int indSpecies=0) |
Allows the normal dissipation to be accessed. More... | |
void | set_dissipation (Mdouble new_, unsigned int indSpecies=0) |
Allows the normal dissipation to be changed. More... | |
Mdouble | get_dissipation (unsigned int indSpecies=0) |
Allows the normal dissipation to be accessed. More... | |
void | set_mu (Mdouble new_, unsigned int indSpecies=0) |
Allows the Coulomb friction coefficient to be changed. More... | |
Mdouble | get_mu (unsigned int indSpecies=0) |
Allows the Coulomb friction coefficient to be accessed. More... | |
void | set_murolling (Mdouble new_, unsigned int indSpecies=0) |
Allows the Coulomb friction coefficient to be changed. More... | |
Mdouble | get_murolling (unsigned int indSpecies=0) |
Allows the Coulomb friction coefficient to be accessed. More... | |
void | set_mutorsion (Mdouble new_, unsigned int indSpecies=0) |
Allows the Coulomb friction coefficient to be changed. More... | |
Mdouble | get_mutorsion (unsigned int indSpecies=0) |
Allows the Coulomb friction coefficient to be accessed. More... | |
void | set_rotation (bool new_) |
bool | get_rotation () |
void | set_dim_particle (int new_, unsigned int indSpecies=0) |
Allows the dimension of the particle (f.e. for mass) to be changed. More... | |
int | get_dim_particle (unsigned int indSpecies=0) |
Allows the dimension of the particle (f.e. for mass) to be accessed. More... | |
bool | get_save_data_data () |
Returns the data counter. More... | |
bool | get_save_data_ene () |
bool | get_save_data_fstat () |
bool | get_save_data_stat () |
bool | get_do_stat_always () |
void | set_k_and_restitution_coefficient (Mdouble k_, Mdouble eps, Mdouble mass, unsigned int indSpecies=0) |
Sets k, disp such that it matches a given tc and eps for a collision of two copies of P. More... | |
void | set_collision_time_and_restitution_coefficient (Mdouble tc, Mdouble eps, Mdouble mass, unsigned int indSpecies=0) |
Sets k, disp such that it matches a given tc and eps for a collision of two copies of P. More... | |
void | set_collision_time_and_restitution_coefficient (Mdouble tc, Mdouble eps, Mdouble mass1, Mdouble mass2, unsigned int indSpecies=0) |
Set k, disp such that is matches a given tc and eps for a collision of two different masses. More... | |
void | set_collision_time_and_normal_and_tangential_restitution_coefficient (Mdouble tc, Mdouble eps, Mdouble beta, Mdouble mass1, Mdouble mass2, unsigned int indSpecies=0) |
See CSpecies::set_collision_time_and_normal_and_tangential_restitution_coefficient. More... | |
void | set_collision_time_and_normal_and_tangential_restitution_coefficient_nodispt (Mdouble tc, Mdouble eps, Mdouble beta, Mdouble mass1, Mdouble mass2, unsigned int indSpecies=0) |
See CSpecies::set_collision_time_and_normal_and_tangential_restitution_coefficient. More... | |
Mdouble | get_collision_time (Mdouble mass, unsigned int indSpecies=0) |
Calculates collision time for two copies of a particle of given disp, k, mass. More... | |
Mdouble | get_restitution_coefficient (Mdouble mass, unsigned int indSpecies=0) |
Calculates restitution coefficient for two copies of given disp, k, mass. More... | |
Mdouble | get_xmin () |
Get xmin. More... | |
Mdouble | get_xmax () |
Get xmax. More... | |
Mdouble | get_ymin () |
Gets ymin. More... | |
Mdouble | get_ymax () |
Gets ymax. More... | |
Mdouble | get_zmin () |
Gets zmin. More... | |
Mdouble | get_zmax () |
Gets zmax. More... | |
void | set_xmin (Mdouble new_xmin) |
Sets xmin and walls, assuming the standard definition of walls as in the default constructor. More... | |
void | set_ymin (Mdouble new_ymin) |
void | set_zmin (Mdouble new_zmin) |
Sets ymin and walls, assuming the standard definition of walls as in the default constructor. More... | |
void | set_xmax (Mdouble new_xmax) |
Sets xmax and walls, assuming the standard definition of walls as in the default constructor. More... | |
void | set_ymax (Mdouble new_ymax) |
Sets ymax and walls, assuming the standard definition of walls as in the default constructor. More... | |
void | set_zmax (Mdouble new_zmax) |
Sets ymax and walls, assuming the standard definition of walls as in the default constructor. More... | |
void | set_dt (Mdouble new_dt) |
Allows the time step dt to be changed. More... | |
Mdouble | get_dt () |
Allows the time step dt to be accessed. More... | |
void | set_name (const char *name) |
Sets the name of the problem, used for the same data files. More... | |
void | set_xballs_colour_mode (int new_cmode) |
Set the xball output mode. More... | |
void | set_xballs_cmode (int new_cmode) |
int | get_xballs_cmode () |
void | set_xballs_vector_scale (double new_vscale) |
Set the scale of vectors in xballs. More... | |
double | get_xballs_vscale () |
void | set_xballs_additional_arguments (std::string new_) |
Set the additional arguments for xballs. More... | |
std::string | get_xballs_additional_arguments () |
void | set_xballs_scale (Mdouble new_scale) |
Set the scale of the xballs problem. The default is fit to screen. More... | |
double | get_xballs_scale () |
void | set_gravity (Vec3D new_gravity) |
Allows the gravitational acceleration to be changed. More... | |
Vec3D | get_gravity () |
Allows the gravitational acceleration to be accessed. More... | |
void | set_dim (int new_dim) |
Allows the dimension of the simulation to be changed. More... | |
int | get_dim () |
Allows the dimension of the simulation to be accessed. More... | |
int | get_restart_version () |
Gets restart_version. More... | |
void | set_restart_version (int new_) |
Sets restart_version. More... | |
bool | get_restarted () |
Gets restarted. More... | |
Mdouble | get_max_radius () |
Sets restarted. More... | |
void | set_restarted (bool new_) |
bool | get_append () |
Gets restarted. More... | |
void | set_append (bool new_) |
Sets restarted. More... | |
Mdouble | get_ene_ela () |
Gets ene_ela. More... | |
void | set_ene_ela (Mdouble new_) |
Sets ene_ela. More... | |
void | add_ene_ela (Mdouble new_) |
Sets ene_ela. More... | |
void | Remove_Particle (int IP) |
This function removes partice IP from the vector of particles by moving the last particle in the vector to the position if IP Also it checks if the moved Particle has any tangentialsspring-information, which needs to be moved to a different particle, because tangential spring information always needs to be stored in the real particle with highest particle index. More... | |
Mdouble | get_Mass_from_Radius (Mdouble radius, int indSpecies=0) |
Mdouble | get_maximum_velocity (BaseParticle &P) |
Calculates the maximum velocity allowed for a collision of two copies of P (for higher velocities particles could pass through each other) More... | |
virtual void | removeParticle (int iP) |
Mdouble | get_maximum_velocity () |
void | set_dt_by_mass (Mdouble mass) |
Sets dt to 1/50-th of the collision time for two particles of mass P. More... | |
void | set_dt (BaseParticle &P) |
Sets dt to 1/50-th of the collision time for two copies of P. More... | |
void | set_dt () |
Sets dt to 1/50-th of the smallest possible collision time. More... | |
virtual void | create_xballs_script () |
This creates a scipt which can be used to load the xballs problem to display the data just generated. More... | |
virtual double | getInfo (BaseParticle &P) |
Allows the user to set what is written into the info column in the data file. By default is store the Species ID number. More... | |
virtual void | save_restart_data () |
Stores all MD data. More... | |
int | load_restart_data () |
Loads all MD data. More... | |
int | load_restart_data (std::string filename) |
void | statistics_from_restart_data (const char *name) |
Loads all MD data and plots statistics for all timesteps in the .data file. More... | |
virtual void | write_v1 (std::ostream &os) |
Writes all MD data. More... | |
virtual void | read_v1 (std::istream &is) |
Reads all MD data. More... | |
virtual void | read_v2 (std::istream &is) |
bool | load_from_data_file (const char *filename, unsigned int format=0) |
This allows particle data to be reloaded from data files. More... | |
bool | load_par_ini_file (const char *filename) |
allows the user to read par.ini files (useful to read MDCLR files) More... | |
bool | read_next_from_data_file (unsigned int format=0) |
by default format do not pass an argument; only specify format if you have to read a special format (f.e. dim=2, but format=14 (3d format)) More... | |
int | read_dim_from_data_file () |
bool | find_next_data_file (Mdouble tmin, bool verbose=true) |
void | add_Species (CSpecies &S) |
void | add_Species (void) |
void | set_format (int new_) |
int | get_format () |
int | readArguments (unsigned int argc, char *argv[]) |
Can interpret main function input arguments that are passed by the driver codes. More... | |
![]() | |
STD_save () | |
Default constructor: sets the counter to 0 (i.e. no number will be included). More... | |
STD_save (STD_save &other) | |
Copy constructor. More... | |
void | constructor () |
void | inc_counter_in_file () |
Increament the counter value stored in the file_counter by 1 and store the new value. More... | |
int | read_run_num_from_file () |
Read rom the counter file the counter. More... | |
void | set_counter_from_file () |
Sets the counter based on the current number stored in the counter file. More... | |
void | save_info_to_disk () |
Saves the information generated by info to disk in a file. More... | |
void | set_counter (int new_counter) |
This set the counter, overriding the defaults. More... | |
int | get_counter () |
This returns the current value of the counter. More... | |
bool | FileExists (std::string strFilename) |
Function to check if a file exists, is used to check if a run has already need done. More... | |
void | auto_number () |
std::vector< int > | get_numbers (int size_x, int size_y) |
This turns a counter into two indexs for doing parmater studies. The indexs run from 1:size_x and 1:size_y where as the study number starts at 0. More... | |
int | launch_new (const char *name, bool quick=false) |
This launch a code from within this code. Please pass the name of the code to run. More... | |
void | set_name (const char *name) |
Sets the name of the problem, used for the same data files. More... | |
std::string | get_name () |
Allows the problem_name to be accessed. More... | |
std::fstream & | get_data_file () |
Allows the problem_name to be accessed. More... | |
std::fstream & | get_stat_file () |
Allows the problem_name to be accessed. More... | |
std::fstream & | get_fstat_file () |
Allows the problem_name to be accessed. More... | |
std::fstream & | get_ene_file () |
Allows the problem_name to be accessed. More... | |
void | set_fstat_filename (std::string filename) |
void | set_data_filename (std::string filename) |
void | set_stat_filename (std::string filename) |
void | set_ene_filename (std::string filename) |
void | set_fstat_filename () |
void | set_data_filename () |
void | set_stat_filename () |
void | set_ene_filename () |
std::string | get_fstat_filename () |
std::string | get_data_filename () |
std::string | get_stat_filename () |
std::string | get_ene_filename () |
void | set_step_size (unsigned int new_) |
unsigned int | get_step_size () |
void | set_options_fstat (unsigned int new_) |
set and get for file options More... | |
unsigned int | get_options_fstat (void) |
void | set_options_data (unsigned int new_) |
unsigned int | get_options_data (void) |
void | set_options_stat (unsigned int new_) |
unsigned int | get_options_stat (void) |
void | set_options_restart (unsigned int new_) |
unsigned int | get_options_restart (void) |
void | set_options_ene (unsigned int new_) |
unsigned int | get_options_ene (void) |
bool | open_file (std::fstream &file, std::string filename, unsigned int options, std::fstream::openmode mode) |
bool | open_fstat_file (std::fstream::openmode mode=std::fstream::out) |
bool | open_data_file (std::fstream::openmode mode=std::fstream::out) |
bool | open_stat_file (std::fstream::openmode mode=std::fstream::out) |
bool | open_ene_file (std::fstream::openmode mode=std::fstream::out) |
bool | open_counted_file (std::fstream &file, std::string filenameNoCount, std::fstream::openmode mode) |
opens file needed if data is written in multiple files More... | |
bool | increase_counter_fstat (std::fstream::openmode mode) |
bool | increase_counter_data (std::fstream::openmode mode) |
bool | increase_counter_stat (std::fstream::openmode mode) |
bool | increase_counter_ene (std::fstream::openmode mode) |
void | set_file_counter (int new_) |
int | get_file_counter () |
Protected Attributes | |
Mdouble | HopperLength |
Dimension of the hopper in vertical direction. More... | |
Mdouble | HopperHeight |
Dimension of the hopper in horizontal direction. More... | |
Mdouble | HopperAngle |
Angle between the two pieces of the hopper walls. More... | |
Mdouble | HopperExitLength |
Dimension of the hopper exit in vertical direction. More... | |
Mdouble | HopperExitHeight |
Dimension of the hopper exit in vertical direction. More... | |
Mdouble | shift |
The x position where the Chute starts (defined as the beginning of the hopper) More... | |
Mdouble | lowerFillHeight |
Relative height (in [0,1)) above which the hopper is replenished with new particles. More... | |
bool | centerHopper |
If this flag is set, the hopper will be constructed in the xy-center of the domain, and not next to the xmin-domain boundary; by default off. More... | |
![]() | |
Mdouble | FixedParticleRadius |
int | RandomizedBottom |
Mdouble | ChuteAngle |
Mdouble | MinInflowParticleRadius |
Mdouble | MaxInflowParticleRadius |
Mdouble | InflowVelocity |
Mdouble | InflowVelocityVariance |
Mdouble | InflowHeight |
int | max_failed |
int | num_created |
TangentialSpringParticle | P0 |
![]() | |
std::vector< CSpecies > | Species |
These are the particle parameters like dissipation etc. More... | |
![]() | |
std::stringstream | problem_name |
Stores the problem_name. More... | |
std::stringstream | data_filename |
These store the save file names, by default they are derived from problem_name. More... | |
std::stringstream | stat_filename |
std::stringstream | fstat_filename |
std::stringstream | ene_filename |
std::fstream | data_file |
Stream used for data files. More... | |
std::fstream | stat_file |
std::fstream | fstat_file |
std::fstream | ene_file |
unsigned int | options_fstat |
Indicators if files are created or not 0: file will not be created 1: file will be written in one file 2: file will be written in multiple files. More... | |
unsigned int | options_data |
unsigned int | options_stat |
unsigned int | options_ene |
unsigned int | options_restart |
unsigned int | file_counter |
Counter needed if file will be written in multiple files. More... | |
unsigned int | step_size |
Private Attributes | |
Mdouble | lift |
This is the vertical distance the chute is lifted above the plane. More... | |
unsigned int | hopper_dim |
This is the dimension of the hopper, my default it is one dimensional and hence does not have side wall. More... | |
bool | align_base |
This is the flag, which sets if the chute bottom is aligned with the hopper, by default it is. More... | |
Mdouble | fill_percent |
This is which percentage of the hopper is used for creating new partices;. More... | |
Mdouble | HopperLowestPoint |
The z coordinate of the right C point (when the left C point is in the origin) More... | |
Additional Inherited Members | |
![]() | |
HGrid * | grid |
![]() | |
RNG | random |
![]() | |
virtual bool | IsInsertable (BaseParticle &P) |
here, CheckObjects is called; returns true is the particle should be added More... | |
void | add_particle (BaseParticle &P) |
adds particle to hgrid More... | |
void | actions_before_time_step () |
This is action before the time step is started. More... | |
virtual void | add_particles () |
Here we define the inflow. More... | |
void | clean_chute () |
Here we define the outflow. More... | |
void | initialize_inflow_particle () |
Sets initial values for particles that are created at the inflow. More... | |
virtual void | create_bottom () |
Create the bottom of chute out of particles. More... | |
void | cout_time () |
std::couts time More... | |
Mdouble | get_LargestParticleInteractionRadius () |
![]() | |
void | HGRID_UpdateParticleInHgrid (BaseParticle *obj) |
This adds a partcile to the Grid, called in the grid setup routies. More... | |
void | HGRID_RemoveParticleFromHgrid (BaseParticle *obj) |
virtual void | CheckCell (int x, int y, int z, int l, BaseParticle *obj, HGrid *grid) |
Check collisions for a general cell. More... | |
virtual void | CheckCell_current (int x, int y, int z, int l, HGrid *grid) |
Checks for a collision in the particles own cell. More... | |
void | CheckObjAgainstGrid (HGrid *grid, BaseParticle *obj) |
Check if an Particle has a collision in the grid; avoids multiple checks. More... | |
void | CheckObjAgainstWholeGrid (HGrid *grid, BaseParticle *obj) |
Check if an Particle has a collision in the grid. More... | |
bool | TestCell (int x, int y, int z, int l, BaseParticle *obj, HGrid *grid) |
Tests obj against all particles in cell similar to CheckCell, but links to TestObject instead of compute_internal_forces. More... | |
bool | TestObjAgainstGrid (HGrid *grid, BaseParticle *obj) |
Tests obj against all neighbouring particles similar to CheckObjAgainstGrid, but links to TestCell instead of CheckCell. More... | |
![]() | |
void | InitBroadPhase () |
This sets up the parameters required for the contact model. More... | |
void | HGRID_InsertParticleToHgrid (BaseParticle *obj) |
Inserts a single Particle to current grid. More... | |
void | broad_phase (BaseParticle *i) |
This makes the board_phase of contact point at the HGRID code. More... | |
virtual bool | TestObject (BaseParticle *pI, BaseParticle *pJ) |
criterium for inserting a particle (returns false, if particles overlap;) More... | |
void | HGRID_update_move (BaseParticle *iP, Mdouble move) |
void | HGRID_actions_before_integration () |
void | HGRID_actions_after_integration () |
int | readNextArgument (unsigned int &i, unsigned int argc, char *argv[]) |
![]() | |
virtual void | compute_all_forces () |
This does the force computation. More... | |
virtual void | compute_internal_forces (BaseParticle *i) |
Computes the forces between particles (internal in the sence that the sum over all these forces is zero i.e. fully modelled forces) More... | |
CTangentialSpring * | getTangentialSpring (BaseParticle *PI, BaseParticle *PJ, BaseParticle *PJreal) |
CTangentialSpring * | getTangentialSpringWall (BaseParticle *pI, int w) |
virtual void | compute_internal_forces (BaseParticle *P1, BaseParticle *P2) |
Computes the forces between particles (internal in the sence that the sum over all these forces is zero i.e. fully modelled forces) More... | |
void | compute_plastic_internal_forces (BaseParticle *P1, BaseParticle *P2) |
Computes plastic forces between particles. More... | |
virtual void | compute_external_forces (BaseParticle *PI) |
This is were the computation of external forces takes place (e.g. gravity) More... | |
virtual void | compute_walls (BaseParticle *PI) |
This is were the walls are. More... | |
Mdouble | computeShortRangeForceWithWall (BaseParticle *pI, int wall, CSpecies *pSpecies, Mdouble dist) |
Mdouble | computeShortRangeForceWithParticle (BaseParticle *PI, BaseParticle *PJ, BaseParticle *PJreal, CSpecies *pSpecies, Mdouble dist) |
virtual void | actions_before_time_loop () |
This is actions before the start of the main time loop. More... | |
virtual void | HGRID_InsertParticleToHgrid (BaseParticle *obj UNUSED) |
This is action before the time step is started. More... | |
virtual void | HGRID_UpdateParticleInHgrid (BaseParticle *obj UNUSED) |
virtual void | HGRID_RemoveParticleFromHgrid (BaseParticle *obj UNUSED) |
virtual bool | get_HGRID_UpdateEachTimeStep () |
virtual void | actions_after_solve () |
This is actions at the end of the code, but before the files are closed. More... | |
virtual void | actions_after_time_step () |
This is action after the time step is finished. More... | |
virtual void | output_xballs_data () |
Output xball data for Particle i. More... | |
virtual void | output_xballs_data_particle (int i) |
This function outputs the location and velocity of the particle in a format the xballs progream can read. More... | |
virtual void | start_ene () |
Functions for ene file. More... | |
virtual void | fstat_header () |
virtual void | output_ene () |
This function outputs statistical data - The default is to compute the rotational kinetic engergy, linear kinetic energy, and the centre of mass. More... | |
virtual void | initialize_statistics () |
Functions for statistics. More... | |
virtual void | output_statistics () |
virtual void | gather_statistics_collision (int index1 UNUSED, int index2 UNUSED, Vec3D Contact UNUSED, Mdouble delta UNUSED, Mdouble ctheta UNUSED, Mdouble fdotn UNUSED, Mdouble fdott UNUSED, Vec3D P1_P2_normal_ UNUSED, Vec3D P1_P2_tangential UNUSED) |
virtual void | process_statistics (bool usethese UNUSED) |
virtual void | finish_statistics () |
virtual void | set_initial_pressures_for_pressure_controlled_walls () |
virtual void | do_integration_before_force_computation (BaseParticle *pI) |
This is were the integration is done. More... | |
virtual void | checkInteractionWithBoundaries () |
virtual void | do_integration_after_force_computation (BaseParticle *pI) |
This is were the integration is done. More... | |
void | set_FixedParticles (unsigned int n) |
void | initialize_tangential_springs () |
void | compute_particle_masses () |
Computes the mass of each particle. More... | |
virtual bool | continue_solve () |
void | reset_DeltaMax () |
sets the history parameter DeltaMax of all particles to zero More... | |
void | reset_TangentialSprings () |
sets the history parameter TangentialSprings of all particles to zero More... | |
ChuteWithHopper has a hopper as inflow.
The hopper has two parts as follows to create the finite hopper walls, we take vector between two wall points in xz-plane, then rotate clockwise and make unit length.
A,B,C denote three points on the left and right hopper walls which are used to construct the hopper shift denotes the space by which the chute has to be shifted to the right such that the hopper is in the domain Note the wall direction has to be set seperately either period of walls.
Definition at line 38 of file ChuteWithHopper.h.
|
inline |
This is a copy constructor for Chute problems.
Definition at line 77 of file ChuteWithHopper.h.
References constructor().
|
inline |
Definition at line 78 of file ChuteWithHopper.h.
References constructor().
|
inline |
Definition at line 79 of file ChuteWithHopper.h.
References constructor().
|
inline |
Definition at line 80 of file ChuteWithHopper.h.
References constructor().
|
inline |
This is the default constructor.
Definition at line 83 of file ChuteWithHopper.h.
References constructor().
|
inline |
This creates the hopper on top of the chute, see diagram in class description for details of the points.
"0.5*(HopperLength+HopperExitLength) / tan(HopperAngle)" is the minimum heigth of the hopper, to make sure things should flow down and not to the sides.
todo{Why shift by arbitrary number of 40, when centerHopper=True}
Definition at line 110 of file ChuteWithHopper.h.
References A, FiniteWall::add_finite_wall(), centerHopper, Chute::ChuteAngle, WallHandler::copyAndAddWall(), Cross(), BaseHandler< T >::end(), Chute::get_ChuteAngle(), MD::get_ymax(), MD::get_ymin(), Vec3D::GetLength2, MD::getParticleHandler(), MD::getWallHandler(), hopper_dim, HopperAngle, HopperExitHeight, HopperExitLength, HopperHeight, HopperLength, HopperLowestPoint, lift, set_shift(), MD::set_zmax(), shift, Vec3D::X, and Vec3D::Z.
Referenced by setup_particles_initial_conditions().
|
inline |
This is the actually constructor, get called by all constructors above.
Definition at line 86 of file ChuteWithHopper.h.
References align_base, centerHopper, fill_percent, hopper_dim, lift, lowerFillHeight, set_Hopper(), and shift.
Referenced by ChuteWithHopper().
|
inlinevirtual |
This creates an inflow particle in the top 50% of the hopper i.e.
between gamma=0.5 and gamma=1.0 Gamma is random number in the z direction and delta in the y direction In the 2D (hopper) case the particles are generated with equal probability in the y-direction, i.e. delta is from the edge of the domain In the 3D (hopper) case a third vector AD is generated and delta is again created for the sloping walls of the hopper
Reimplemented from Chute.
Reimplemented in ChuteWithHopperAndInset.
Definition at line 299 of file ChuteWithHopper.h.
References A, centerHopper, BaseParticle::compute_particle_mass(), fill_percent, mathsFunc::gamma(), Chute::get_ChuteAngle(), BaseParticle::get_Radius(), RNG::get_RN(), MD::get_ymax(), MD::get_ymin(), hopper_dim, HopperAngle, HopperExitLength, HopperHeight, HopperLength, lift, Chute::MaxInflowParticleRadius, Chute::MinInflowParticleRadius, BaseParticle::move(), Chute::P0, MD::random, BaseParticle::set_Position(), BaseParticle::set_Radius(), and MD::Species.
|
inline |
Allows chute length to be accessed.
Definition at line 414 of file ChuteWithHopper.h.
References MD::get_xmax(), and shift.
|
inline |
Definition at line 370 of file ChuteWithHopper.h.
References HopperLowestPoint.
Referenced by set_Hopper().
|
inline |
Definition at line 452 of file ChuteWithHopper.h.
References lift.
|
inline |
Allows chute length to be accessed.
Definition at line 406 of file ChuteWithHopper.h.
References Chute::ChuteAngle, MD::get_xmax(), HopperHeight, and shift.
|
inline |
This lifts the hopper above the plane of the chute.
Definition at line 451 of file ChuteWithHopper.h.
References lift.
|
inlinevirtual |
Reimplemented in ChuteWithHopperAndInset.
Definition at line 439 of file ChuteWithHopper.h.
References HopperAngle, HopperExitHeight, HopperExitLength, HopperHeight, HopperLength, and Chute::print().
Referenced by ChuteWithHopperAndInset::print().
|
inlinevirtual |
This function reads all chute data.
Reimplemented from Chute.
Reimplemented in ChuteWithHopperAndInset.
Definition at line 426 of file ChuteWithHopper.h.
References HopperAngle, HopperExitHeight, HopperExitLength, HopperHeight, HopperLength, Chute::read(), and shift.
|
inlinevirtual |
Reimplemented from Chute.
Reimplemented in ChuteWithHopperAndInset.
Definition at line 458 of file ChuteWithHopper.h.
References align_base, centerHopper, HopperAngle, HopperExitHeight, HopperExitLength, HopperHeight, HopperLength, lift, lowerFillHeight, Chute::readNextArgument(), and shift.
|
inline |
Definition at line 456 of file ChuteWithHopper.h.
References align_base.
|
inline |
Definition at line 419 of file ChuteWithHopper.h.
References centerHopper.
|
inlinevirtual |
Allows chute length to be changed.
Reimplemented from Chute.
Reimplemented in ChuteWithHopperAndInset.
Definition at line 417 of file ChuteWithHopper.h.
References MD::set_xmax(), MD::set_xmin(), and shift.
|
inline |
todo: check wether HopperCornerHeight >=0, if not change hopperangle, line 105, I do not yet understand what the criteria is...
Definition at line 375 of file ChuteWithHopper.h.
References Chute::get_ChuteAngle(), get_HopperLowestPoint(), HopperAngle, HopperExitHeight, HopperExitLength, HopperHeight, HopperLength, constants::pi, and set_HopperLowestPoint().
Referenced by constructor().
|
inline |
Definition at line 454 of file ChuteWithHopper.h.
References hopper_dim.
|
inline |
Definition at line 100 of file ChuteWithHopper.h.
References fill_percent.
|
inline |
Definition at line 367 of file ChuteWithHopper.h.
References HopperLowestPoint.
Referenced by set_Hopper().
|
inline |
Definition at line 421 of file ChuteWithHopper.h.
References lowerFillHeight.
|
inline |
Definition at line 423 of file ChuteWithHopper.h.
References MD::get_xmax(), MD::set_xmax(), and shift.
Referenced by add_hopper().
|
inlinevirtual |
initialize particle position, velocity, radius
This initially set up the particles///.
Reimplemented from Chute.
Reimplemented in ChuteWithHopperAndInset, and ChuteWithHopperAndInset.
Definition at line 102 of file ChuteWithHopper.h.
References add_hopper(), and Chute::setup_particles_initial_conditions().
Referenced by ChuteWithHopperAndInset::setup_particles_initial_conditions().
|
inlinevirtual |
This function writes all chute data.
Reimplemented from Chute.
Reimplemented in ChuteWithHopperAndInset.
Definition at line 433 of file ChuteWithHopper.h.
References HopperAngle, HopperExitHeight, HopperExitLength, HopperHeight, HopperLength, shift, and Chute::write().
|
private |
This is the flag, which sets if the chute bottom is aligned with the hopper, by default it is.
Definition at line 64 of file ChuteWithHopper.h.
Referenced by constructor(), readNextArgument(), and set_align_base().
|
protected |
If this flag is set, the hopper will be constructed in the xy-center of the domain, and not next to the xmin-domain boundary; by default off.
Definition at line 55 of file ChuteWithHopper.h.
Referenced by add_hopper(), constructor(), create_inflow_particle(), readNextArgument(), and set_centerHopper().
|
private |
This is which percentage of the hopper is used for creating new partices;.
Definition at line 67 of file ChuteWithHopper.h.
Referenced by constructor(), create_inflow_particle(), and set_HopperFillPercentage().
|
private |
This is the dimension of the hopper, my default it is one dimensional and hence does not have side wall.
Definition at line 61 of file ChuteWithHopper.h.
Referenced by add_hopper(), constructor(), create_inflow_particle(), and set_hopper_dim().
|
protected |
Angle between the two pieces of the hopper walls.
Definition at line 45 of file ChuteWithHopper.h.
Referenced by add_hopper(), create_inflow_particle(), print(), read(), readNextArgument(), set_Hopper(), and write().
|
protected |
Dimension of the hopper exit in vertical direction.
Definition at line 49 of file ChuteWithHopper.h.
Referenced by add_hopper(), print(), read(), readNextArgument(), set_Hopper(), and write().
|
protected |
Dimension of the hopper exit in vertical direction.
Definition at line 47 of file ChuteWithHopper.h.
Referenced by add_hopper(), create_inflow_particle(), print(), read(), readNextArgument(), set_Hopper(), and write().
|
protected |
Dimension of the hopper in horizontal direction.
Definition at line 43 of file ChuteWithHopper.h.
Referenced by add_hopper(), create_inflow_particle(), get_MaximumVelocityInducedByGravity(), print(), read(), readNextArgument(), set_Hopper(), and write().
|
protected |
Dimension of the hopper in vertical direction.
Definition at line 41 of file ChuteWithHopper.h.
Referenced by add_hopper(), create_inflow_particle(), print(), read(), readNextArgument(), set_Hopper(), and write().
|
private |
The z coordinate of the right C point (when the left C point is in the origin)
Definition at line 70 of file ChuteWithHopper.h.
Referenced by ChuteWithHopperAndInset::add_hopper(), add_hopper(), get_HopperLowestPoint(), and set_HopperLowestPoint().
|
private |
This is the vertical distance the chute is lifted above the plane.
Definition at line 58 of file ChuteWithHopper.h.
Referenced by add_hopper(), constructor(), create_inflow_particle(), get_lift_hopper(), lift_hopper(), and readNextArgument().
|
protected |
Relative height (in [0,1)) above which the hopper is replenished with new particles.
Definition at line 53 of file ChuteWithHopper.h.
Referenced by constructor(), readNextArgument(), and set_lowerFillHeight().
|
protected |
The x position where the Chute starts (defined as the beginning of the hopper)
Definition at line 51 of file ChuteWithHopper.h.
Referenced by add_hopper(), constructor(), get_ChuteLength(), get_MaximumVelocityInducedByGravity(), read(), readNextArgument(), set_ChuteLength(), set_shift(), and write().