Modifying Geometry (top and bottom) in Existing mfusg DISU models? #1430
-
Let's say I have an existing mfusg model which I can load using I also have a function to read a GSF file and create the arrays needed to build the model unstructured modelgrid object (verts, iverts, xc, yc, ncpl, top, botm). Now, one would be able to modify the top and botm arrays of the modelgrid object using a plethora of methods (interpolation, constant values, etc, etc), and afterwards I can get all the arrays I would need to reconstruct the DISU object either from the original DISU, or the altered modelgrid object... all but one: the fahl array. I understand that if I only change the top and botm arrays, then the fahl array should be the only other array that would change. However I cannot get this array from the modelgrid. There is a function ¿Is there any way I'm missing for getting the updated fahl array without having to code it from scratch for mfusg models? (btw: I would be glad to share the function that reads the gsf file, it's not that sophisticated but haven't found the time to go through the contributing formal process). |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 7 replies
-
Hi @javgs-bd - not that I know of sorry. I usually get Algomesh to redo this side of things for me, or I guess if you are using gridgen, a rebuild in that would do it too. I can add this to my list for flopy if you want but I wouldn't expect to get to it any time soon. If I did it, it would have to be very clear that it is only for layer thickness changes; the easiest way might be to track changes in thickness, and adjust fahl accordingly on the fly (rather than try to write something to work it out from cell geometry, which I am guessing is what that mf6 stuff does - better, but more work!). Chris. |
Beta Was this translation helpful? Give feedback.
-
Many thanks @cnicol-gwlogic. I'll try to code it then. If it works I'll try to add it to a PR. |
Beta Was this translation helpful? Give feedback.
-
Sorry for the confusion on this. The FAHL input array for MODFLOW-USG is an area term for both horizontal and vertical connections. The GRIDGEN docstring in flopy is incorrect, as you note. Regarding this post, the FAHL array would need to be recalculated if tops and bottoms were to change. This is different from MODFLOW 6, where instead of an area term for all connections, the user enters an HWVA (horizontal width / vertical area) array. In this case, the HWVA does not need to change if the tops and bottoms change, but it does have a mix of lengths and areas. Not sure which approach is more confusing! |
Beta Was this translation helpful? Give feedback.
Hi @javgs-bd - not that I know of sorry. I usually get Algomesh to redo this side of things for me, or I guess if you are using gridgen, a rebuild in that would do it too. I can add this to my list for flopy if you want but I wouldn't expect to get to it any time soon. If I did it, it would have to be very clear that it is only for layer thickness changes; the easiest way might be to track changes in thickness, and adjust fahl accordingly on the fly (rather than try to write something to work it out from cell geometry, which I am guessing is what that mf6 stuff does - better, but more work!).
Chris.