Skip to content

perf: Improve MGR recipes for thermal#3939

Merged
rrsettgast merged 11 commits intodevelopfrom
feature/paludettomag1/thermal-mgr
Jan 29, 2026
Merged

perf: Improve MGR recipes for thermal#3939
rrsettgast merged 11 commits intodevelopfrom
feature/paludettomag1/thermal-mgr

Conversation

@victorapm
Copy link
Contributor

@victorapm victorapm changed the title WIP - Improve MGR recipes for thermal perf - Improve MGR recipes for thermal Jan 23, 2026
@victorapm victorapm marked this pull request as ready for review January 23, 2026 06:26
@victorapm victorapm requested a review from tjb-ltk January 23, 2026 06:27
@victorapm victorapm added flag: ready for review flag: requires updated TPL(s) Needs a specific TPL PR dependencies Pull requests that update a dependency file labels Jan 23, 2026
@victorapm victorapm changed the title perf - Improve MGR recipes for thermal perf: Improve MGR recipes for thermal Jan 23, 2026
@victorapm victorapm self-assigned this Jan 23, 2026
cprLike = 13, //!< CPR-like restriction
blockColLumped = 14 //!< Block column-lumped approximation
blockColLumped = 14, //!< Block column-lumped approximation
partialColLumped = 15 //!< Partial column-lumped approximation
Copy link
Contributor

Choose a reason for hiding this comment

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

What does "Partial column-lumped approximation" mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It means W_{TS} = 0 instead of doing colsum^{-1}(A_{TS}) * colsum^{-1}(A_{SS}) as done by blockColLumped. W_{TS} being the submatrix of the restriction operator coupling temperature and densities.

The pressure part remains the same: W_{PS} = colsum^{-1}(A_{PS}) * colsum^{-1}(A_{SS})

So, I called it a "partial" column-lumped. Let me know if you have other names in mind!

Copy link
Contributor

@castelletto1 castelletto1 Jan 23, 2026

Choose a reason for hiding this comment

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

So for ThermalCompositionalMultiphaseFVM we have:

| A_SS A_SP A_ST |
| A_PS A_PP A_PT |
| A_TS A_TP A_TT |

With "Partial column-lumped approximation", the correction to block:

| A_PP A_PT |
| A_TP A_TT |

is

- | colsum(A_{PS})  | * colsum^{-1}(A_{SS}) * | A_SP A_ST |
  |       0         |

Correct?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's correct, so essentially the energy equation isn't perturbed

Comment on lines +80 to +81
m_levelRestrictType[1] = MGRRestrictionType::partialColLumped; // True-IMPES for thermal
m_levelCoarseGridMethod[1] = MGRCoarseGridMethod::galerkin;
Copy link
Contributor

@castelletto1 castelletto1 Jan 23, 2026

Choose a reason for hiding this comment

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

I like the use of the Galerkin projection instead of the non-Galerkin. Again, I am not sure I fully understand what partial column lumping is.

Copy link
Contributor

Choose a reason for hiding this comment

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

Same comment applies also to the the other two modified strategies

@victorapm victorapm added ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI ci: run code coverage enables running of the code coverage CI jobs labels Jan 23, 2026
Copy link
Collaborator

@paveltomin paveltomin left a comment

Choose a reason for hiding this comment

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

would be interesting to discuss this during our solvers meeting on Thursdays

@bmhan12
Copy link
Contributor

bmhan12 commented Jan 23, 2026

Note: This PR is dependent on #3923 .
Pangea builds are no longer being as part of thirdPartyLibs since GEOS-DEV/thirdPartyLibs#331

@codecov
Copy link

codecov bot commented Jan 23, 2026

Codecov Report

❌ Patch coverage is 20.00000% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 58.87%. Comparing base (0527259) to head (9923988).
⚠️ Report is 1 commits behind head on develop.

Files with missing lines Patch % Lines
...ies/ThermalCompositionalMultiphaseReservoirFVM.hpp 0.00% 4 Missing ⚠️
...grStrategies/ThermalCompositionalMultiphaseFVM.hpp 0.00% 2 Missing ⚠️
...e/mgrStrategies/ThermalMultiphasePoromechanics.hpp 0.00% 2 Missing ⚠️
...ts/linearAlgebra/interfaces/direct/SuperLUDist.cpp 0.00% 1 Missing ⚠️
...arAlgebra/interfaces/hypre/HyprePreconditioner.cpp 0.00% 1 Missing ⚠️
...ents/linearAlgebra/interfaces/hypre/HypreUtils.cpp 0.00% 1 Missing ⚠️
...nts/linearAlgebra/interfaces/hypre/HypreVector.cpp 66.66% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3939   +/-   ##
========================================
  Coverage    58.87%   58.87%           
========================================
  Files         1353     1353           
  Lines       112954   112953    -1     
========================================
  Hits         66504    66504           
+ Misses       46450    46449    -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@castelletto1 castelletto1 removed the request for review from CusiniM January 28, 2026 05:14
@rrsettgast rrsettgast merged commit 3e9a3e2 into develop Jan 29, 2026
22 checks passed
@rrsettgast rrsettgast deleted the feature/paludettomag1/thermal-mgr branch January 29, 2026 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: run code coverage enables running of the code coverage CI jobs ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI dependencies Pull requests that update a dependency file flag: ready for review flag: requires updated TPL(s) Needs a specific TPL PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants