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

Add variable rescaling for aerosol species #1339

Draft
wants to merge 10 commits into
base: develop
Choose a base branch
from

Conversation

andytangborn
Copy link
Collaborator

@andytangborn andytangborn commented Oct 18, 2024

This is a draft PR for additions to chem_diagb.h that could allow for a variable rescaling (rs) for each aerosol species. Not that it does not yet include a way to read the values in from a yaml or config file. The it compiles and runs, but I have not yet tested it using 3dvar. And it still has lots of print statements used for testing. It runs in about 40 seconds at C96, and is probably slowed down by the print statements. Any comments will be helpful.

Also, note the if statement. I was unsure of the dimensions of an array, so I put in a test. I'll remove it along with the print statements.

… aerosol species. Does not yet include a way to read the values in from a yaml or config file.
if (fullConfig.has("rescale")) {
double rescale;
fullConfig.get("rescale", rescale);
util::multiplyFieldSet(bkgErrFs, rescale);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about using multiplyFieldSets? I think this would require creating a 3D array of values in a new field set, but that would then set us up for the ability to scale by height/latitude/location at a later date. Thoughts?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can look at it and see how that would work. It took me some time to make something that could run....

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did try multiplyFieldSets, but had trouble getting it to compile.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we just read in another 'state' that is the scaling factors and be proactive on the 3D front?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So have a file with the scaling factors, and read it in from there?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so, that way we can easily scale by lat,lon,height and species

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I think I understand. A full background state file, filled with rescaling values for each aerosol species and at all locations. I'd like to try just 14 values first and see if we can do better.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah they can be constant in x,y,z to start

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

Successfully merging this pull request may close these issues.

2 participants