Simulation Warnings - Xorgon/DEMOranges GitHub Wiki

There are a few warning messages that are built into various parts of the simulation code. These are designed to give information about possibly problematic situations in a simulation. These warnings are unlikely to cause further errors because appropriate checks are employed further down the line, but they may indicate that inappropriate simulation settings are being used. Some information and recommendations with regards to these warnings are below, information about other warnings can be found by reading the code, if necessary.

Generally speaking it isn't good to have these warnings, but it doesn't necessarily mean complete failure either. If a few messages like this occur, or a message keeps occurring with similar values, it is likely that just a couple particles have escaped the domain or encountered problems. With 10,000,000 particles, that isn't all that big of a deal, although it isn't particularly great either.

Assign Particle Count Failed

An example of this would be:

Warning: assign particle count failed at, pos: (0.19485738, 0.05928578, 1.00000001), cv: (1, 5, 10)

This warning is caused by a particle being calculated as having a CV with indices outside of the domain. This won't crash the simulation, but particle-particle collisions for that particle will not be calculated.

The code that outputs this warning can be found in kernels/assign_particles.cl#13.

Particle Assigned to Array with particle Count of 0

An example of this would be:

WARNING: Particle assigned to array with particle count of 0. idx = 1337, pos: (0.19485738, 0.05928578, 1.00000001), max_idx = 1000

This warning occurs if a particle is assigned to an array that previously had no particles counted in it. This won't crash the simulation, but particle-particle collisions for that particle will not be calculated.

The code that outputs this warning can be found in kernels/assign_particles.cl#31.

Excessive Particle Overlap

An example of this would be:

Warning: Excessive particle overlap (0.081168), p1: (0.121931, -4.235168, 3.125936), p2: (0.125903, -4.249930, 3.136933)

This error alerts the user of particles that overlap by more than 3/4ths of their diameters. This indicates that the collisions may be too soft or that the timestep is too high. This is often encountered when large numbers of particles are compressed onto one another, for example in the box simulation.

The code that outputs this warning can be found in kernels/calculate_pp_collision.cl#92.

Force Output

An example of this would be:

force = 27769.423828, stiff = 100000.000000, overlap = 0.005252, damping_coeff = 32.424324, vel = 840.239746

This output is closely related to the excessive particle overlap warning in that it often occurs under similar circumstances. This message is output when the force exceeds 10000. As with the excessive particle overlap warning, this doesn't necessarily mean that something has gone wrong, but it makes it quite likely (especially with very high velocities, as in the above example).

The code that outputs this warning can be found in kernels/calculate_pp_collision.cl#79.

Failed to Convert Position to CV Coordinates

An example of this would be:

Failed to convert position to CV coordinates. Position outside of domain. [21.852364, 80.134811, -292.080322].

This warning occurs if a particle is outside of the domain, and so CV coordinates cannot be calculated for it. This often occurs if a particle is forced out of the domain, either through a wall or by large forces causing it to fly off. These situations will have very large particle position coordinates associated with it, as in the example above. If there are a few numbers that repeat similar values then it is likely that just a few particles have escaped. This can also occur if particles are just on the edge of the domain and sit slightly out of it, this is characterized by particle coordinates close to a boundary that may be slightly beyond the limit.

The code that outputs this warning can be found in kernels/kernelUtils.cl#L78.

Colliding Particles with Infinite Densities.

The message for this is always:

Warning: Colliding particles with infinite densities.

This occurs if two particles are in positions that mean they are colliding but they have infinite densities. Particles with infinite density cannot move, so this should only occur if they have been placed in positions that cause them to collide. This warning should basically never occur, but is included in this page just in case.

The code that outputs this warning can be found in kernels/kernelUtils.cl#L111.