-
Notifications
You must be signed in to change notification settings - Fork 23
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
Create abstract aerosol classes and stub aerosol model #205
Comments
How are these abstract classes related to the ones currently in use in CAM? |
The current classes in CAM provide an interface to allow an aerosol model to prepare quantities for advection and to process the results. I feel that we need more similar interfaces for other model processes. For example:
|
Is it a design goal to allow the creation of multiple aerosol objects? I can imagine that a model or physics package might want to run different aerosol models in parallel. For instance, one model could be used in a prognostic capacity with a second used as a diagnostic for comparison. The model should treat the aerosol object as a persistent object that carries an evolving state throughout an experiment. |
The current aerosol objects provide information about themselves, however, I feel that information is too general. For instance, in determining the what optical properties are available, CAM relies on an optics type of 'modal' to retrieve refractive aerosol optics information (aerosol_optics_cam.F90). Instead, could the object be a bit more reflective? Something like replacing:
with
While this is not currently possible due to module dependencies, reorienting responsibilities between classes could enable this kind of interface streamlining. Another possibility is introducing an 'aerosol_model' class which in the singular interface class. Internally, it would hold a singleton of the appropriate properties class. With a bit of adjustment, the
|
I guess they could be considered replacements or enhancements. They are intended to allow us to do the second phase of aerosol refactoring, which removes the CAM dependencies from the aerosol model code. |
We will be creating additional issues for these types of interactions, but in the spirit of incremental development, we created this issue to just put in place an initial version of the aerosol classes that can be used in CAM-SIMA, starting with just the radiation interface. |
Create an initial set of abstract aerosol classes based on those used to track aerosol parameters and state information in CAM. This initial version should just allow for the initialization of an aerosol model, and the ability for it to provide aerosol optical properties for a given state.
Also, implement a stub aerosol class that extends the abstract classes and returns values of 0 for all aerosol optical properties.
The text was updated successfully, but these errors were encountered: