TPSA: Thermoelastic effects - #7396
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Thermoelastic coupling currently skips valid negative coefficients and rejects elastic-property combinations supported by existing TPSA decks.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds fully implicit thermoelastic TPSA support across one-phase, gas-water, and black-oil thermal simulations.
Changes:
- Adds temperature-dependent TPSA coupling and pore-volume effects.
- Adds thermal TPSA executables and dynamic dispatch.
- Registers a new thermal TPSA regression case.
File summaries
| File | Description |
|---|---|
regressionTests.cmake |
Registers the thermal TPSA regression. |
CMakeLists.txt |
Builds the new simulator variants. |
opm/simulators/flow/MainDispatchDynamic.cpp |
Dispatches thermal TPSA cases. |
opm/simulators/flow/FlowProblemTPSA.hpp |
Adds thermal mechanical forcing. |
opm/simulators/flow/FlowProblem.hpp |
Exposes thermal Biot APIs. |
opm/simulators/flow/FlowGenericProblem.hpp |
Declares thermoelastic properties. |
opm/simulators/flow/FlowGenericProblem_impl.hpp |
Computes thermal Biot coefficients. |
opm/models/tpsa/tpsamodel.hpp |
Stores and reports thermal forces. |
opm/models/blackoil/blackoilproblem.hh |
Adds default thermoelastic interfaces. |
opm/models/blackoil/blackoilintensivequantities.hh |
Applies thermal pore-volume changes. |
flow/flow_onephase_energy_tpsa.hpp |
Declares one-phase entry points. |
flow/flow_onephase_energy_tpsa.cpp |
Defines the one-phase simulator. |
flow/flow_onephase_energy_tpsa_main.cpp |
Adds its executable entry point. |
flow/flow_gaswater_energy_tpsa.hpp |
Declares gas-water entry points. |
flow/flow_gaswater_energy_tpsa.cpp |
Defines the gas-water simulator. |
flow/flow_gaswater_energy_tpsa_main.cpp |
Adds its executable entry point. |
flow/flow_energy_tpsa.hpp |
Declares black-oil entry points. |
flow/flow_energy_tpsa.cpp |
Defines the black-oil simulator. |
flow/flow_energy_tpsa_main.cpp |
Adds its executable entry point. |
Review details
- Files reviewed: 19/19 changed files
- Comments generated: 7
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Additional TPSA source term with diff. temp. - Mechanical effects on thermal simulations via new compressibility term (i.e. pore volume change) - Temperature effects included in relevant outputs - Note: only for fully implicit thermal simulators - Binaries for blackoil, gas-water and one-phase (water only) + energy + TPSA simulators - New simulators added to flow binary - TPSA_THERMAL regression test - Unit tests for conversions
|
jenkins build this serial please |
|
jenkins build this opm-tests=1598 update_data please |
PR OPM#1598 Reason: PR OPM/opm-simulators#7396 PR OPM#1598 opm-common = e0b1abf7a624ae1cec43b19b4b902352419063e1 opm-grid = 798166c5de06f16cc4d9d0acd19d15cc681f6ffd opm-simulators = 533a0b7cbd4e53ac159c0543876de52f55189873 ### Changed Tests ### * tpsa_thermal
|
jenkins build this opm-tests=1599 please |
akva2
left a comment
There was a problem hiding this comment.
Looks good to me. I'll hold a little on the merge give others a chance to voice concerns.
This PR adds the possibility to run TPSA with THERMAL activated, i.e. simulating thermoelastic effects. The thermal effects on TPSA is an additional temperature-dependent source term. Mechanical effects on thermal simulations are given through pore volume changes (similar to pressure effects), with an additional compressibility term. The coupling parameter (the new
biotTempfunction) is calculated from existing deck inputs,THERMEXRorTHELCOEF. Temperature-dependent output variables are given. Binaries produced for blackoil, one-phase (water), and gas-water simulators, which are also added to flow binary. New regression test with TPSA_THERMAL deck, OPM/opm-tests#1598.Note that the implementation is only with the fully-implicit thermal simulator (
EnergyModules::FullyImplicitThermal). It's possible that it can easily be extended to the sequential simulator (TEMPoption), but have not tested this yet.