When sojourn time is used on a facet, and the facet’s temperature is set to a parameter, the reflections from the surface reduce to 0 when the probability of sojourn time, t, reduces to 0. For example, f= 1e13 Hz, E = 50000 J mol-1, and T = 190 K. After t = 4216 s, p(t) = Af exp (-A*f t) reduces to 0, as does the reflection rate from the facet. (see attached simulation file and excel “hand” calculation).
This issue occurs only when a variable temperature parameter is used (even if the temperature parameter is constant with time). When the facet temperature is set to a fixed value, this issue is not observed - the reflection rate is constant with time.
Consequence: particle balance increases with time. This increasing particle balance is not physically accurate.
Thank you for reporting this. The time-dependent sojourn branch, used when a temp. param is set, uses a cumulative (survival) function to calculate the reflection time, whether this is necessary (changing temperature) or not (constant function). As you have guessed, the p(t) hits the double numerical floor (around 1E-300) and becomes exactly 0.
A quick fix seems to be to sample the survival function in log space, which works for your example:
Our testing shows that moving to log-space for survival probabilities passes this case and our own test geometries, so we merged the fix. It will be in 2.11.1, meanwhile you can download the fixed version (with also the Menu->Select init. particles fix), if you’d like:
Here you click build-artifact-windows (or an other os), and the Download button on the right side. This will get a 2.11 dev version that will auto-update when 2.11.1 is out.
Perfect! The result looks as expected when I tried the fixed version you linked to. Thanks very much for the very fast response and resolution. For myself and my colleagues, this feature is a huge advantage.