twolevelmethodcpr.hh
Go to the documentation of this file.
182 std::cout<<"no aggregates="<<noAggregates<<" iso="<<isoAggregates<<" one="<<oneAggregates<<" skipped="<<skippedAggregates<<std::endl;
191 std::size_t aggregates = coarsen(renumberer, pinfo, pg, vm,*aggregatesMap_, noAggregates, true);
204 productBuilder.calculate(fineOperator.getmat(), *aggregatesMap_, *matrix_, pinfo, OverlapFlags());
230 // trailing return type with decltype used for detecting the signature of coarsen member function by overloading this coarsen function
311 void apply(X& x, X& b, [[maybe_unused]] double reduction, [[maybe_unused]] InverseOperatorResult& res)
A LeveTransferPolicy that used aggregation to construct the coarse level system. Definition: twolevelmethodcpr.hh:154 SequentialInformation ParallelInformation Definition: twolevelmethodcpr.hh:159 void moveToFineLevel(typename FatherType::FineDomainType &fineLhs) Updates the fine level linear system after the correction of the coarse levels system. Definition: twolevelmethodcpr.hh:217 void moveToCoarseLevel(const typename FatherType::FineRangeType &fineRhs) Definition: twolevelmethodcpr.hh:210 AggregationLevelTransferPolicyCpr(const Criterion &crit) Definition: twolevelmethodcpr.hh:161 LevelTransferPolicyCpr< O, O > FatherType Definition: twolevelmethodcpr.hh:157 void createCoarseLevelSystem(const O &fineOperator) Algebraically creates the coarse level system. Definition: twolevelmethodcpr.hh:165 C Criterion Definition: twolevelmethodcpr.hh:158 AggregationLevelTransferPolicyCpr * clone() const Clone the current object. Definition: twolevelmethodcpr.hh:224 Abstract base class for transfer between levels and creation of the coarse level system. Definition: twolevelmethodcpr.hh:44 CoarseOperatorType::range_type CoarseRangeType The type of the range of the coarse level operator. Definition: twolevelmethodcpr.hh:67 CoarseDomainType & getCoarseLevelLhs() Get the coarse level left hand side. Definition: twolevelmethodcpr.hh:93 virtual LevelTransferPolicyCpr * clone() const =0 Clone the current object. FO FineOperatorType The linear operator of the finel level system. Has to be derived from AssembledLinearOperator. Definition: twolevelmethodcpr.hh:50 virtual void createCoarseLevelSystem(const FineOperatorType &fineOperator)=0 Algebraically creates the coarse level system. virtual void moveToCoarseLevel(const FineRangeType &fineRhs)=0 Transfers the data to the coarse level. CoarseOperatorType::domain_type CoarseDomainType The type of the domain of the coarse level operator. Definition: twolevelmethodcpr.hh:71 FineOperatorType::range_type FineRangeType The type of the range of the fine level operator. Definition: twolevelmethodcpr.hh:54 CoarseRangeType & getCoarseLevelRhs() Get the coarse level right hand side. Definition: twolevelmethodcpr.hh:84 virtual ~LevelTransferPolicyCpr() Destructor. Definition: twolevelmethodcpr.hh:135 virtual void moveToFineLevel(FineDomainType &fineLhs)=0 Updates the fine level linear system after the correction of the coarse levels system. virtual void calculateCoarseEntries(const FineOperatorType &fineOperator)=0 ???. 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 CO CoarseOperatorType The linear operator of the finel level system. Has to be derived from AssembledLinearOperator. Definition: twolevelmethodcpr.hh:63 std::shared_ptr< CoarseOperatorType > & getCoarseLevelOperator() Get the coarse level operator. Definition: twolevelmethodcpr.hh:76 std::shared_ptr< CoarseOperatorType > operator_ the coarse level linear operator. Definition: twolevelmethodcpr.hh:143 A policy class for solving the coarse level system using one step of AMG. Definition: twolevelmethodcpr.hh:269 AMG< Operator, X, Smoother > AMGType The type of the AMG construct on the coarse level. Definition: twolevelmethodcpr.hh:282 OneStepAMGCoarseSolverPolicyCpr(const OneStepAMGCoarseSolverPolicyCpr &other) Copy constructor. Definition: twolevelmethodcpr.hh:292 AMGInverseOperator CoarseLevelSolver The type of solver constructed for the coarse level. Definition: twolevelmethodcpr.hh:349 S Smoother The type of the smoother used in AMG. Definition: twolevelmethodcpr.hh:278 C Criterion The type of the crition used for the aggregation within AMG. Definition: twolevelmethodcpr.hh:276 Dune::Amg::SmootherTraits< S >::Arguments SmootherArgs The type of the arguments used for constructing the smoother. Definition: twolevelmethodcpr.hh:280 CoarseLevelSolver * createCoarseLevelSolver(P &transferPolicy) Constructs a coarse level solver. Definition: twolevelmethodcpr.hh:359 O::range_type X The type of the range and domain of the operator. Definition: twolevelmethodcpr.hh:274 OneStepAMGCoarseSolverPolicyCpr(const SmootherArgs &args, const Criterion &c) Constructs the coarse solver policy. Definition: twolevelmethodcpr.hh:288 O Operator The type of the linear operator used. Definition: twolevelmethodcpr.hh:272 Definition: twolevelmethodcpr.hh:387 void updatePreconditioner(FineOperatorType &, std::shared_ptr< SmootherType > smoother, CoarseLevelSolverPolicy &coarsePolicy) Definition: twolevelmethodcpr.hh:465 virtual SolverCategory::Category category() const Definition: twolevelmethodcpr.hh:523 S SmootherType The type of the fine level smoother. Definition: twolevelmethodcpr.hh:422 FineOperatorType::range_type FineRangeType The type of the range of the fine level operator. Definition: twolevelmethodcpr.hh:401 TwoLevelMethodCpr(const FineOperatorType &op, std::shared_ptr< SmootherType > smoother, const LevelTransferPolicyCpr< FineOperatorType, CoarseOperatorType > &policy, CoarseLevelSolverPolicy &coarsePolicy, std::size_t preSteps=1, std::size_t postSteps=1) Constructs a two level method. Definition: twolevelmethodcpr.hh:438 FineOperatorType::domain_type FineDomainType The type of the domain of the fine level operator. Definition: twolevelmethodcpr.hh:405 void apply(FineDomainType &v, const FineRangeType &d) Definition: twolevelmethodcpr.hh:497 ~TwoLevelMethodCpr() Definition: twolevelmethodcpr.hh:458 void pre(FineDomainType &x, FineRangeType &b) Definition: twolevelmethodcpr.hh:488 CoarseOperatorType::domain_type CoarseDomainType The type of the domain of the coarse level operator. Definition: twolevelmethodcpr.hh:418 TwoLevelMethodCpr(const TwoLevelMethodCpr &other) Definition: twolevelmethodcpr.hh:452 CSP::Operator CoarseOperatorType The linear operator of the finel level system. Has to be derived from AssembledLinearOperator. Definition: twolevelmethodcpr.hh:410 CSP CoarseLevelSolverPolicy The type of the policy for constructing the coarse level solver. Definition: twolevelmethodcpr.hh:390 CoarseLevelSolverPolicy::CoarseLevelSolver CoarseLevelSolver The type of the coarse level solver. Definition: twolevelmethodcpr.hh:392 CoarseOperatorType::range_type CoarseRangeType The type of the range of the coarse level operator. Definition: twolevelmethodcpr.hh:414 FO FineOperatorType The linear operator of the finel level system. Has to be derived from AssembledLinearOperator. Definition: twolevelmethodcpr.hh:397 void updatePreconditioner(std::shared_ptr< SmootherType > smoother, CoarseLevelSolverPolicy &coarsePolicy) Definition: twolevelmethodcpr.hh:472 Definition: fvbaseprimaryvariables.hh:141 Dune::InverseOperatorResult InverseOperatorResult Definition: BdaBridge.hpp:32 |