ParallelWellInfo.hpp
Go to the documentation of this file.
51 };
223 // \brief Set the activePerfToLocalPerf-Map for multisegment wells, to be called from WellState::initWellStateMSWell
357 mutable std::unordered_map<int,int> active_to_local_map_; // Cache for active perforation index to local perforation index mapping
358 mutable std::unordered_map<int,int> local_to_active_map_; // Cache for local perforation index to active perforation index mapping
Class checking that all connections are on active cells. Definition: ParallelWellInfo.hpp:366 void connectionFound(std::size_t index) Inidicate that the i-th completion was found. bool checkAllConnectionsFound() CheckDistributedWellConnections(const Well &well, const ParallelWellInfo< Scalar > &info) Class to facilitate getting values associated with the above/below perforation. Definition: ParallelWellInfo.hpp:41 std::vector< Scalar > communicateBelow(Scalar first_value, const Scalar *current, std::size_t size) Creates an array of values for the perforation below. int numLocalPerfs() const CommunicateAboveBelow(const Parallel::Communication &comm) void pushBackEclIndex(int above, int current, bool owner=true) Adds information about original index of the perforations in ECL Schedule. Dune::ParallelLocalIndex< Attribute > LocalIndex Definition: ParallelWellInfo.hpp:52 const IndexSet & getIndexSet() const Get index set for the local perforations. std::vector< Scalar > communicateAbove(Scalar first_value, const Scalar *current, std::size_t size) Creates an array of values for the perforation above. void beginReset() Indicates that we will add the index information. void partialSumPerfValues(RAIterator begin, RAIterator end) const Do a (in place) partial sum on values attached to all perforations. Dune::ParallelIndexSet< int, LocalIndex, 50 > IndexSet Definition: ParallelWellInfo.hpp:53 A factory for creating a global data representation for distributed wells. Definition: ParallelWellInfo.hpp:138 GlobalPerfContainerFactory(const IndexSet &local_indices, const Parallel::Communication comm, int num_local_perfs) Constructor. int numGlobalPerfs() const int globalToLocal(const int globalIndex) const void copyGlobalToLocal(const std::vector< Scalar > &global, std::vector< Scalar > &local, std::size_t num_quantities) const Copies the values of the global perforation to the local representation. typename CommunicateAboveBelow< Scalar >::Attribute Attribute Definition: ParallelWellInfo.hpp:141 std::vector< Scalar > createGlobal(const std::vector< Scalar > &local_perf_container, std::size_t num_quantities) const Creates a container that holds values for all perforations. typename IndexSet::IndexPair::GlobalIndex GlobalIndex Definition: ParallelWellInfo.hpp:142 int localToGlobal(std::size_t localIndex) const typename CommunicateAboveBelow< Scalar >::IndexSet IndexSet Definition: ParallelWellInfo.hpp:140 Class encapsulating some information about parallel wells. Definition: ParallelWellInfo.hpp:198 int activePerfToLocalPerf(const int activeIndex) const std::vector< Scalar > communicateBelowValues(Scalar last_value, const Scalar *current, std::size_t size) const Creates an array of values for the perforation below. std::vector< Scalar > communicateBelowValues(Scalar last_value, const std::vector< Scalar > ¤t) const Creates an array of values for the perforation above. ParallelWellInfo(const std::string &name={""}, bool hasLocalCells=true) Constructs object using MPI_COMM_SELF. const std::string & name() const Name of the well. Definition: ParallelWellInfo.hpp:280 T broadcastFirstPerforationValue(const T &t) const ParallelWellInfo(const std::pair< std::string, bool > &well_info, Parallel::Communication allComm) Constructs object with communication between all rank sharing a well. int localPerfToGlobalPerf(std::size_t localIndex) const std::vector< Scalar > communicateAboveValues(Scalar first_value, const Scalar *current, std::size_t size) const Creates an array of values for the perforation above. void beginReset() Inidicate that we will reset the ecl index information. void pushBackEclIndex(int above, int current) Adds information about the ecl indices of the perforations. bool hasLocalCells() const Whether local cells are perforated somewhen. Definition: ParallelWellInfo.hpp:286 It::value_type sumPerfValues(It begin, It end) const Sum all the values of the perforations. int localPerfToActivePerf(std::size_t localIndex) const void partialSumPerfValues(RAIterator begin, RAIterator end) const Do a (in place) partial sum on values attached to all perforations. Definition: ParallelWellInfo.hpp:315 int globalPerfToLocalPerf(const int globalIndex) const const GlobalPerfContainerFactory< Scalar > & getGlobalPerfContainerFactory() const Get a factor to create a global representation of peforation data. void setActivePerfToLocalPerfMap(const std::unordered_map< int, int > active_to_local_map) const void communicateFirstPerforation(bool hasFirst) Collectively decide which rank has first perforation. static constexpr int INVALID_ECL_INDEX Definition: ParallelWellInfo.hpp:200 std::vector< Scalar > communicateAboveValues(Scalar first_value, const std::vector< Scalar > ¤t) const Creates an array of values for the perforation above. void endReset() Inidicate completion of reset of the ecl index information. const Parallel::Communication & communication() const Definition: ParallelWellInfo.hpp:215 Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 Definition: blackoilboundaryratevector.hh:39 bool operator<(const ParallelWellInfo< Scalar > &well1, const ParallelWellInfo< Scalar > &well2) bool operator==(const aligned_allocator< T1, Alignment > &, const aligned_allocator< T2, Alignment > &) noexcept Definition: alignedallocator.hh:200 bool operator!=(const aligned_allocator< T1, Alignment > &, const aligned_allocator< T2, Alignment > &) noexcept Definition: alignedallocator.hh:208 |