Opm::ParallelPAvgDynamicSourceData< Scalar > Class Template Reference

#include <ParallelPAvgDynamicSourceData.hpp>

Inheritance diagram for Opm::ParallelPAvgDynamicSourceData< Scalar >:
Inheritance graph

Public Types

using GlobalToLocal = std::function< int(const std::size_t)>
 
template<class T >
using SourceDataSpan = typename PAvgDynamicSourceData< Scalar >::template SourceDataSpan< T >
 
using Evaluator = std::function< void(int, SourceDataSpan< Scalar >)>
 

Public Member Functions

 ParallelPAvgDynamicSourceData (const Parallel::Communication &comm, const std::vector< std::size_t > &sourceLocations, GlobalToLocal localCellIdx)
 
void setToZero ()
 
void reconstruct (const std::vector< std::size_t > &sourceLocations, GlobalToLocal localCellIdx)
 
void collectLocalSources (Evaluator eval)
 
void synchroniseSources ()
 

Detailed Description

template<class Scalar>
class Opm::ParallelPAvgDynamicSourceData< Scalar >

Dynamic source data for block-average pressure calculations. Specialisation for parallel runs.

Member Typedef Documentation

◆ Evaluator

template<class Scalar >
using Opm::ParallelPAvgDynamicSourceData< Scalar >::Evaluator = std::function<void(int, SourceDataSpan<Scalar>)>

Collect source term contributions from local, on-rank, cell.

Called as

eval(cellIndex, sourceTerm)

in which cellIndex is the local, on-rank, cell index in the range 0 to #active cells on rank - 1. Function eval is expected to fill in/assign all sourceTerm items for this cell.

◆ GlobalToLocal

template<class Scalar >
using Opm::ParallelPAvgDynamicSourceData< Scalar >::GlobalToLocal = std::function<int(const std::size_t)>

Translate globally unique, linearised Cartesian cell indices to local, on-rank, cell indices. Assumed to return a negative value result if the input cell index is not owned by the current rank.

◆ SourceDataSpan

template<class Scalar >
template<class T >
using Opm::ParallelPAvgDynamicSourceData< Scalar >::SourceDataSpan = typename PAvgDynamicSourceData<Scalar>::template SourceDataSpan<T>

Constructor & Destructor Documentation

◆ ParallelPAvgDynamicSourceData()

template<class Scalar >
Opm::ParallelPAvgDynamicSourceData< Scalar >::ParallelPAvgDynamicSourceData ( const Parallel::Communication comm,
const std::vector< std::size_t > &  sourceLocations,
GlobalToLocal  localCellIdx 
)

Constructor

Parameters
[in]commMPI communication object. Typically
grid.comm()
from the main simulation grid.
[in]sourceLocationsKnown locations, typically linearised global call IDs, for which to enable collecting/reporting dynamic source data. Typically
allWBPCells()
from a PAvgCalculatorCollection.
[in]localCellIdxTranslation from global, Cartesian cell indices to local, on-rank, cell indices.

Member Function Documentation

◆ collectLocalSources()

template<class Scalar >
void Opm::ParallelPAvgDynamicSourceData< Scalar >::collectLocalSources ( Evaluator  eval)

Compute local, on-rank, contributions to the collection of source terms.

Parameters
[in]evalSource term evaluator object.

◆ reconstruct()

template<class Scalar >
void Opm::ParallelPAvgDynamicSourceData< Scalar >::reconstruct ( const std::vector< std::size_t > &  sourceLocations,
GlobalToLocal  localCellIdx 
)

Reconstruct Source Data backing storage and internal mapping tables

Effectively replaces the original object formed by the constructor. Mainly intended for updating objects as new wells and/or new reservoir connections are introduced.

Parameters
[in]sourceLocationsKnown locations, typically linearised global call IDs, for which to enable collecting/reporting dynamic source data. Typically
allWBPCells()
from a PAvgCalculatorCollection.
[in]localCellIdxTranslation from global, Cartesian cell indices to local, on-rank, cell indices.

◆ setToZero()

template<class Scalar >
void Opm::ParallelPAvgDynamicSourceData< Scalar >::setToZero ( )

Clear contents of local source term contributions.

Mostly useful when collecting source term contributions along the well bore.

◆ synchroniseSources()

template<class Scalar >
void Opm::ParallelPAvgDynamicSourceData< Scalar >::synchroniseSources ( )

Exchange local contributions to build full, global view of all source terms.


The documentation for this class was generated from the following file: