OwningTwoLevelPreconditioner.hpp
Go to the documentation of this file.
39// Circular dependency between PreconditionerFactory [which can make an OwningTwoLevelPreconditioner]
40// and OwningTwoLevelPreconditioner [which uses PreconditionerFactory to choose the fine-level smoother]
78class OwningTwoLevelPreconditioner : public Dune::PreconditionerWithUpdate<VectorType, VectorType>
97 , coarseSolverPolicy_(prm.get_child_optional("coarsesolver") ? prm.get_child("coarsesolver") : Opm::PropertyTree())
130 , coarseSolverPolicy_(prm.get_child_optional("coarsesolver") ? prm.get_child("coarsesolver") : Opm::PropertyTree())
186 = Dune::Amg::TwoLevelMethodCpr<OperatorType, CoarseSolverPolicy, Dune::PreconditionerWithUpdate<VectorType, VectorType>>;
Definition: PressureSolverPolicy.hpp:35 Definition: twolevelmethodcpr.hh:387 void updatePreconditioner(FineOperatorType &, std::shared_ptr< SmootherType > smoother, CoarseLevelSolverPolicy &coarsePolicy) Definition: twolevelmethodcpr.hh:465 void apply(FineDomainType &v, const FineRangeType &d) Definition: twolevelmethodcpr.hh:504 void pre(FineDomainType &x, FineRangeType &b) Definition: twolevelmethodcpr.hh:489 bool hasPerfectUpdate() const Definition: twolevelmethodcpr.hh:498 Definition: FlexibleSolver.hpp:45 Definition: OwningTwoLevelPreconditioner.hpp:79 virtual void apply(VectorType &v, const VectorType &d) override Definition: OwningTwoLevelPreconditioner.hpp:155 virtual bool hasPerfectUpdate() const override Definition: OwningTwoLevelPreconditioner.hpp:176 typename OperatorType::matrix_type MatrixType Definition: OwningTwoLevelPreconditioner.hpp:81 OwningTwoLevelPreconditioner(const OperatorType &linearoperator, const Opm::PropertyTree &prm, const std::function< VectorType()> weightsCalculator, std::size_t pressureIndex) Definition: OwningTwoLevelPreconditioner.hpp:85 virtual void post(VectorType &x) override Definition: OwningTwoLevelPreconditioner.hpp:160 virtual void pre(VectorType &x, VectorType &b) override Definition: OwningTwoLevelPreconditioner.hpp:150 OwningTwoLevelPreconditioner(const OperatorType &linearoperator, const Opm::PropertyTree &prm, const std::function< VectorType()> weightsCalculator, std::size_t pressureIndex, const Communication &comm) Definition: OwningTwoLevelPreconditioner.hpp:117 virtual void update() override Definition: OwningTwoLevelPreconditioner.hpp:165 Dune::AssembledLinearOperator< MatrixType, VectorType, VectorType > AbstractOperatorType Definition: OwningTwoLevelPreconditioner.hpp:83 virtual Dune::SolverCategory::Category category() const override Definition: OwningTwoLevelPreconditioner.hpp:171 Interface class adding the update() method to the preconditioner interface. Definition: PreconditionerWithUpdate.hpp:32 Definition: PreconditionerFactory.hpp:64 T get(const std::string &key) const Definition: fvbaseprimaryvariables.hh:141 std::istream & operator>>(std::istream &input, BlockVector< FieldVector< T, i >, A > &vector) Definition: OwningTwoLevelPreconditioner.hpp:63 std::ostream & operator<<(std::ostream &out, const BlockVector< FieldVector< T, i >, A > &vector) Definition: OwningTwoLevelPreconditioner.hpp:55 Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 Definition: blackoilboundaryratevector.hh:39 Algebraic twolevel methods. |