Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flux Accumulation #13

Closed
jb-mackay opened this issue Aug 27, 2021 · 1 comment
Closed

Flux Accumulation #13

jb-mackay opened this issue Aug 27, 2021 · 1 comment

Comments

@jb-mackay
Copy link
Contributor

A flux between model components that take multiple numbers of steps n between coupling periods needs to be accumulated and the average flux must be passed to the coupler for conservation.

For perfect conservation, the flux accumulator should be integrating the flux via the same solver that the model computing the flux uses; e.g. with a multistage RK method, the flux accumulator needs to know the flux computed at each stage of integration. This presents a challenge if we do not have the ability to either access information during all solver stages or if we cannot add a prognostic variable to the model that is subject to the same integration scheme. If the coupler requires this, this imposes requirements on the component models that may require some refactoring for coupler compatibility, which weakens the coupler's ease of use.

A simpler solution is to average the flux at the end of each of the n steps the model computing the flux takes, where we know the coupler will have access to flux information. This approach is taken by CMEPS, described here, with the goal of simply computing the "most conservative and accurate representation of averaged fields" possible. While not perfectly conservative, it may be the easiest starting point. This also allows flux accumulation to be automated by the coupler, which is helpful since a model should not need to consider flux accumulation in a standalone mode. If we know a given model supports computing a coupled flux more accurately, we could turn off this default accumulation behavior.

@LenkaNovak
Copy link
Collaborator

Partly complete, rest will be addressed in #211

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants