-
Notifications
You must be signed in to change notification settings - Fork 360
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
Major MMF2/PAM updates #6354
Major MMF2/PAM updates #6354
Conversation
…to whannah/mmf/pam-updates
The latest commit should address issue #6363 |
//------------------------------------------------------------------------------------------------ | ||
//------------------------------------------------------------------------------------------------ | ||
//------------------------------------------------------------------------------------------------ | ||
|
||
// set number of CRM steps | ||
int nstop = int(gcm_dt/crm_dt); | ||
int nstop = int(gcm_dt/crm_dt_fixed); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has an implied floor
operation. Is that what you intend if they aren't evenly divisible? Another way to handle non-evenly divisible could be:
int nstop = std::ceil(gcm_dt / crm_dt_fixed);
crm_dt_fixed = gcm_dt / nstop
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm actually not sure which is better or if it even matters.... so I'm just gonna leave the implied floor in there.
@whannah1 anything else to do here? |
d6bfec1
to
2590f22
Compare
@rljacob looks like there's a new problem that's been created by other updates - which I think will all be fixed when the eamxx code in this repo is updated. Not sure how to navigate this, so I might just leave this in a holding pattern for a bit. |
Waiting for SCREAM update #6489 and a few more changes. |
@whannah1 is this ready? |
@rljacob @brhillman This PR is ready to go. |
This brings in several updates and fixes for the PAM CRM used in the MMF2 compsets to improve stability and throughput. Some of these required updates to the PAM submodule, but the most important change was the addition of adaptive sub-cycling in the PAM driver. This change allowed the CRM time step to be increased to 10 seconds, which dramatically improved the throughput while also making the model much more resilient to numerically unstable conditions due to unrealistically strong velocities (still not sure why these occur in the first place). List of notable changes for PAM and/or the driver: adaptive subcycling in PAM driver enable variance transport by default disable mean-state acceleration for dry density use crm_nx=45 with exact interpolation for PAM dycor (requires odd CRM columns) increase PAM hyperdiffusion timescale to 60 seconds to reduce over-smoothing Fixes #6363 [non-BFB] only for MMF2
Merged to next. |
This brings in several updates and fixes for the PAM CRM used in the MMF2 compsets to improve stability and throughput. Some of these required updates to the PAM submodule, but the most important change was the addition of adaptive sub-cycling in the PAM driver. This change allowed the CRM time step to be increased to 10 seconds, which dramatically improved the throughput while also making the model much more resilient to numerically unstable conditions due to unrealistically strong velocities (still not sure why these occur in the first place).
List of notable changes for PAM and/or the driver:
Fixes #6363
[non-BFB] only for MMF2