PressureTransferPolicy.hpp
Go to the documentation of this file.
38 using SeqCoarseOperatorType = Dune::MatrixAdapter<PressureMatrixType, PressureVectorType, PressureVectorType>;
41 = Dune::OverlappingSchwarzOperator<PressureMatrixType, PressureVectorType, PressureVectorType, Comm>;
43 using CoarseOperatorType = std::conditional_t<std::is_same<Comm, Dune::Amg::SequentialInformation>::value,
52 : public Dune::Amg::LevelTransferPolicyCpr<FineOperator, Details::CoarseOperatorType<Communication>>
75 coarseLevelMatrix_.reset(new CoarseMatrix(fineLevelMatrix.N(), fineLevelMatrix.M(), CoarseMatrix::row_wise));
100 for (auto row = fineMatrix.begin(), rowEnd = fineMatrix.end(); row != rowEnd; ++row, ++rowCoarse) {
103 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 Definition: PressureTransferPolicy.hpp:53 virtual PressureTransferPolicy * clone() const override Clone the current object. Definition: PressureTransferPolicy.hpp:162 virtual void createCoarseLevelSystem(const FineOperator &fineOperator) override Algebraically creates the coarse level system. Definition: PressureTransferPolicy.hpp:71 virtual void calculateCoarseEntries(const FineOperator &fineOperator) override ???. Definition: PressureTransferPolicy.hpp:95 PressureTransferPolicy(const Communication &comm, const FineVectorType &weights, const Opm::PropertyTree &, int pressure_var_index) Definition: PressureTransferPolicy.hpp:61 Dune::Amg::LevelTransferPolicyCpr< FineOperator, CoarseOperator > ParentType Definition: PressureTransferPolicy.hpp:56 FineOperator::domain_type FineVectorType Definition: PressureTransferPolicy.hpp:58 Communication ParallelInformation Definition: PressureTransferPolicy.hpp:57 const Communication & getCoarseLevelCommunication() const Definition: PressureTransferPolicy.hpp:167 virtual void moveToCoarseLevel(const typename ParentType::FineRangeType &fine) override Definition: PressureTransferPolicy.hpp:123 Details::CoarseOperatorType< Communication > CoarseOperator Definition: PressureTransferPolicy.hpp:55 std::size_t getPressureIndex() const Definition: PressureTransferPolicy.hpp:172 virtual void moveToFineLevel(typename ParentType::FineDomainType &fine) override Updates the fine level linear system after the correction of the coarse levels system. Definition: PressureTransferPolicy.hpp:146 Definition: PropertyTree.hpp:37 std::conditional_t< std::is_same< Comm, Dune::Amg::SequentialInformation >::value, SeqCoarseOperatorType, ParCoarseOperatorType< Comm > > CoarseOperatorType Definition: PressureBhpTransferPolicy.hpp:88 Dune::BlockVector< Dune::FieldVector< double, 1 > > PressureVectorType Definition: PressureBhpTransferPolicy.hpp:80 Dune::MatrixAdapter< PressureMatrixType, PressureVectorType, PressureVectorType > SeqCoarseOperatorType Definition: PressureBhpTransferPolicy.hpp:81 Dune::OverlappingSchwarzOperator< PressureMatrixType, PressureVectorType, PressureVectorType, Comm > ParCoarseOperatorType Definition: PressureBhpTransferPolicy.hpp:84 Dune::BCRSMatrix< Opm::MatrixBlock< double, 1, 1 > > PressureMatrixType Definition: PressureBhpTransferPolicy.hpp:79 Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 Definition: BlackoilPhases.hpp:27 Algebraic twolevel methods. |