-
Notifications
You must be signed in to change notification settings - Fork 25
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
Overhaul approach to physical constants and model parameters #86
Comments
This topic came up again in #128. With a growing number of parameters and constants, in particular in relation to the parameterizations, the various structs and constantly unpacking them is becoming a bit messy. @milankl suggested an example structure like (OUTDATED see below) struct Constants
time_integration::TimeConstants
parametrization::ParametrizationConstants
end
struct ParametrizationConstants
clouds::CloudConstants
convection::ConvectionConstants
end as well as, potentially, some kind of In addition, we need to move some numbers from the Parameters struct into the Constants struct in order to avoid type promotions: #128 (comment) Let's use this issue to do a general overhaul of how we use parameters and constants. |
Picking this up again, with #241 we'll have the following abstract type AbstractDynamicsConstants{NF} end
abstract type AbstractParameterizationConstants{NF} end
struct DynamicsConstants{NF<:AbstractFloat} <: AbstractDynamicsConstants{NF}
struct ParameterizationConstants{NF<:AbstractFloat} <: AbstractParameterizationConstants{NF} While it sounds tempting to group both into
So schematically we have
|
Currently, there is not a clear distinction between universal physical constants, which never change, and model parameters, which might.
Copying @milankl's comment from PR #82:
The text was updated successfully, but these errors were encountered: