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

Feat (mfusg): FloPy MODFLOW-USG support (with .bas file example) #1476 #2378

Draft
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

swfwmd
Copy link
Contributor

@swfwmd swfwmd commented Nov 22, 2024

  • Feat(mfusg): add mfusg transport version 2.4.0 support

fixes and updates included with feature:
New Features

  • MfUsgBct : Block Centered Transport (BCT)
  • MfUsgPcb : Prescribed Concentration Boundary (PCB)
  • MfUsgDdf: Density Driven Flow (DDF)
  • MfUsgDpf: Dual Porosity Flow (DPF)
  • MfUsgDpt: Dual Porosity Transport (DPT)
  • MfUsgMdt: Matrix Diffusion Transport (MDT)
  • MfUsgRch: Recharge (RCH)
  • MfUsgLak: Lake (LAK)

Modified Packages

  • MfUsgBcf : Block Centered Flow (BCF)
  • MfUsgCln : Connected Linear Network (CLN)
  • MfUsgSms : Sparse Matrix Solver (SMS)
  • MfUsgWel : Well (WEL)
  • ModflowFhb : Flow and Head Boundary (FHB)

See Panday, S., 2024; USG-Transport Version 2.4.0: Transport and Other Enhancements to MODFLOW-USG, GSI Environmental, July 2024 http://www.gsi-net.com/en/software/free-software/USG-Transport.html

…lowpy#1476

* Feat(mfusg): add mfusg transport version 2.4.0 support

fixes and updates included with feature:
New Features
* MfUsgBct : Block Centered Transport (BCT)
* MfUsgPcb : Prescribed Concentration Boundary (PCB)
* MfUsgDdf: Density Driven Flow (DDF)
* MfUsgDpf: Dual Porosity Flow (DPF)
* MfUsgDpt: Dual Porosity Transport (DPT)
* MfUsgMdt: Matrix Diffusion Transport (MDT)
* MfUsgRch: Recharge (RCH)
* MfUsgLak: Lake (LAK)

Modified Packages
* MfUsgBcf : Block Centered Flow (BCF)
* MfUsgCln :  Connected Linear Network (CLN)
* MfUsgSms :  Sparse Matrix Solver (SMS)
* MfUsgWel :  Well (WEL)
* ModflowFhb : Flow and Head Boundary (FHB)

See Panday, S., 2024; USG-Transport Version 2.4.0: Transport and Other Enhancements to MODFLOW-USG, GSI Environmental, July 2024 http://www.gsi-net.com/en/software/free-software/USG-Transport.html
Copy link

codecov bot commented Nov 22, 2024

Codecov Report

Attention: Patch coverage is 6.27262% with 2331 lines in your changes missing coverage. Please review.

Project coverage is 34.7%. Comparing base (bb9824e) to head (7957756).
Report is 9 commits behind head on develop.

Files with missing lines Patch % Lines
flopy/mfusg/mfusgoc.py 2.9% 656 Missing ⚠️
flopy/mfusg/mfusgbct.py 3.6% 421 Missing ⚠️
flopy/mfusg/mfusglak.py 3.4% 394 Missing ⚠️
flopy/mfusg/mfusgrch.py 4.9% 232 Missing ⚠️
flopy/mfusg/mfusgdpt.py 7.9% 186 Missing ⚠️
flopy/mfusg/mfusgmdt.py 10.1% 142 Missing ⚠️
flopy/mfusg/mfusgcln.py 2.2% 87 Missing ⚠️
flopy/mfusg/mfusgdpf.py 20.7% 61 Missing ⚠️
flopy/mfusg/mfusgpcb.py 29.7% 52 Missing ⚠️
flopy/mfusg/mfusgddf.py 21.6% 47 Missing ⚠️
... and 5 more
Additional details and impacted files
@@            Coverage Diff             @@
##           develop   #2378      +/-   ##
==========================================
- Coverage     68.4%   34.7%   -33.7%     
==========================================
  Files          294     301       +7     
  Lines        59390   61927    +2537     
==========================================
- Hits         40652   21525   -19127     
- Misses       18738   40402   +21664     
Files with missing lines Coverage Δ
flopy/mfusg/__init__.py 100.0% <100.0%> (ø)
flopy/mfusg/mfusgwel.py 11.1% <ø> (-60.4%) ⬇️
flopy/mfusg/mfusgdisu.py 7.4% <0.0%> (-74.8%) ⬇️
flopy/modflow/mffhb.py 5.8% <0.0%> (-48.4%) ⬇️
flopy/mfusg/mfusg.py 14.5% <0.0%> (-51.8%) ⬇️
flopy/mfusg/mfusgsms.py 6.3% <0.0%> (-84.1%) ⬇️
flopy/mfusg/mfusgbcf.py 7.5% <0.0%> (-1.4%) ⬇️
flopy/mfusg/mfusgddf.py 21.6% <21.6%> (ø)
flopy/mfusg/mfusgpcb.py 29.7% <29.7%> (ø)
flopy/mfusg/mfusgdpf.py 20.7% <20.7%> (ø)
... and 7 more

... and 245 files with indirect coverage changes

---- 🚨 Try these New Features:

@langevin-usgs
Copy link
Contributor

Thanks for this, @swfwmd. Have you thought about some of the other issues raised in #1476? It's still unclear how to test these changes. Maybe @cnicol-gwlogic or @martinvonk have some thoughts?

@swfwmd
Copy link
Contributor Author

swfwmd commented Nov 22, 2024

I am working on the test cases and will commit later

@cnicol-gwlogic
Copy link
Contributor

cnicol-gwlogic commented Nov 22, 2024

My understanding was a key barrier to flopy tests for usg-transport was this: a git repo with tagged releases and ci testing for usg-transport was needed, so the flopy ci can pull in that executable as needed as usg-transport is developed.

I had a very quick stab at this some time ago based on mf6, but again haven't had the time to finish it. It needs some work, and would need to be brought into pymake etc. Someone pointed out to me last week that pymake downloads usg-transport exe from he gsi site these days, I believe, but I don't think it compiles the code and does not seem to live update versions as usg t releases are made (as far as I noticed in my glancing look).

@martinvonk
Copy link
Contributor

My understanding was a key barrier to flopy tests for usg-transport was this: a git repo with tagged releases and ci testing for usg-transport was needed, so the flopy ci can pull in that executable as needed as usg-transport is developed.

This was also my understanding. And I did not have the time (or fortran experience :)) either to set this up. So if we'd want this, we would have to:

  1. Set up and improve the USG-transport repo with tests, releases and all the fancy CI stuff
  2. Merge the two FloPy forks that now exist for MODFLOW USG-Transport. For example, my fork has the Richards equation and PFAS transport options. Haven't looked closely at @swfwmd fork yet for it's functionalities.
  3. Make tests and example notebooks for the FloPy usage of MODFLOW USG-Transport

@wpbonelli wpbonelli marked this pull request as draft November 25, 2024 12:08
@hzhang4
Copy link
Contributor

hzhang4 commented Nov 25, 2024

I will contact Sorab to see if it is possible to set up a git repo for usg-transport.

@jdhughes-usgs
Copy link
Contributor

The gsi version of mfusg is available from https://github.com/MODFLOW-USGS/executables/releases. This could be used to test usg-transport flopy functionality.

@wpbonelli wpbonelli added this to the 3.10 milestone Nov 26, 2024
hzhang4 and others added 6 commits November 26, 2024 15:22
…lowpy#1476

* Feat(mfusg): add mfusg transport version 2.4.0 support

fixes and updates included with feature:
New Features
* MfUsgEvt: EVT added ETFACTOR support for transport

Modified Packages
* MfUsg :
* MfUsgBct :
* MfUsgCln :
* MfUsgWel :
* MfUsgDpf :
* MfUsgRch :

Examples:
Added usg_tranport folder under example\data
with following examples:
Ex1-1D
Ex2_Radial_2D
Ex3_CLN_Conduit
Ex4_Dual_Domain
Ex5_Henry
Ex6_Stallman
Ex7_Multispecies
Ex8_Lake
Ex9_PFAS

See Panday, S., 2024; USG-Transport Version 2.4.0: Transport and Other Enhancements to MODFLOW-USG, GSI Environmental, July 2024 http://www.gsi-net.com/en/software/free-software/USG-Transport.html
…lowpy#1476

Hua Zhang @ swfwmd
Feat(mfusg): add mfusg transport version 2.3.0 support
fixes and updates included with feature: New Features

MfUsgBct : Block Centered Transport (BCT)
MfUsgPcb : Prescribed Concentration Boundary (PCB)
MfUsgDdf: Density Driven Flow (DDF)
MfUsgDpf: Dual Porosity Flow (DPF)
MfUsgDpt: Dual Porosity Transport (DPT)
MfUsgMdt: Matrix Diffusion Transport (MDT)
MfUsgRch: Recharge (RCH)
MfUsgLak: Lake (LAK)
MfUsgEvt: Evt
Modified Packages

MfUsgBcf : Block Centered Flow (BCF)
MfUsgCln : Connected Linear Network (CLN)
MfUsgSms : Sparse Matrix Solver (SMS)
MfUsgWel : Well (WEL)
ModflowFhb : Flow and Head Boundary (FHB)
ModflowChd : CHD
ModflowBas : BAS

Auto test:
Added test_usg_transport.py
Added example/data/mfusg_transport with 9 test examples
Added example notebooks
.docs/Notebooks/mfusg_transport_Ex9_PFAS.py .docs/Notebooks/mfusg_transport_Ex1_1D.py .docs/Notebooks/mfusg_transport_Ex2_Radial.py .docs/Notebooks/mfusg_transport_Ex3_Conduit.py .docs/Notebooks/mfusg_transport_Ex4_DualDomain.py .docs/Notebooks/mfusg_transport_Ex5_Henry.py .docs/Notebooks/mfusg_transport_Ex6_Stallman_Heat_Transport.py .docs/Notebooks/mfusg_transport_Ex7a_Discrete_Fracture.py .docs/Notebooks/mfusg_transport_Ex7b_SandBox.py .docs/Notebooks/mfusg_transport_Ex7c_ChainDecay.py .docs/Notebooks/mfusg_transport_Ex8_Lake.py

Modified test_usg.py

See Panday, S., 2024; USG-Transport Version 2.4.0: Transport and Other Enhancements to MODFLOW-USG, GSI Environmental, July 2024 http://www.gsi-net.com/en/software/free-software/USG-Transport.html
@swfwmd
Copy link
Contributor Author

swfwmd commented Dec 20, 2024

Added tests and notebooks:

Added test_usg_transport.py
Added example/data/mfusg_transport
with 9 test examples
Ex1_1D
Ex2_Radial
Ex3_Conduit
Ex4_DualDomain
Ex5_Henry
Ex6_Stallman
Ex7_Matrix_Diffusion
Ex8_Lake
Ex9_PFAS

Added example notebooks
mfusg_transport_Ex1_1D.py
mfusg_transport_Ex2_Radial.py
mfusg_transport_Ex3_Conduit.py
mfusg_transport_Ex4_DualDomain.py
mfusg_transport_Ex5_Henry.py
mfusg_transport_Ex6_Stallman_Heat_Transport.py
mfusg_transport_Ex7a_Discrete_Fracture.py
mfusg_transport_Ex7b_SandBox.py
mfusg_transport_Ex7c_ChainDecay.py
mfusg_transport_Ex8_Lake.py
mfusg_transport_Ex9_PFAS.py

Modified test_usg.py

to include "MfUsgWel",
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

Successfully merging this pull request may close these issues.

7 participants