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

Preparatory work for fractures + wells #3021

Merged
merged 124 commits into from
Jun 14, 2024
Merged

Conversation

paveltomin
Copy link
Contributor

@paveltomin paveltomin commented Mar 5, 2024

For now, assuming wells are not directly connected to the fractures.

In this version, only SinglePhasePoromechanicsConformingFracturesReservoir solver can run, although I am having hard time to build a well-behaving example. Other versions of solvers with wells are drafted but commented out for now.

Added poromechanics initialization for contact solver - technically runs but needs refinements.

Side thing: add default template types to avoid too long nested definitions

@paveltomin paveltomin changed the title Draft for fractures+wells Preparatory work for fractures + wells Mar 15, 2024
@paveltomin paveltomin closed this Mar 15, 2024
@paveltomin paveltomin reopened this Mar 15, 2024
@paveltomin paveltomin marked this pull request as ready for review March 15, 2024 22:41
@paveltomin paveltomin self-assigned this Mar 15, 2024
@paveltomin paveltomin added the ci: run integrated tests Allows to run the integrated tests in GEOS CI label Mar 16, 2024
Copy link
Contributor

@jhuang2601 jhuang2601 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for enabling fault initialization

@jhuang2601 jhuang2601 added ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI and removed flag: no rebaseline Does not require rebaseline labels Jun 4, 2024
@jhuang2601 jhuang2601 added flag: requires rebaseline Requires rebaseline branch in integratedTests Theme - FF Faults & fractures modeling and removed flag: ready for review labels Jun 4, 2024
@@ -305,12 +305,12 @@ void SinglePhaseFVM< BASE >::applySystemSolution( DofManager const & dofManager,
} );
}

template< >
void SinglePhaseFVM< SinglePhaseBase >::assembleFluxTerms( real64 const dt,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am trying to understand the logic here. what is proposed is always using BASE besides singlePhaseProppantBase specialization? And I guess this implementation is assumed not only being restricted to SinglePhaseBase.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I remember correctly, the change should be just related to the default template argument (SinglePhaseBase), no changes in other logic. SinglePhaseFVM< SinglePhaseProppantBase >::assembleFluxTerms is still down below.

@Guotong-Ren
Copy link
Contributor

this question is not quite relevant to this PR. I am curious how much work do you estimate to prototype when well is connected to fractures? need adding extra blocks in the Jacobin matrix?

@paveltomin
Copy link
Contributor Author

this question is not quite relevant to this PR. I am curious how much work do you estimate to prototype when well is connected to fractures? need adding extra blocks in the Jacobin matrix?

I would redirect this to @CusiniM for better estimate.
The code pieces should be there, but I am not exactly sure how to connect them.

@paveltomin
Copy link
Contributor Author

this question is not quite relevant to this PR. I am curious how much work do you estimate to prototype when well is connected to fractures? need adding extra blocks in the Jacobin matrix?

I would redirect this to @CusiniM for better estimate. The code pieces should be there, but I am not exactly sure how to connect them.

I mean, I am ready to work on that, just need some guidance where to start.

@CusiniM
Copy link
Collaborator

CusiniM commented Jun 10, 2024

this question is not quite relevant to this PR. I am curious how much work do you estimate to prototype when well is connected to fractures? need adding extra blocks in the Jacobin matrix?

I would redirect this to @CusiniM for better estimate. The code pieces should be there, but I am not exactly sure how to connect them.

I mean, I am ready to work on that, just need some guidance where to start.

I don't think it's a lot of work. However, it would be nice to first refactor the way wells are handled by introducing a WellStencil (or something similar) and then use a dedicated stencil for those connections. Once the connections are well defined adding the terms to the jacobian is trivial IMO.

Comment on lines 326 to 327
template class SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsLagrangeContact >;
template class SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsEmbeddedFractures >;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this necessary? Isn't it already being instantiated in SinglePhasePoromechanicsConformingFractures.cpp ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember that somehow it was important but I can double-check
Would it miss versions of SinglePhasePoromechanics functions when only present in SinglePhasePoromechanicsConformingFractures?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah yes, sounds possible

@paveltomin paveltomin merged commit ee751b0 into develop Jun 14, 2024
25 of 26 checks passed
@paveltomin paveltomin deleted the fractures-wells-draft branch June 14, 2024 03:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: requires rebaseline Requires rebaseline branch in integratedTests Theme - FF Faults & fractures modeling type: cleanup / refactor Non-functional change (NFC) type: feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants