20#ifndef PARALLEL_PAVG_DYNAMIC_SOURCE_DATA_HPP
21#define PARALLEL_PAVG_DYNAMIC_SOURCE_DATA_HPP
23#include <opm/input/eclipse/Schedule/Well/PAvgDynamicSourceData.hpp>
25#include <opm/simulators/utils/ParallelCommunication.hpp>
52 using Evaluator = std::function<void(
int, SourceDataSpan<double>)>;
67 const std::vector<std::size_t>& sourceLocations,
89 void reconstruct(
const std::vector<std::size_t>& sourceLocations,
114 std::reference_wrapper<const Parallel::Communication> comm_;
117 std::vector<LocalLocation> locations_{};
120 std::vector<double> localSrc_{};
124 std::vector<std::vector<double>::size_type> storageIndex_{};
127 std::vector<int> allSizes_{};
130 std::vector<int> startPointers_{};
139 [[nodiscard]] std::vector<double>::size_type
140 storageIndex(std::vector<double>::size_type elemIndex)
const override;
154 void finaliseConstruction(
const std::vector<std::size_t>& sourceLocations,
162 [[nodiscard]] SourceDataSpan<double>
163 localSourceTerm(
const std::size_t localIx);
168 void defineCommunication();
Dynamic source data for block-average pressure calculations.
Definition ParallelPAvgDynamicSourceData.hpp:36
void setToZero()
Clear contents of local source term contributions.
Definition ParallelPAvgDynamicSourceData.cpp:46
void synchroniseSources()
Exchange local contributions to build full, global view of all source terms.
Definition ParallelPAvgDynamicSourceData.cpp:69
void collectLocalSources(Evaluator eval)
Compute local, on-rank, contributions to the collection of source terms.
Definition ParallelPAvgDynamicSourceData.cpp:60
void reconstruct(const std::vector< std::size_t > &sourceLocations, GlobalToLocal localCellIdx)
Reconstruct Source Data backing storage and internal mapping tables.
Definition ParallelPAvgDynamicSourceData.cpp:53
std::function< void(int, SourceDataSpan< double >)> Evaluator
Collect source term contributions from local, on-rank, cell.
Definition ParallelPAvgDynamicSourceData.hpp:52
std::function< int(const std::size_t)> GlobalToLocal
Translate globally unique, linearised Cartesian cell indices to local, on-rank, cell indices.
Definition ParallelPAvgDynamicSourceData.hpp:41
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition BlackoilPhases.hpp:27