AJueling / melt

playing with ice shelf melt models
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

Code structure #1

Open AJueling opened 3 years ago

AJueling commented 3 years ago

I think it's useful to use this as a place where we discuss and update the overview of the overall code structure, since there are already a few files/classes/functions calling each other. Here is s sketch of the current setup:

Screenshot 2020-10-27 at 15 32 17

The classes are in large font size and the corresponding .py files are in a small font size. The ModelConstants (blue) are shared between models, hence a single unique class. I divided the geometry into two classes now (orange), one for the idealized test setups, and one for the realistic geometries derived from the Bedmachine data. The models (black) should all work for the idealized geometries, while this does not make sense for the Plume model and the realistic geometry. I tentatively added the 2D setup of the Plume model here (in grey) because that could take realistic geometries. It needs the corresponding grounding line depth and distance to that at each grid point, for which we could use the advection algorithm of the PICOP model, or Werner's 16 direction algorithm (which would need to be implemented).

(I added the powepoint file which I used to create the image to our melt project MS Teams files section.)

erwinlambert commented 3 years ago

Cool. So from now on, we should use sheet.py instead of sheet_C.py (the latter can be removed actually. But I didn't want to do that now in case you're using it).

It also includes 1 physical constant (f) and some input parameters that we can include in ModelConstants or a separate input file. Also, a bunch of code is included in sheet_utils.py which is called by sheet.py