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 <initializer_list>
|
||||
|
||||
Opm::ParallelPAvgCalculator::
|
||||
template<class Scalar>
|
||||
Opm::ParallelPAvgCalculator<Scalar>::
|
||||
ParallelPAvgCalculator(const Parallel::Communication& comm,
|
||||
const GridDims& cellIndexMap,
|
||||
const WellConnections& connections)
|
||||
: PAvgCalculator { cellIndexMap, connections }
|
||||
: PAvgCalculator<Scalar> { cellIndexMap, connections }
|
||||
, comm_ { comm }
|
||||
{}
|
||||
|
||||
void Opm::ParallelPAvgCalculator::collectGlobalContributions()
|
||||
template<class Scalar>
|
||||
void Opm::ParallelPAvgCalculator<Scalar>::
|
||||
collectGlobalContributions()
|
||||
{
|
||||
auto collect = [this](Accumulator& accumulator)
|
||||
{
|
||||
@ -54,3 +57,5 @@ void Opm::ParallelPAvgCalculator::collectGlobalContributions()
|
||||
collect(this->accumCTF_);
|
||||
collect(this->accumPV_);
|
||||
}
|
||||
|
||||
template class Opm::ParallelPAvgCalculator<double>;
|
||||
|
@ -38,7 +38,8 @@ namespace Opm {
|
||||
/// have a flowing bottom-hole pressure. Mainly useful for reporting.
|
||||
///
|
||||
/// Parallel edition. Handles distributed wells.
|
||||
class ParallelPAvgCalculator : public PAvgCalculator<double>
|
||||
template<class Scalar>
|
||||
class ParallelPAvgCalculator : public PAvgCalculator<Scalar>
|
||||
{
|
||||
public:
|
||||
/// Constructor
|
||||
@ -55,6 +56,8 @@ public:
|
||||
const WellConnections& connections);
|
||||
|
||||
private:
|
||||
using Accumulator = typename PAvgCalculator<Scalar>::Accumulator;
|
||||
|
||||
/// MPI communication object.
|
||||
std::reference_wrapper<const Parallel::Communication> comm_;
|
||||
|
||||
|
@ -179,7 +179,7 @@ createCalculator(const Well& well,
|
||||
assert (this->wellConnSrc_.size() == this->localConnSet_.size());
|
||||
|
||||
const auto ix = this->calculators_
|
||||
.setCalculator(well.seqIndex(), std::make_unique<ParallelPAvgCalculator>
|
||||
.setCalculator(well.seqIndex(), std::make_unique<ParallelPAvgCalculator<double>>
|
||||
(parallelWellInfo.communication(),
|
||||
this->cellIndexMap_, well.getConnections()));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user