rhoCentralFoam: wrong Courant number output when using localEuler (LTS)

Summary

In rhoCentralFoam, there is a Mean and Max Courant number output based on the general time step. When using localEuler (LTS), this output reports irrelevant information as Courant numbers should rather be computed based on the local time scale.

This could be easily solved by adding a switch to compute Courant number based on local time scale when running with LTS.

Steps to reproduce

In the forwardStep tutorial, switch ddtSchemes from Euler to localEuler and run the case. Changing deltaT in controlDict doesn't affect the simulation since the solver uses LTS, but the Courant number output changes depending on the deltaT value.

What is the current bug behaviour?

No matter if the solver is running in LTS or not, the Mean and max Courant are computed in centralCourantNo.H as:

CoNum = 0.5*gMax(sumAmaxSf/mesh.V().field())*runTime.deltaTValue();
meanCoNum = 0.5*(gSum(sumAmaxSf)/gSum(mesh.V().field()))*runTime.deltaTValue();

What is the expected correct behavior?

Adding a switch and computing Courant based on the inverse timestep field rDeltaT rather than runTime.deltaTValue should fix the issue. There might be a more elegant way to write it, but something like this:

if (LTS)
{
	CoNum = 0.5*gMax(sumAmaxSf/mesh.V().field()/rDeltaT.primitiveField());		
	meanCoNum = 0.5*gAverage(sumAmaxSf/mesh.V().field()/rDeltaT.primitiveField());
}
else
{
	CoNum = 0.5*gMax(sumAmaxSf/mesh.V().field())*runTime.deltaTValue();
	meanCoNum =  0.5*(gSum(sumAmaxSf)/gSum(mesh.V().field()))*runTime.deltaTValue();
}	
			        

In my opinion this would be the minimal change to make to avoid outputting irrelevant and potentially confusing information when using LTS.

I implemented these modifications in the solver attached with a slight addition to report min, average and max Courant numbers when using LTS.

rhoCentralFoamCoCorr.zip

Relevant logs and/or images

Default output when running the forwardStep tutorial with LTS (deltaT 1, maxCo 0.2):

Time = 100

[...]

Mean and max Courant Numbers = 279.572 314.778
Flow time scale min/max = 0.000635368, 0.000804402

Output of the modified solver:

Time = 100

[...]

Flow time scale min/max = 0.000635368, 0.000804402
Courant Numbers: min = 0.123708, average = 0.199624, max = 0.2