mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
ParallelPAvgCalculator: template Scalar type
This commit is contained in:
parent
b68a854909
commit
66a08b9c1a
@ -32,15 +32,18 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include <initializer_list>
|
#include <initializer_list>
|
||||||
|
|
||||||
Opm::ParallelPAvgCalculator::
|
template<class Scalar>
|
||||||
|
Opm::ParallelPAvgCalculator<Scalar>::
|
||||||
ParallelPAvgCalculator(const Parallel::Communication& comm,
|
ParallelPAvgCalculator(const Parallel::Communication& comm,
|
||||||
const GridDims& cellIndexMap,
|
const GridDims& cellIndexMap,
|
||||||
const WellConnections& connections)
|
const WellConnections& connections)
|
||||||
: PAvgCalculator { cellIndexMap, connections }
|
: PAvgCalculator<Scalar> { cellIndexMap, connections }
|
||||||
, comm_ { comm }
|
, comm_ { comm }
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void Opm::ParallelPAvgCalculator::collectGlobalContributions()
|
template<class Scalar>
|
||||||
|
void Opm::ParallelPAvgCalculator<Scalar>::
|
||||||
|
collectGlobalContributions()
|
||||||
{
|
{
|
||||||
auto collect = [this](Accumulator& accumulator)
|
auto collect = [this](Accumulator& accumulator)
|
||||||
{
|
{
|
||||||
@ -54,3 +57,5 @@ void Opm::ParallelPAvgCalculator::collectGlobalContributions()
|
|||||||
collect(this->accumCTF_);
|
collect(this->accumCTF_);
|
||||||
collect(this->accumPV_);
|
collect(this->accumPV_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template class Opm::ParallelPAvgCalculator<double>;
|
||||||
|
@ -38,7 +38,8 @@ namespace Opm {
|
|||||||
/// have a flowing bottom-hole pressure. Mainly useful for reporting.
|
/// have a flowing bottom-hole pressure. Mainly useful for reporting.
|
||||||
///
|
///
|
||||||
/// Parallel edition. Handles distributed wells.
|
/// Parallel edition. Handles distributed wells.
|
||||||
class ParallelPAvgCalculator : public PAvgCalculator<double>
|
template<class Scalar>
|
||||||
|
class ParallelPAvgCalculator : public PAvgCalculator<Scalar>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Constructor
|
/// Constructor
|
||||||
@ -55,6 +56,8 @@ public:
|
|||||||
const WellConnections& connections);
|
const WellConnections& connections);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
using Accumulator = typename PAvgCalculator<Scalar>::Accumulator;
|
||||||
|
|
||||||
/// MPI communication object.
|
/// MPI communication object.
|
||||||
std::reference_wrapper<const Parallel::Communication> comm_;
|
std::reference_wrapper<const Parallel::Communication> comm_;
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ createCalculator(const Well& well,
|
|||||||
assert (this->wellConnSrc_.size() == this->localConnSet_.size());
|
assert (this->wellConnSrc_.size() == this->localConnSet_.size());
|
||||||
|
|
||||||
const auto ix = this->calculators_
|
const auto ix = this->calculators_
|
||||||
.setCalculator(well.seqIndex(), std::make_unique<ParallelPAvgCalculator>
|
.setCalculator(well.seqIndex(), std::make_unique<ParallelPAvgCalculator<double>>
|
||||||
(parallelWellInfo.communication(),
|
(parallelWellInfo.communication(),
|
||||||
this->cellIndexMap_, well.getConnections()));
|
this->cellIndexMap_, well.getConnections()));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user