Conversation
The collision frequency between N2+ and O is misspelled in lamdas. Correct this based on Schunk and Nagy (2009). Thanks to Yizhe Zhang.
Equivalent rewrite of the loop to reduce code complexity
|
This change looks good to me. It might help saving time during spin-up and other situations when O+ does not change drastically. What do you think? @phamkh @jvilaperez |
|
It looks good to me too. It can save some iterations in some cases. |
As there isn't a thorough test for difference cases, strengthen the criteria for now until we are more confident with the change.
|
Lines 105 to 106 in a0d5e33 Thus, when the loop is exited before the last iteration, it is never called. It may be sufficient to move the call outside the loop. Since Sorry for overlooking this. |
The postprocessing terms are calculated at each sub-cycling. Thanks Armin for noticing this.
That is right. We all missed this as well. Just post a quick fix to correct this. |
59e0c5d to
8bc5b9e
Compare
… 25 iterations to reduce communication costs
|
I conducted some tests for the runtime, I will also investigate the differences in O+ later. The larger the maximal number of iterations, the more runtime is saved when using the abort criterion.
Using a less strict abort criterion could further reduce runtime. However, we need to ensure the differences in O+ are reasonable. |
Thanks a lot! This benchmark is very helpful. |
|
It turned out that
This explains why the results are off when the loop is exited before |

The current implementation uses a fixed number of iterations to update O+ number concentration. This number is controlled by the
nstep_subinput option. Instead, I propose to usenstep_subas the maximum number of iterations and break the loop once a certain threshold/epsilon has been reached. This makes the model more versatile, as it automatically adapts the number of iterations to the current situation.