Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -413,26 +413,11 @@ void CompositionalMultiphaseWell::validateFluidModel(
}
}


void CompositionalMultiphaseWell::validateWellConstraints( real64 const & time_n,
real64 const & GEOS_UNUSED_PARAM( dt ),
real64 const & dt,
WellElementSubRegion const & subRegion )
{
GEOS_UNUSED_VAR( time_n );

if( !useSurfaceConditions() )
{
bool const useSegmentValues = referenceReservoirRegion().empty();

static bool firstNoRefRegionMsg = true;
if( useSegmentValues && firstNoRefRegionMsg )
{
GEOS_WARNING( WellControls::viewKeyStruct::referenceReservoirRegionString() <<
" not set: well constraint fluid property calculations will use top segement pressure and temp ",
getDataContext() );
firstNoRefRegionMsg = false;
}
}
WellControls::validateWellConstraints( time_n, dt, subRegion );

string const & fluidName = subRegion.getReference< string >( viewKeyStruct::fluidNamesString());
MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -400,9 +400,9 @@ class CompositionalMultiphaseWell : public WellControls
* @param subRegion the well subRegion
* @param elemManager the element manager
*/
virtual void validateWellConstraints( real64 const & time_n,
real64 const & dt,
WellElementSubRegion const & subRegion ) override;
void validateWellConstraints( real64 const & time_n,
real64 const & dt,
WellElementSubRegion const & subRegion ) override;

/**
* @brief Create well separator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,28 +188,6 @@ string SinglePhaseWell::resElementDofName() const
return SinglePhaseBase::viewKeyStruct::elemDofFieldString();
}

void SinglePhaseWell::validateWellConstraints( real64 const & time_n,
real64 const & GEOS_UNUSED_PARAM( dt ),
WellElementSubRegion const & subRegion )
{
GEOS_UNUSED_VAR( time_n );
GEOS_UNUSED_VAR( subRegion );

if( useSurfaceConditions() )
{
bool const useSegmentValues = referenceReservoirRegion().empty();

static bool firstNoRefRegionMsg = true;
if( useSegmentValues && firstNoRefRegionMsg )
{
GEOS_WARNING( WellControls::viewKeyStruct::referenceReservoirRegionString() <<
" not set: well constraint fluid property calculations will use top segement pressure and temp ",
getDataContext() );
firstNoRefRegionMsg = false;
}
}
}

void SinglePhaseWell::initializeWellPostInitialConditionsPreSubGroups( WellElementSubRegion & subRegion )
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,19 +335,6 @@ class SinglePhaseWell : public WellControls

ReferenceConditions getReferenceConditions( WellElementSubRegion const & subRegion );

/**
* @brief Make sure that the well constraints are compatible
* @param time_n the time at the beginning of the time step
* @param dt the time step dt
* @param subRegion the well subRegion
*/
virtual void validateWellConstraints( real64 const & time_n,
real64 const & dt,
WellElementSubRegion const & subRegion
) override;



/**
* @brief Create well separator
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,25 @@ void WellControls::registerWellDataOnMesh( WellElementSubRegion & subRegion )
}
}

void WellControls::validateWellConstraints( real64 const & GEOS_UNUSED_PARAM( time_n ),
real64 const & GEOS_UNUSED_PARAM( dt ),
WellElementSubRegion const & GEOS_UNUSED_PARAM( subRegion ))
{
if( !useSurfaceConditions() )
{
bool const useSegmentValues = referenceReservoirRegion().empty();

static bool firstNoRefRegionMsg = true;
if( useSegmentValues && firstNoRefRegionMsg )
{
GEOS_WARNING( WellControls::viewKeyStruct::referenceReservoirRegionString() <<
" not set: well constraint fluid property calculations will use the top segment pressure and temperature",
getDataContext() );
firstNoRefRegionMsg = false;
}
}
}

void WellControls::updateNumDofPerElement()
{
localIndex const numFlowComponents = numFluidComponents();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,9 +148,15 @@ class WellControls : public dataRepository::Group
*/
/**@{*/

/**
* @brief Make sure that the well constraints are compatible
* @param time_n the time at the beginning of the time step
* @param dt the time step dt
* @param subRegion the well subRegion
*/
virtual void validateWellConstraints( real64 const & time_n,
real64 const & dt,
WellElementSubRegion const & subRegion ) = 0;
WellElementSubRegion const & subRegion );

virtual bool isCompositional() const = 0;
/**
Expand Down