-
Notifications
You must be signed in to change notification settings - Fork 31
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
base: develop
Are you sure you want to change the base?
Conversation
… 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); |
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.
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?
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 can look at it and see how that would work. It took me some time to make something that could run....
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 did try multiplyFieldSets, but had trouble getting it to compile.
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 wonder if we just read in another 'state' that is the scaling factors and be proactive on the 3D front?
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.
So have a file with the scaling factors, and read it in from there?
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 think so, that way we can easily scale by lat,lon,height and species
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.
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.
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.
yeah they can be constant in x,y,z to start
…nd multply with stddev file.
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.