- Member AngledPeriodicBoundary::checkBoundaryAfterParticleMoved (BaseParticle *P, ParticleHandler &pH UNUSED)
- {TW: can't we do the shift in the createPeriodicParticles function only? We are checking the distance three times!}
- Member AngledPeriodicBoundary::createPeriodicParticles (BaseParticle *P, ParticleHandler &pH)
- {TW: shouldn't that return a boolean?}
- Member AngledPeriodicBoundary::set (Vec3D normal_left_, Vec3D normal_right_, Vec3D origin_)
- {I cannot calculate angular shift; right now this works only for quarter walls; maybe this has to wait till quaternions are implemented.}
- Member AngledPeriodicBoundary::shift_position (BaseParticle *P)
add velocity, angular, springs shift
{TW: not sure how to calculate the angular position in common_axis direction}
tangential spring
- Member Chute::create_bottom ()
- Does the bottom we always has to be this particle?
- Member Chute::get_ChuteAngle ()
- Thomas: This should return the angle in degrees
- Member Chute::P0
- Do we always want to insert this particle?
- Member CircularPeriodicBoundary::checkBoundaryAfterParticleMoved (BaseParticle *P, ParticleHandler &pH)
- {TW: Dinant, please confirm that i and oldI should be integer}
- Member CSpecies::set_k_and_restitution_coefficient (Mdouble k_, Mdouble eps, Mdouble mass)
- check all instances of constants::sqrt_pi
- Member CSpecies::set_rho (Mdouble new_rho)
- recalculate masses when setting dim_particle or rho Allows the density to be changed
- Member CSpecies::update_disp (Mdouble mass1, Mdouble mass2)
- check for rest. =0
- Class FiniteAxisSymmetricWall
- {Thomas: Can we rename AxisSymmetric with Axisymmetric? Can we rename FiniteWall with PolyhedralWall?}
- Member FiniteAxisSymmetricWall::get_distance_and_normal (BaseParticle &P, Mdouble &distance, Vec3D &normal_return)
{Kay found a bug here}
Radius is based on Particle, not wall
- Member FiniteAxisSymmetricWall::get_Velocity () const
- {Velocity is given in (R,phi,zhat) coordinates and has to be translated to (x,y,z)} access function for velocity
- Member HGRID_3D::CheckCell (int x, int y, int z, int l, BaseParticle *obj, HGrid *grid)
- {What is the use of this check?}
- Class HGRID_base
- Remove the dimension out of this class by templating and use of for loops for the check cells part
- Class InfiniteWall
- remove access to set Nwalls and wall set etc.. and add function add_wall. This would have stoped a lot of bugs in my own (Anthony's) driver codes.
- Class InfiniteWallWithHole
- remove access to set Nwalls and wall set etc.. and add function add_wall. This would have stoped a lot of bugs in my own (Anthony's) driver codes.
- Member MD::compute_internal_forces (BaseParticle *P1, BaseParticle *P2)
{The spring should be cut back such that fdott=mu*fdotn. This is simple for dispt=0; we have to think about what happens in the sliding case with tang. dissipation; same for walls; Update Dec-2-2011: fixed}
TW: the following 13 lines concern only the sliding spring and could be moved into the if statement above
Define the center this way or are radii involved? Or maybe just use middle of overlap region? Thomas: Yes, we should correct that for polydispersed problems; however, then we also have to correct it in StatisticsVector::gather_statistics_collision.
{Is it the first particle the force acts on?}
- Member MD::compute_plastic_internal_forces (BaseParticle *P1, BaseParticle *P2)
- {The spring should be cut back such that fdott=mu*fdotn. This is simple for dispt=0; we have to think about what happens in the sliding case with tang. dissipation; same for walls}
- Member MD::compute_walls (BaseParticle *PI)
HMD still has to be fully implemented; HM & HMD requires thinking about how to keep it tangential; you dont need to update delta AND the force
: reducedRadiusIJ should have a factor of 2.0, but then the rolling frequency differs from the normal frequency when krolling=2/5*k;
: RadiusIJ should have a factor of 2.0, but then the rolling frequency differs from the normal frequency when krolling=2/5*k;
- Member MD::create_xballs_script ()
- {thomas:why does vscale have to be integer?}
- Member MD::get_maximum_velocity ()
- this function is dangerous since it uses particle data, which the user might not intend Calculates the maximum velocity allowed for a collision of two copies of the smallest particle (for higher velocities particles could pass through each other)
- Member MD::load_from_data_file (const char *filename, unsigned int format=0)
- change from deprecated const char* to std::string
- Member MD::output_xballs_data_particle (int i)
- {changes in *.icc files are not immediately regognized by the makefile!}
- Member MD::read_next_from_data_file (unsigned int format=0)
{TW: what if mu=0, but get_Species(1).mu isn't? We have to check all mu, right?}
{TW: also plastic particles have to be checked.}
- Member MD::set_dt ()
should setup_... be used here or not (by Thomas)
{Is it necesarry to reset initial conditions here and in solve? (i.e. should it be in constructor)?}
- Member MD::set_plastic_k1_k2max_kc_depth (Mdouble k1_, Mdouble k2max_, Mdouble kc_, Mdouble depth_, unsigned int indSpecies=0)
- {these functions should also update the mixed species}
- Member MD::setup_particles_initial_conditions ()
- I (Anthony) wants to change this to be an external function. This has a lot of advantages espcially when using copy-constructors. This is a major change and will break other codes, so therefore has to be done carefully.
- Member MD::solve ()
Is it neccesarry to reset initial conditions here and in set_dt (i.e. should it be in constructor)? Thomas: I agree, set_dt should be rewritten to work without calling setup_particles_initial_conditions
{Thomas: the tangential spring should not be integrated here, but in the integration function; currently, the integration is supressed by setting dt=0, but sliding tangential springs are integrated}
{When do we actually want to output force and location data?}
- Member MD::~MD ()
- write a destructor
- Member NORMALIZED_POLYNOMIAL< T >::evaluate (Mdouble r)
- I originally forgot to put a return statement here but the compiler did not give me a warning. Can we give a compiler option to throw warnings if there are no return statements?
- Member NORMALIZED_POLYNOMIAL< T >::evaluateGradient_2D (Mdouble r)
- Member NORMALIZED_POLYNOMIAL< T >::evaluateIntegral_2D (Mdouble a, Mdouble b, Mdouble t)
- {Thomas: has yet to be implemented}
- Member ParticleHandler::addObject (BaseParticle *P)
- Also insert the particle in the HGRID
- Member RNG::get_RN (Mdouble min, Mdouble max)
{Thomas: This code does sth. when min>max; I would prefer to throw an error.}
{the random seed should be stored in restart}
- Member StatisticsPoint< T >::CG_function_2D (const Vec3D &PI)
- the volume should be calculated in set_CG_invvolume
- Member StatisticsPoint< T >::CG_gradient (const Vec3D &P, const Mdouble phi)
- {Only implemented for Gaussian}
- Member StatisticsPoint< T >::CG_integral (Vec3D &P1, Vec3D &P2, Vec3D &P1_P2_normal, Mdouble P1_P2_distance, Vec3D &rpsi)
- .fstat/.restart/.data/.stat should be by default in binary, with text output as option.
- Member StatisticsPoint< T >::CG_integral (Vec3D &P1 UNUSED, Vec3D &P2 UNUSED, Vec3D &P1_P2_normal UNUSED, Mdouble P1_P2_distance UNUSED, Vec3D &rpsi)
- Is that right?
- Member StatisticsPoint< T >::CG_integral_2D (Vec3D &P1, Vec3D &P2, Vec3D &P1_P2_normal, Mdouble P1_P2_distance, Mdouble &rpsi_scalar)
- add rpsi
- Member StatisticsPoint< T >::CG_integral_gradient (Vec3D &P1, Vec3D &P2, Vec3D &P1_P2_normal, Mdouble P1_P2_distance)
{Only implemented for Gaussian and statavg Z}
{some gradients are not computed}
The gradient is not centered; thus there is a bias; follow the corrections in CG_integral_gradient_1D
- Member StatisticsPoint< T >::CG_integral_gradient_1D (Vec3D &P1, Vec3D &P2, Vec3D &P1_P2_normal, Mdouble P1_P2_distance)
{debug this code}
Thomas: whats the best delta? Somewhere between 1e-7 and 1e-4
- Member StatisticsPoint< T >::CollisionalHeatFlux
- {Heat flux calculations have not been checked, only implemented}
- Member StatisticsPoint< T >::Dissipation
- {Dissipation calculations have not been checked, only implemented}
- Member StatisticsPoint< T >::Potential
- {Potential calculations have not been checked, only implemented; fstat file does not include the torsional and rolling spring and hence cannot account for their potential}
- Member StatisticsPoint< T >::set_Heaviside_invvolume ()
- {Thomas: check 2d case}
- Member StatisticsVector< T >::evaluate_force_statistics (int wp=0)
- {TW: Couple stress calculation works only for Gaussians}
- Member StatisticsVector< T >::evaluate_particle_statistics (std::vector< BaseParticle * >::iterator P, int wp=0)
- {I currently disabled displacement calculation as it takes forever}
- Member StatisticsVector< T >::evaluate_wall_force_statistics (Vec3D P, int wp=0)
- this has recently been fixed
- Member StatisticsVector< T >::gather_force_statistics_from_fstat_and_data ()
- {fstat misses torque; any new implementation of storing forces should also store the torque}
- Member StatisticsVector< T >::gather_force_statistics_from_p3c (int version)
- This has to be tested
- Member StatisticsVector< T >::gather_force_statistics_from_p3w (int version, std::vector< int > &index)
- This has to be tested
- Member StatisticsVector< T >::gather_statistics_collision (int index1, int index2, Vec3D Contact, Mdouble delta, Mdouble ctheta, Mdouble fdotn, Mdouble fdott, Vec3D P1_P2_normal_, Vec3D P1_P2_tangential)
: this is to make the stresses infinitely (i.e. 300 units) long; has to be improved such that it always extends to z->inf
this is to make the stresses infinitely (i.e. 300 units) long
{this only works for StatType Z}
{I, Thomas, removed the effect on different particle sizes bc it gave wrong results in the stress balance; why is this here?}
{fabric should be divided by N}
{Fabric definition only works for monodispersed particles, i.e. C=(F_xx+F_yy+F_zz)/nu only for monodispersed particles}
check this is not killing the Heaviside CG function. If it is donot use the Heaviside function, the simple solution.
- Member StatisticsVector< T >::output_statistics ()
{Particles shouldn't be unfixed, in case you do live statistics; please correct}
We now have an idea of how to deal with fixed particles better, so this can be improved.
- Member StatisticsVector< T >::periodicWalls
- {Thomas: the case periodicWalls=true seems to mess up some statistics. Needs to be checked or removed}
- Member StatisticsVector< T >::print_CG ()
- {Thomas: stat file should include all variables such as CGType Stattype gradient timevariance timeaveraged, ...}
- Member StatisticsVector< T >::readStatArguments (unsigned int argc, char *argv[])
- this should also set the ene,restart filename
- Member StatisticsVector< T >::rmin
- Thomas: maybe this fixed condition should be replaced by a condition function, bool include_statistics_if()
- Member StatisticsVector< T >::set_w2 (Mdouble new_)
- {a default cutoff of 4.0 would be nicer}
- Member StatisticsVector< T >::statistics_from_fstat_and_data ()
- {the ignore-periodic-walls should be automated for averaged dimensions}
- Member StatisticsVector< T >::statistics_from_p3 ()
- {the ignore-periodic-walls should be automated for averaged dimensions}
- Member TangentialSpringParticle::moveInHandler (int newPos)
- Is a time restriction neccesary here?
- Class Vec3D
- Need to generise this to n-dimensional vectors of any type