It is difficult to know the correct usage of the GeometricField member function correctBoundaryConditions as the documentation is sparse. My understanding is that it should be called for a volume field if that field is not modified by a call to a solve function but by other means such as an assignment statement. But my understanding may not be correct as I can see places in the OpenFOAM code where correctBoundaryConditions is not called despite volume variables being changed by assignments. For example, in the interPhaseChangeFoam solver:
pEqn.H near the end p_rgh is in some cases updated as
p_rgh = p - rho*gh;
alpha1 is updated as
alpha1 = 0.5*alpha1 + 0.5*alpha10;
Some clarification of the correct usage of correctBoundaryConditions would be helpful. In particular, when it should be called and when not.