-
Notifications
You must be signed in to change notification settings - Fork 89
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: feature/byer3/thermal well #3156
Merged
Merged
Changes from 73 commits
Commits
Show all changes
83 commits
Select commit
Hold shift + click to select a range
3c5801c
Add support for mass constraits (inj wells only)
tjb-ltk de5b3da
Mass constraint test cases - fixed value & table input
tjb-ltk 993296d
add proper isZero check
tjb-ltk 7bd1201
Merge branch 'develop' into feature/byer3/mass_inj_const
jafranc 825d27d
Throw error if massinj constraint and useSurfaceConditions set to 0, …
tjb-ltk c94eed6
run make uncrustify_style
tjb-ltk 701bce6
fix for UseSurfaceConditions set to 1
tjb-ltk 6858b81
Thermal well devs
tjb-ltk 8fd8f40
Fix rel mode compiler errors ++
tjb-ltk 384e29e
Load well prop ders in containers similar to reservoir
tjb-ltk 064cc07
Added col indexing for well jacobian terms, includes specialization f…
tjb-ltk aee32bc
thermal devs- 1) energy eqn for perf in/out flows, 2) reservoir well …
tjb-ltk 6323c13
1) fix isthermal well field runtime error 2) fix refactored isotherm…
tjb-ltk 34a2a01
thermal well devs - 1) derivative bugfixes 2) added thermal to post l…
tjb-ltk 828b009
thermal devs - 1) fixes for > 1 well seg 2) added soln updating/scali…
tjb-ltk 8b10201
1) Added simple temperature constraint 2) Fixes from running numerica…
tjb-ltk 25e3503
missing merge in previous commit
tjb-ltk aa800e3
more merge fixes
tjb-ltk c9138c5
1) add iterative solver config for thermal res+well 2) skip well cal…
tjb-ltk 5d95d0f
merge dev 20240526
tjb-ltk b4983b0
merge with dev
tjb-ltk d297111
code cleanup
tjb-ltk 0ec258e
Use phase fraction not phase vol fraction ..and ders
tjb-ltk a489169
fix for spe11b
tjb-ltk 420855d
fix pedantry
tjb-ltk 32ae6b9
1) add Aww numerical derivative unit tests, 2) thermal index fix
tjb-ltk bea94d5
more pedantics
tjb-ltk 887192d
pedantics
tjb-ltk b9b6676
remove debug
tjb-ltk 99efdea
compiler warning error
tjb-ltk 2b8ca8d
fix file path
tjb-ltk 86ed597
lets try all combinations of file input path
tjb-ltk 4de08c1
Merge remote-tracking branch 'origin/feature/byer3/thermal_well' into…
tjb-ltk 7c8fb31
updated to latest dev/modules
tjb-ltk 0e2b420
cleanup
tjb-ltk 11e6056
mod fix
tjb-ltk dfaa419
Fix runner build errors
tjb-ltk f508369
move mpi com outside of subregion loop
tjb-ltk bce0bf9
build fix for ubunnto etal
tjb-ltk a1b70ac
build fix for ubunnto etal t2
tjb-ltk b3ed475
build fix for ubunnto etal t3
tjb-ltk e4edc21
move input file data to char array, write out array to file, delete file
tjb-ltk 352ca5d
uncrustify
tjb-ltk 574a18e
testing
tjb-ltk 25fae7f
remove dead code
tjb-ltk 371eb04
mpi parallel fix for closed wells
tjb-ltk 9c7a462
1) fix temp constraint eqn setup for well spanning > 1 cores , 2) wel…
tjb-ltk b5b3413
Merge branch 'develop' into feature/byer3/thermal_well
rrsettgast 2e1bb1e
resolve latest merge
tjb-ltk dc1faee
Merge branch 'develop' into feature/byer3/thermal_well
tjb-ltk 561710e
1) remove schema addition for current nonlinear stats , 2) remove tes…
tjb-ltk fbf9898
only register region state props once
tjb-ltk e6db741
1) for shutin wells zero completion perforation rates for clarity in …
tjb-ltk 109e43f
Merge branch 'develop' into feature/byer3/thermal_well
tjb-ltk 8963ffa
code cleanup - remove partial thermal impl for single phase
tjb-ltk 25d8e2b
run non-automatic uncrusty
tjb-ltk eee00a3
one more time
tjb-ltk 11d1d80
revert single phase well initialization to dev ver, fix will be adde…
tjb-ltk c51952f
restructure for GPU reqs
tjb-ltk 47eada8
remove tjb specifics
tjb-ltk 3a70471
Fixes for unittests when GPU enabled
tjb-ltk d7c6759
Merge branch 'develop' into feature/byer3/thermal_well - Chasing the …
tjb-ltk 5b66e34
fix merge error
tjb-ltk 127d4cf
test add instead of remove plus insert.
CusiniM 0f46cdc
Merge remote-tracking branch 'origin/develop' into feature/byer3/ther…
CusiniM 4da9ef7
Merge branch 'feature/byer3/thermal_well' of github.com:GEOS-DEV/GEOS…
CusiniM b711a87
Remove & and add const.
CusiniM 17cc023
Update src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp
CusiniM 720901c
1) dont allocate temperature_n for isothermal run, 2) uncrustify style
tjb-ltk fdeea3a
remove debug std::cout
tjb-ltk 4cf2106
remove std::cout
tjb-ltk 35cf15b
code cleanup
tjb-ltk f1f633b
Code cleanup
tjb-ltk e659c7c
move KernalLaunchSelectors from common to physicsSolvers
tjb-ltk 3162266
PR requested changes
tjb-ltk 988ae2b
dev merge
tjb-ltk dcb533b
fix pedantry
tjb-ltk 7e3619c
Merge branch 'develop' into feature/byer3/thermal_well
CusiniM 72f8895
fix compilation errors.
CusiniM 32d1d28
Merge branch 'feature/byer3/thermal_well' of github.com:GEOS-DEV/GEOS…
CusiniM 12e9314
update baselines
tjb-ltk aa71f2a
perfs global res cell index set with wrong array (node instead of ce…
tjb-ltk f5ef324
Update .integrated_tests.yaml
CusiniM File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
/* | ||
* ------------------------------------------------------------------------------------------------------------ | ||
* SPDX-License-Identifier: LGPL-2.1-only | ||
* | ||
* Copyright (c) 2018-2020 Lawrence Livermore National Security LLC | ||
* Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University | ||
* Copyright (c) 2018-2020 TotalEnergies | ||
* Copyright (c) 2019- GEOSX Contributors | ||
* All rights reserved | ||
* | ||
* See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. | ||
* ------------------------------------------------------------------------------------------------------------ | ||
*/ | ||
|
||
/** | ||
* @file KernelLaunchSelectors.hpp | ||
*/ | ||
|
||
#ifndef GEOS_COMMON_KERNELLAUNCHSELECTORS_HPP | ||
#define GEOS_COMMON_KERNELLAUNCHSELECTORS_HPP | ||
|
||
namespace geos | ||
{ | ||
namespace internal | ||
{ | ||
|
||
template< typename S, typename T, typename LAMBDA > | ||
void invokePhaseDispatchLambda ( S val, T numPhases, LAMBDA && lambda ) | ||
{ | ||
if( numPhases == 1 ) | ||
{ | ||
lambda( val, std::integral_constant< T, 1 >()); | ||
return; | ||
} | ||
else if( numPhases == 2 ) | ||
{ | ||
lambda( val, std::integral_constant< T, 2 >()); | ||
return; | ||
} | ||
else if( numPhases == 3 ) | ||
{ | ||
lambda( val, std::integral_constant< T, 3 >()); | ||
return; | ||
} | ||
else | ||
{ | ||
GEOS_ERROR( "Unsupported state: " << numPhases ); | ||
} | ||
}; | ||
|
||
template< typename S, typename T, typename LAMBDA > | ||
void invokeThermalDispatchLambda ( S val, T isThermal, LAMBDA && lambda ) | ||
{ | ||
if( isThermal == 1 ) | ||
{ | ||
lambda( val, std::integral_constant< T, 1 >()); | ||
return; | ||
} | ||
else if( isThermal == 0 ) | ||
{ | ||
lambda( val, std::integral_constant< T, 0 >()); | ||
return; | ||
} | ||
else | ||
{ | ||
GEOS_ERROR( "Unsupported state: " << isThermal ); | ||
} | ||
}; | ||
|
||
template< typename T, typename LAMBDA > | ||
void kernelLaunchSelectorThermalSwitch( T value, LAMBDA && lambda ) | ||
{ | ||
static_assert( std::is_integral< T >::value, "kernelLaunchSelectorThermalSwitch: type should be integral" ); | ||
|
||
switch( value ) | ||
{ | ||
case 0: | ||
{ | ||
lambda( std::integral_constant< T, 0 >() ); | ||
return; | ||
} | ||
case 1: | ||
{ | ||
lambda( std::integral_constant< T, 1 >() ); | ||
return; | ||
} | ||
default: | ||
{ | ||
GEOS_ERROR( "Unsupported thermal state: " << value ); | ||
} | ||
} | ||
} | ||
|
||
template< typename T, typename LAMBDA > | ||
void kernelLaunchSelectorCompThermSwitch( T value, bool const isThermal, LAMBDA && lambda ) | ||
{ | ||
static_assert( std::is_integral< T >::value, "kernelLaunchSelectorCompSwitch: value type should be integral" ); | ||
|
||
|
||
switch( value ) | ||
{ | ||
case 1: | ||
{ | ||
invokeThermalDispatchLambda( std::integral_constant< T, 1 >(), isThermal, lambda ); return; | ||
} | ||
case 2: | ||
{ | ||
invokeThermalDispatchLambda( std::integral_constant< T, 2 >(), isThermal, lambda ); | ||
return; | ||
} | ||
case 3: | ||
{ | ||
invokeThermalDispatchLambda( std::integral_constant< T, 3 >(), isThermal, lambda ); | ||
return; | ||
} | ||
case 4: | ||
{ | ||
invokeThermalDispatchLambda( std::integral_constant< T, 4 >(), isThermal, lambda ); | ||
return; | ||
} | ||
case 5: | ||
{ | ||
invokeThermalDispatchLambda( std::integral_constant< T, 5 >(), isThermal, lambda ); | ||
return; | ||
} | ||
default: | ||
{ | ||
GEOS_ERROR( "Unsupported number of components: " << value ); | ||
} | ||
} | ||
} | ||
|
||
template< typename T, typename LAMBDA > | ||
void kernelLaunchSelectorCompPhaseSwitch( T value, T n_phase, LAMBDA && lambda ) | ||
{ | ||
static_assert( std::is_integral< T >::value, "kernelLaunchSelectorCompSwitch: value type should be integral" ); | ||
switch( value ) | ||
{ | ||
case 1: | ||
{ | ||
invokePhaseDispatchLambda( std::integral_constant< T, 1 >(), n_phase, lambda ); | ||
return; | ||
} | ||
case 2: | ||
{ | ||
invokePhaseDispatchLambda( std::integral_constant< T, 2 >(), n_phase, lambda ); | ||
return; | ||
} | ||
case 3: | ||
{ | ||
invokePhaseDispatchLambda( std::integral_constant< T, 3 >(), n_phase, lambda ); | ||
return; | ||
} | ||
case 4: | ||
{ | ||
invokePhaseDispatchLambda( std::integral_constant< T, 4 >(), n_phase, lambda ); | ||
return; | ||
} | ||
case 5: | ||
{ | ||
invokePhaseDispatchLambda( std::integral_constant< T, 5 >(), n_phase, lambda ); | ||
return; | ||
} | ||
default: | ||
{ GEOS_ERROR( "Unsupported number of components: " << value ); } | ||
} | ||
} | ||
|
||
|
||
} // end namspace internal | ||
} // end namespace geos | ||
|
||
|
||
#endif // GEOS_COMMON_KERNELLAUNCHSELECTORS_HPP |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -276,6 +276,14 @@ class SingleFluidBase : public ConstitutiveBase | |
virtual real64 defaultDensity() const = 0; | ||
virtual real64 defaultViscosity() const = 0; | ||
|
||
/** | ||
* @brief Get the thermal flag. | ||
* @return boolean value indicating whether the model can be used to assemble the energy balance equation or not | ||
* @detail if isThermal is true, the constitutive model compute the enthalpy and internal energy of the phase. | ||
* This can be used to check the compatibility of the constitutive model with the solver | ||
*/ | ||
virtual bool isThermal() const { return false; } | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. do you need to add one with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @tjb-ltk Is this resolved? |
||
|
||
protected: | ||
|
||
virtual void postInputInitialization() override; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if this file sits in common it should be a lot more generic IMO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I could move to fluidflow...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
moved to physicsSolvers