Is your feature request related to a problem? Please describe.
Currently namelist.py provides the complete structure for a model namelist, including the physics settings. This means that 1) as we develop the Physics we need to also create a branch of NDSL to use in parallel, 2) the namelist is tailored to specific models instead of providing a general platform, and 3) the namelist in NDSL is getting pretty bloated as more physics is integrated. This is not a sustainable way to develop a model and breaks the concept of NDSL as a middleware platform.
Describe the solution you'd like
NDSL should provide the infrastructure to create namelist configs for model components like a NamelistFactory and then provide that for the dycore. Then the physics schemes like pySHiELD can import NamelistFactory to create PhysicsConfig. Pace itself can then import these and compose them into a single expected namelist.
Describe alternatives you've considered
Alternative ideas are welcome
Is your feature request related to a problem? Please describe. Currently namelist.py provides the complete structure for a model namelist, including the physics settings. This means that 1) as we develop the Physics we need to also create a branch of NDSL to use in parallel, 2) the namelist is tailored to specific models instead of providing a general platform, and 3) the namelist in NDSL is getting pretty bloated as more physics is integrated. This is not a sustainable way to develop a model and breaks the concept of NDSL as a middleware platform.
Describe the solution you'd like NDSL should provide the infrastructure to create namelist configs for model components like a NamelistFactory and then provide that for the dycore. Then the physics schemes like pySHiELD can import NamelistFactory to create PhysicsConfig. Pace itself can then import these and compose them into a single expected namelist.
Describe alternatives you've considered Alternative ideas are welcome