-
Notifications
You must be signed in to change notification settings - Fork 5
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
MARBL
is not a Component
#115
Comments
MARBL
is not a Component
MARBL
is not a Component
This is a really good point, and I think something we potentially discussed briefly right at the start. Is there anything that an
This is not the worst thing in the world, if it forces us to be clearer about our interfaces and responsibilities. |
The |
I think there's a discussion to be had even about whether MARBL even corresponds to an object in C-Star. It very much is an external library to ROMS, and could be seen as an optional dependency of ROMS in the same way an MPI library could, the only difference being that a vanishingly small number of users will run ROMS in serial, but a large number will run it without MARBL. |
There are some fundamental issues with C-Star's design, many of which come from treating
MARBL
andROMS
asComponent
subclasses.The design of the
Component
base class is reasonable. It is fair to assume that to run a specific instance of any Earth (sub)system model, one would need:The requirements of most ESMs resemble this, and they can run independently of being coupled into a greater system. MARBL cannot run independently of being coupled to another component, and thus most of the items in the above list make no sense as belonging to a
MARBLComponent
instance. This forces us to create a vary weak base class with most of these things missing, in order to accommodate this weird case in which they don't make sense. In fact, these attributes do make sense, and what makes no sense is treating MARBL as a "Component" (a term that we never rigorously defined).I would instead call it an
ExternalLibrary
or something similar and use it as another attribute of aROMSComponent
instance. The "problem" that results from this is that C-Star will then consist of a single Component subclass until it is expanded to accommodate another model.The text was updated successfully, but these errors were encountered: