ParallelWellInfo.hpp
Go to the documentation of this file.
51 };
220 // \brief Set the activePerfToLocalPerf-Map for multisegment wells, to be called from WellState::initWellStateMSWell
354 mutable std::unordered_map<int,int> active_to_local_map_; // Cache for active perforation index to local perforation index mapping
355 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:363 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:137 GlobalPerfContainerFactory(const IndexSet &local_indices, const Parallel::Communication comm, int num_local_perfs) Constructor. int numGlobalPerfs() const int globalToLocal(const int globalIndex) const std::vector< Scalar > createGlobal(const std::vector< Scalar > &local_perf_container, std::size_t num_components) const Creates a container that holds values for all perforations. void copyGlobalToLocal(const std::vector< Scalar > &global, std::vector< Scalar > &local, std::size_t num_components) const Copies the values of the global perforation to the local representation. typename CommunicateAboveBelow< Scalar >::Attribute Attribute Definition: ParallelWellInfo.hpp:140 typename IndexSet::IndexPair::GlobalIndex GlobalIndex Definition: ParallelWellInfo.hpp:141 int localToGlobal(std::size_t localIndex) const typename CommunicateAboveBelow< Scalar >::IndexSet IndexSet Definition: ParallelWellInfo.hpp:139 Class encapsulating some information about parallel wells. Definition: ParallelWellInfo.hpp:195 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:277 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:283 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:312 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:197 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:212 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 |