Skip to content
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

Bringing this into flopy #3

Open
wpbonelli opened this issue Oct 16, 2023 · 2 comments
Open

Bringing this into flopy #3

wpbonelli opened this issue Oct 16, 2023 · 2 comments

Comments

@wpbonelli
Copy link

Hi @bdestombe, in recent development talks there is some interest in a flopy facility to convert MODFLOW/etc input files to equivalent Python. One motivation, besides those you list in the readme, is programmatic access to example models. A first step in this direction is to define the models in Python, to avoid the need to package input files with flopy.

This project seems like a great starting point. Would it be OK to build on your work here? The idea being to generalize it and add support for MF6.

If you'd like to contribute that would be very welcome, but certainly no obligation/expectation. In any case, if this does make it into flopy, the authors/citation could be updated to reflect your efforts here. Thanks in advance.

@langevin-usgs

@bdestombe
Copy link
Owner

Hi @wpbonelli, sounds like a great plan and I am happy to help! I do see it as something useful, however I didn't get into supporting the mf6 ecosystem. It makes me very happy that this work would make others happy.

@bdestombe
Copy link
Owner

The additional motivation you are describing makes perfect sense, however I do see it as the last steps of the implementation as it is important that every step along the way can be tested. I would start with creating a representation string of all the various parameter types (lists, arrays, mflist, recarrays etc. ), because these string representations can be tested independently.

Second step would be to gather parameter names, parameter values, default values, and parameter descriptions by inspecting the package object, after which a representation string of a package can be created. This step can be tested by ensuring that the input file written by the package object is the same as input file written by evaluating the representation string.

The final step would be load full models and ensure that models, the simulation packages, and the model packages all work nicely together. Again this can be tested by ensuring that the input files that were loaded before are the same as the ones created by evaluating the created script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants