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

number of injection wells #32

Open
zhen0z opened this issue Sep 16, 2024 · 7 comments
Open

number of injection wells #32

zhen0z opened this issue Sep 16, 2024 · 7 comments

Comments

@zhen0z
Copy link

zhen0z commented Sep 16, 2024

Hi,

I’m impressed with this package and was wondering if it supports multiple injection wells. It seems that the examples are focusing on single well scenarios.

Thanks,
Zhen

@ziyiyin97
Copy link
Member

ziyiyin97 commented Sep 17, 2024

Hi Zhen,

Thanks for your interest. Yes this should support multiple injection wells if you use this structure (but I haven't tested it yet and I am currently busy with something else)
https://github.com/slimgroup/JutulDarcyRules.jl/blob/8f8f197a0ad4e03bfec5f60b6bb4ce431cd14903/src/FlowRules/Types/jutulVWell.jl#L3C1-L10C1. For example, the code below is expected to give you a multi-injection well with the same injection rate. It might need some light work (probably in this file

function setup_well_model(M::jutulModel{D, T}, f::Union{jutulForce{D, T}, jutulVWell{D, T}}, tstep::Vector{T};
) to enable different injection rates for different wells.

multi_inj_q = jutulVWell(inj_rate, [:Injector, :Injector], [loc1, loc2], startz, endz)

This code base should be maintained by some of my lab mates. @haoyunl2 @apgahlot @gbruer15 could you take a look and see if my proposed solution works? Thanks!

@ziyiyin97
Copy link
Member

And https://github.com/sintefmath/JutulDarcy.jl surely supports multi injection wells.

@haoyunl2
Copy link

Hi Zhen and Francis,

Francis, thanks for the reply. Right now, JutulDarcyRules only supports multiple injection wells with the same injection rate. The example code for the setup is attached below.


using JutulDarcyRules
d = (1.0, 20.0, 3.0)
inj_loc1 = (3, 1) .* d[1:2]
inj_loc2 = (10, 1) .* d[1:2]
prod_loc = (28, 1) .* d[1:2]
irate = rand()
q = jutulVWell{3, Float64}(irate, [:Injector, :Injector], [inj_loc1, inj_loc2], [5 * d[3]], [6 * d[3]])

Can you explain your condition for using the multiple injection wells? I think I can modify the code to adapt different injection rates for different injection wells.

@ziyiyin97
Copy link
Member

@haoyunl2 Can you add a unit test to the test suite to verify e.g. mass conservation when multiple injection well is used, before we reach the conclusion that the multi-injection-well setup is supported?

@zhen0z
Copy link
Author

zhen0z commented Sep 18, 2024

Hi Francis and Haoyun,

Thank you for the fantastic explanation! It was very helpful. I'm also wondering how to set different rates for the production and injection wells. For example, if we have two injection wells and three production wells. It might be more realistic if the total injection rates matched the total production rates. Thanks again!

@haoyunl2
Copy link

Hello Zhen,

Thanks for explaining your situation and suggestions. Currently, JutulDarcyRules does not support different rates for the the multiple wells. But, I will modify the code to support different rates. After the changes are pushed, I will let you know!

@zhen0z
Copy link
Author

zhen0z commented Sep 19, 2024

That'll be great, thanks for the kind support!

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

3 participants