PressureTransferPolicy.hpp
Go to the documentation of this file.
34 template<class Scalar> using PressureVectorType = Dune::BlockVector<Dune::FieldVector<Scalar, 1>>;
35 template<class Scalar> using SeqCoarseOperatorType = Dune::MatrixAdapter<PressureMatrixType<Scalar>,
45 using CoarseOperatorType = std::conditional_t<std::is_same<Comm, Dune::Amg::SequentialInformation>::value,
54 : public Dune::Amg::LevelTransferPolicyCpr<FineOperator, Details::CoarseOperatorType<Scalar,Communication>>
77 coarseLevelMatrix_.reset(new CoarseMatrix(fineLevelMatrix.N(), fineLevelMatrix.M(), CoarseMatrix::row_wise));
102 for (auto row = fineMatrix.begin(), rowEnd = fineMatrix.end(); row != rowEnd; ++row, ++rowCoarse) {
105 for (auto entry = row->begin(), entryEnd = row->end(); entry != entryEnd; ++entry, ++entryCoarse) {
Abstract base class for transfer between levels and creation of the coarse level system. Definition: twolevelmethodcpr.hh:44 FineOperatorType::range_type FineRangeType The type of the range of the fine level operator. Definition: twolevelmethodcpr.hh:54 CoarseDomainType lhs_ The coarse level lhs. Definition: twolevelmethodcpr.hh:141 CoarseRangeType rhs_ The coarse level rhs. Definition: twolevelmethodcpr.hh:139 FineOperatorType::domain_type FineDomainType The type of the domain of the fine level operator. Definition: twolevelmethodcpr.hh:58 std::shared_ptr< CoarseOperatorType > operator_ the coarse level linear operator. Definition: twolevelmethodcpr.hh:143 Dune linear operator that assumes ghost rows are ordered after interior rows. Avoids some computation... Definition: WellOperators.hpp:340 Definition: PressureTransferPolicy.hpp:55 void moveToCoarseLevel(const typename ParentType::FineRangeType &fine) override Definition: PressureTransferPolicy.hpp:125 void moveToFineLevel(typename ParentType::FineDomainType &fine) override Updates the fine level linear system after the correction of the coarse levels system. Definition: PressureTransferPolicy.hpp:148 const Communication & getCoarseLevelCommunication() const Definition: PressureTransferPolicy.hpp:169 typename FineOperator::domain_type FineVectorType Definition: PressureTransferPolicy.hpp:60 PressureTransferPolicy(const Communication &comm, const FineVectorType &weights, const PropertyTree &, int pressure_var_index) Definition: PressureTransferPolicy.hpp:63 PressureTransferPolicy * clone() const override Clone the current object. Definition: PressureTransferPolicy.hpp:164 typename Details::CoarseOperatorType< Scalar, Communication > CoarseOperator Definition: PressureTransferPolicy.hpp:57 void calculateCoarseEntries(const FineOperator &fineOperator) override ???. Definition: PressureTransferPolicy.hpp:97 Communication ParallelInformation Definition: PressureTransferPolicy.hpp:59 void createCoarseLevelSystem(const FineOperator &fineOperator) override Algebraically creates the coarse level system. Definition: PressureTransferPolicy.hpp:73 std::size_t getPressureIndex() const Definition: PressureTransferPolicy.hpp:174 Definition: PropertyTree.hpp:37 Dune::BCRSMatrix< MatrixBlock< Scalar, 1, 1 > > PressureMatrixType Definition: PressureBhpTransferPolicy.hpp:80 Opm::GhostLastMatrixAdapter< PressureMatrixType< Scalar >, PressureVectorType< Scalar >, PressureVectorType< Scalar >, Comm > ParCoarseOperatorType Definition: PressureBhpTransferPolicy.hpp:90 std::conditional_t< std::is_same< Comm, Dune::Amg::SequentialInformation >::value, SeqCoarseOperatorType< Scalar >, ParCoarseOperatorType< Scalar, Comm > > CoarseOperatorType Definition: PressureBhpTransferPolicy.hpp:94 Dune::BlockVector< Dune::FieldVector< Scalar, 1 > > PressureVectorType Definition: PressureBhpTransferPolicy.hpp:81 Dune::MatrixAdapter< PressureMatrixType< Scalar >, PressureVectorType< Scalar >, PressureVectorType< Scalar > > SeqCoarseOperatorType Definition: PressureBhpTransferPolicy.hpp:84 Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 Definition: blackoilboundaryratevector.hh:37 Algebraic twolevel methods. |