diff --git a/dune/istl/cholmod.hh b/dune/istl/cholmod.hh index 420038fc4a5ea7fa35efa4fe7f1a27c794dbaea8..87c29eb693c7ccc3b8239d0aeb21892f8c5e588e 100644 --- a/dune/istl/cholmod.hh +++ b/dune/istl/cholmod.hh @@ -250,7 +250,7 @@ public: /** @brief simple forward to apply(X&, Y&, InverseOperatorResult&) */ - void apply (Vector& x, Vector& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) + void apply (Vector& x, Vector& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) override { apply(x,b,res); } @@ -260,7 +260,7 @@ public: * The method assumes that setMatrix() was called before * In the case of a given ignore field the corresponding entries of both in x and b will stay untouched in this method. */ - void apply(Vector& x, Vector& b, InverseOperatorResult& res) + void apply(Vector& x, Vector& b, InverseOperatorResult& res) override { // do nothing if N=0 if ( nIsZero_ ) @@ -468,7 +468,7 @@ public: CholmodMethod::factorize(M.get(), L_, &c_); } - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::Category::sequential; } diff --git a/dune/istl/eigenvalue/poweriteration.hh b/dune/istl/eigenvalue/poweriteration.hh index 9802c244b4cba240ea14c30020f1d2e6af6e0fe6..c345dd8847596eea2c70a9d618c426ac789b212b 100644 --- a/dune/istl/eigenvalue/poweriteration.hh +++ b/dune/istl/eigenvalue/poweriteration.hh @@ -56,13 +56,13 @@ namespace Dune mutable_scaling_(mutable_scaling) {} - virtual void apply (const X& x, Y& y) const + void apply (const X& x, Y& y) const override { y = x; y *= immutable_scaling_*mutable_scaling_; } - virtual void applyscaleadd (field_type alpha, const X& x, Y& y) const + void applyscaleadd (field_type alpha, const X& x, Y& y) const override { X temp(x); temp *= immutable_scaling_*mutable_scaling_; @@ -70,7 +70,7 @@ namespace Dune } //! Category of the linear operator (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } @@ -108,14 +108,14 @@ namespace Dune "Range type of both operators doesn't match!"); } - virtual void apply (const domain_type& x, range_type& y) const + void apply (const domain_type& x, range_type& y) const override { op1_.apply(x,y); op2_.applyscaleadd(1.0,x,y); } - virtual void applyscaleadd (field_type alpha, - const domain_type& x, range_type& y) const + void applyscaleadd (field_type alpha, + const domain_type& x, range_type& y) const override { range_type temp(y); op1_.apply(x,temp); @@ -124,7 +124,7 @@ namespace Dune } //! Category of the linear operator (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } diff --git a/dune/istl/ldl.hh b/dune/istl/ldl.hh index ce1df59b044aa3615a919eafc4708107ad484caf..0c2ed6babe05e85363e8c07ed371af19c22f113c 100644 --- a/dune/istl/ldl.hh +++ b/dune/istl/ldl.hh @@ -87,7 +87,7 @@ namespace Dune { typedef Dune::BlockVector<FieldVector<T,n>, typename std::allocator_traits<A>::template rebind_alloc<FieldVector<T,n> > > range_type; //! Category of the solver (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::Category::sequential; } @@ -149,7 +149,7 @@ namespace Dune { } /** \copydoc InverseOperator::apply(X&, Y&, InverseOperatorResult&) */ - virtual void apply(domain_type& x, range_type& b, InverseOperatorResult& res) + void apply(domain_type& x, range_type& b, InverseOperatorResult& res) override { const int dimMat(ldlMatrix_.N()); ldl_perm(dimMat, Y_, reinterpret_cast<double*>(&b[0]), P_); @@ -163,7 +163,7 @@ namespace Dune { } /** \copydoc InverseOperator::apply(X&,Y&,double,InverseOperatorResult&) */ - virtual void apply(domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) + void apply(domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) override { apply(x,b,res); } diff --git a/dune/istl/novlpschwarz.hh b/dune/istl/novlpschwarz.hh index 61d9755212618324e062e282d58cf5b001689f35..574e47a7e21597b9c379377731a39e664eee2663 100644 --- a/dune/istl/novlpschwarz.hh +++ b/dune/istl/novlpschwarz.hh @@ -98,7 +98,7 @@ namespace Dune { {} //! apply operator to x: \f$ y = A(x) \f$ - virtual void apply (const X& x, Y& y) const + void apply (const X& x, Y& y) const override { y = 0; novlp_op_apply(x,y,1); @@ -106,7 +106,7 @@ namespace Dune { } //! apply operator to x, scale and add: \f$ y = y + \alpha A(x) \f$ - virtual void applyscaleadd (field_type alpha, const X& x, Y& y) const + void applyscaleadd (field_type alpha, const X& x, Y& y) const override { // only apply communication to alpha*A*x to make it consistent, // y already has to be consistent. @@ -118,7 +118,7 @@ namespace Dune { } //! get matrix via * - virtual const matrix_type& getmat () const + const matrix_type& getmat () const override { return *_A_; } @@ -232,7 +232,7 @@ namespace Dune { } //! Category of the linear operator (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::nonoverlapping; } @@ -312,7 +312,7 @@ namespace Dune { \copydoc Preconditioner::pre(domain_type&,range_type&) */ - virtual void pre (domain_type& x, range_type& b) + void pre (domain_type& x, range_type& b) override { _preconditioner->pre(x,b); } @@ -322,7 +322,7 @@ namespace Dune { \copydoc Preconditioner::apply(domain_type&,const range_type&) */ - virtual void apply (domain_type& v, const range_type& d) + void apply (domain_type& v, const range_type& d) override { // block preconditioner equivalent to WrappedPreconditioner from // pdelab/backend/ovlpistsolverbackend.hh, @@ -343,13 +343,13 @@ namespace Dune { \copydoc Preconditioner::post(domain_type&) */ - virtual void post (domain_type& x) + void post (domain_type& x) override { _preconditioner->post(x); } //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::nonoverlapping; } diff --git a/dune/istl/overlappingschwarz.hh b/dune/istl/overlappingschwarz.hh index 2c2d4a862c3ae97e8aa47714fdd96d20ce6f640a..8b5262091fc5ad250d278f9febb72ffbdda5c1d1 100644 --- a/dune/istl/overlappingschwarz.hh +++ b/dune/istl/overlappingschwarz.hh @@ -843,7 +843,7 @@ namespace Dune \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre ([[maybe_unused]] X& x, [[maybe_unused]] X& b) + void pre ([[maybe_unused]] X& x, [[maybe_unused]] X& b) override {} /*! @@ -851,21 +851,21 @@ namespace Dune \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const X& d); + void apply (X& v, const X& d) override; /*! \brief Postprocess the preconditioner. \copydoc Preconditioner::post(X&) */ - virtual void post ([[maybe_unused]] X& x) + void post ([[maybe_unused]] X& x) override {} template<bool forward> void apply(X& v, const X& d); //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } diff --git a/dune/istl/paamg/twolevelmethod.hh b/dune/istl/paamg/twolevelmethod.hh index dc31fa3443ae2e080d8448765dbc300e7c4d007a..336f4a47443a7aaa3c87e38e553e629300eb025d 100644 --- a/dune/istl/paamg/twolevelmethod.hh +++ b/dune/istl/paamg/twolevelmethod.hh @@ -273,7 +273,7 @@ private: : amg_(op, crit,args), first_(true) {} - void apply(X& x, X& b, [[maybe_unused]] double reduction, [[maybe_unused]] InverseOperatorResult& res) + void apply(X& x, X& b, [[maybe_unused]] double reduction, [[maybe_unused]] InverseOperatorResult& res) override { if(first_) { @@ -284,13 +284,13 @@ private: amg_.apply(x,b); } - void apply(X& x, X& b, InverseOperatorResult& res) + void apply(X& x, X& b, InverseOperatorResult& res) override { return apply(x,b,1e-8,res); } //! Category of the solver (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return amg_.category(); } @@ -428,15 +428,15 @@ public: delete coarseSolver_; } - void pre(FineDomainType& x, FineRangeType& b) + void pre(FineDomainType& x, FineRangeType& b) override { smoother_->pre(x,b); } - void post([[maybe_unused]] FineDomainType& x) + void post([[maybe_unused]] FineDomainType& x) override {} - void apply(FineDomainType& v, const FineRangeType& d) + void apply(FineDomainType& v, const FineRangeType& d) override { FineDomainType u(v); FineRangeType rhs(d); @@ -463,7 +463,7 @@ public: } //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } diff --git a/dune/istl/preconditioners.hh b/dune/istl/preconditioners.hh index 77a6d57546bc6235c7c40cdaff81a82644a87f74..edacb143d52b2ad1fb6509fd68a58822c1320d96 100644 --- a/dune/istl/preconditioners.hh +++ b/dune/istl/preconditioners.hh @@ -99,21 +99,21 @@ namespace Dune { DUNE_THROW(InvalidStateException, "User-supplied solver category does not match that of the given inverse operator"); } - virtual void pre(domain_type&,range_type&) + void pre([[maybe_unused]] domain_type&,[[maybe_unused]] range_type&) override {} - virtual void apply(domain_type& v, const range_type& d) + void apply(domain_type& v, const range_type& d) override { InverseOperatorResult res; range_type copy(d); inverse_operator_.apply(v, copy, res); } - virtual void post(domain_type&) + void post([[maybe_unused]] domain_type&) override {} //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::category(inverse_operator_); } @@ -206,7 +206,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) + void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) override {} /*! @@ -214,7 +214,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const Y& d) + void apply (X& v, const Y& d) override { for (int i=0; i<_n; i++) { bsorf(_A_,v,d,_w,BL<l>()); @@ -227,11 +227,11 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post ([[maybe_unused]] X& x) + void post ([[maybe_unused]] X& x) override {} //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } @@ -326,7 +326,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) + void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) override {} /*! @@ -334,7 +334,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const Y& d) + void apply (X& v, const Y& d) override { this->template apply<true>(v,d); } @@ -365,11 +365,11 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post ([[maybe_unused]] X& x) + void post ([[maybe_unused]] X& x) override {} //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } @@ -477,7 +477,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) + void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) override {} /*! @@ -485,7 +485,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const Y& d) + void apply (X& v, const Y& d) override { for (int i=0; i<_n; i++) { dbjac(_A_,v,d,_w,BL<l>()); @@ -497,11 +497,11 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post ([[maybe_unused]] X& x) + void post ([[maybe_unused]] X& x) override {} //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } @@ -636,7 +636,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre([[maybe_unused]] X &x, [[maybe_unused]] Y &b) + void pre([[maybe_unused]] X &x, [[maybe_unused]] Y &b) override { } @@ -645,7 +645,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply(X &v, const Y &d) + void apply(X &v, const Y &d) override { DILU::blockDILUBacksolve(_A_, Dinv_, v, d); @@ -661,12 +661,12 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post([[maybe_unused]] X &x) + void post([[maybe_unused]] X &x) override { } //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } @@ -810,7 +810,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) + void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) override {} /*! @@ -818,7 +818,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const Y& d) + void apply (X& v, const Y& d) override { if( ILU_ ) { @@ -840,11 +840,11 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post ([[maybe_unused]] X& x) + void post ([[maybe_unused]] X& x) override {} //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } @@ -917,7 +917,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) + void pre ([[maybe_unused]] X& x, [[maybe_unused]] Y& b) override {} /*! @@ -925,7 +925,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const Y& d) + void apply (X& v, const Y& d) override { v = d; v *= _w; @@ -936,11 +936,11 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post ([[maybe_unused]] X& x) + void post ([[maybe_unused]] X& x) override {} //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::sequential; } diff --git a/dune/istl/scalarproducts.hh b/dune/istl/scalarproducts.hh index 16682a5df61280dc4210b4d29d0391196494ef4d..c2642ac61746bfceb3f001ee9f217af1b68dc0c3 100644 --- a/dune/istl/scalarproducts.hh +++ b/dune/istl/scalarproducts.hh @@ -136,7 +136,7 @@ namespace Dune { It is assumed that the vectors are consistent on the interior+border partition. */ - virtual field_type dot (const X& x, const X& y) const override + field_type dot (const X& x, const X& y) const override { field_type result(0); _communication->dot(x,y,result); // explicitly loop and apply masking @@ -146,13 +146,13 @@ namespace Dune { /*! \brief Norm of a right-hand side vector. The vector must be consistent on the interior+border partition */ - virtual real_type norm (const X& x) const override + real_type norm (const X& x) const override { return _communication->norm(x); } //! Category of the scalar product (see SolverCategory::Category) - virtual SolverCategory::Category category() const override + SolverCategory::Category category() const override { return _category; } diff --git a/dune/istl/schwarz.hh b/dune/istl/schwarz.hh index 5dd2f465e7b6928e6f5f97f332e1b2d3eed54593..262ab3f61aebc2a1f8dec5af7a9701af824d122c 100644 --- a/dune/istl/schwarz.hh +++ b/dune/istl/schwarz.hh @@ -113,7 +113,7 @@ namespace Dune { {} //! apply operator to x: \f$ y = A(x) \f$ - virtual void apply (const X& x, Y& y) const + void apply (const X& x, Y& y) const override { y = 0; _A_->umv(x,y); // result is consistent on interior+border @@ -122,7 +122,7 @@ namespace Dune { } //! apply operator to x, scale and add: \f$ y = y + \alpha A(x) \f$ - virtual void applyscaleadd (field_type alpha, const X& x, Y& y) const + void applyscaleadd (field_type alpha, const X& x, Y& y) const override { _A_->usmv(alpha,x,y); // result is consistent on interior+border communication.project(y); // we want this here to avoid it before the preconditioner @@ -130,13 +130,13 @@ namespace Dune { } //! get the sequential assembled linear operator. - virtual const matrix_type& getmat () const + const matrix_type& getmat () const override { return *_A_; } //! Category of the linear operator (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::overlapping; } @@ -203,7 +203,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre (X& x, [[maybe_unused]] Y& b) + void pre (X& x, [[maybe_unused]] Y& b) override { communication.copyOwnerToAll(x,x); // make dirichlet values consistent } @@ -213,7 +213,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const Y& d) + void apply (X& v, const Y& d) override { for (int i=0; i<_n; i++) { bsorf(_A_,v,d,_w); @@ -227,10 +227,10 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post ([[maybe_unused]] X& x) {} + void post ([[maybe_unused]] X& x) override {} //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::overlapping; } @@ -323,7 +323,7 @@ namespace Dune { \copydoc Preconditioner::pre(X&,Y&) */ - virtual void pre (X& x, Y& b) + void pre (X& x, Y& b) override { _communication.copyOwnerToAll(x,x); // make dirichlet values consistent _preconditioner->pre(x,b); @@ -334,7 +334,7 @@ namespace Dune { \copydoc Preconditioner::apply(X&,const Y&) */ - virtual void apply (X& v, const Y& d) + void apply (X& v, const Y& d) override { _preconditioner->apply(v,d); _communication.copyOwnerToAll(v,v); @@ -352,13 +352,13 @@ namespace Dune { \copydoc Preconditioner::post(X&) */ - virtual void post (X& x) + void post (X& x) override { _preconditioner->post(x); } //! Category of the preconditioner (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::overlapping; } diff --git a/dune/istl/solver.hh b/dune/istl/solver.hh index 2d97a5f4b12652e490814f11c4d512fe1cd7c5b0..48696d0ecd50bf7ee1ff7389a08a35e1db2460fe 100644 --- a/dune/istl/solver.hh +++ b/dune/istl/solver.hh @@ -373,7 +373,7 @@ namespace Dune \copydoc InverseOperator::apply(X&,Y&,double,InverseOperatorResult&) */ - virtual void apply (X& x, X& b, double reduction, InverseOperatorResult& res) + void apply (X& x, X& b, double reduction, InverseOperatorResult& res) override { scalar_real_type saved_reduction = _reduction; _reduction = reduction; @@ -382,7 +382,7 @@ namespace Dune } //! Category of the solver (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return _category; } diff --git a/dune/istl/solvers.hh b/dune/istl/solvers.hh index 6c327de38f25c1fbcba974a19486800b19f2af92..98dbc9fdf17bc3d70ba5b1e63f918e243c19be6f 100644 --- a/dune/istl/solvers.hh +++ b/dune/istl/solvers.hh @@ -70,7 +70,7 @@ namespace Dune { using IterativeSolver<X,X>::apply; //! \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) - virtual void apply (X& x, X& b, InverseOperatorResult& res) + void apply (X& x, X& b, InverseOperatorResult& res) override { Iteration iteration(*this, res); _prec->pre(x,b); @@ -139,7 +139,7 @@ namespace Dune { \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) */ - virtual void apply (X& x, X& b, InverseOperatorResult& res) + void apply (X& x, X& b, InverseOperatorResult& res) override { Iteration iteration(*this, res); _prec->pre(x,b); // prepare preconditioner @@ -276,7 +276,7 @@ namespace Dune { E.g. numeric_limits<double>::quiet_NaN()*0.0==0.0 with gcc-5.3 -ffast-math. */ - virtual void apply (X& x, X& b, InverseOperatorResult& res) + void apply (X& x, X& b, InverseOperatorResult& res) override { Iteration iteration(*this,res); _prec->pre(x,b); // prepare preconditioner @@ -436,7 +436,7 @@ namespace Dune { \note Currently, the BiCGSTABSolver aborts when it detects a breakdown. */ - virtual void apply (X& x, X& b, InverseOperatorResult& res) + void apply (X& x, X& b, InverseOperatorResult& res) override { using std::abs; const Simd::Scalar<real_type> EPSILON=1e-80; @@ -624,7 +624,7 @@ namespace Dune { \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) */ - virtual void apply (X& x, X& b, InverseOperatorResult& res) + void apply (X& x, X& b, InverseOperatorResult& res) override { using std::sqrt; using std::abs; @@ -907,7 +907,7 @@ namespace Dune { \note Currently, the RestartedGMResSolver aborts when it detects a breakdown. */ - virtual void apply (X& x, Y& b, InverseOperatorResult& res) + void apply (X& x, Y& b, InverseOperatorResult& res) override { apply(x,b,Simd::max(_reduction),res); } @@ -920,7 +920,7 @@ namespace Dune { \note Currently, the RestartedGMResSolver aborts when it detects a breakdown. */ - virtual void apply (X& x, Y& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) + void apply (X& x, Y& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) override { using std::abs; const Simd::Scalar<real_type> EPSILON = 1e-80; @@ -1388,7 +1388,7 @@ private: \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) */ - virtual void apply (X& x, X& b, InverseOperatorResult& res) + void apply (X& x, X& b, InverseOperatorResult& res) override { Iteration iteration(*this, res); _prec->pre(x,b); // prepare preconditioner @@ -1580,7 +1580,7 @@ private: -ffast-math. */ - virtual void apply (X& x, X& b, InverseOperatorResult& res) + void apply (X& x, X& b, InverseOperatorResult& res) override { using rAlloc = ReboundAllocatorType<X,field_type>; res.clear(); @@ -1690,7 +1690,8 @@ private: using RestartedFCGSolver<X>::apply; // just a minor part of the RestartedFCGSolver apply method will be modified - virtual void apply (X& x, X& b, InverseOperatorResult& res) override { + void apply (X& x, X& b, InverseOperatorResult& res) override + { // reset limiter of orthogonalization loop _k_limit = 0; this->RestartedFCGSolver<X>::apply(x,b,res); @@ -1698,7 +1699,7 @@ private: private: // This function is called every iteration to orthogonalize against the last search directions. - virtual void orthogonalizations(const int& i_bounded,const std::vector<X>& Ad, const X& w, const std::vector<field_type,ReboundAllocatorType<X,field_type>>& ddotAd,std::vector<X>& d) override { + void orthogonalizations(const int& i_bounded,const std::vector<X>& Ad, const X& w, const std::vector<field_type,ReboundAllocatorType<X,field_type>>& ddotAd,std::vector<X>& d) override { // This FCGSolver uses values with higher array indexes too, if existent. for (int k = 0; k < _k_limit; k++) { if(i_bounded!=k) @@ -1711,7 +1712,7 @@ private: }; // This function is called every mmax iterations to handle limited array sizes. - virtual void cycle(std::vector<X>& Ad, [[maybe_unused]] std::vector<X>& d, [[maybe_unused]] std::vector<field_type,ReboundAllocatorType<X,field_type> >& ddotAd,int& i_bounded) override { + void cycle(std::vector<X>& Ad, [[maybe_unused]] std::vector<X>& d, [[maybe_unused]] std::vector<field_type,ReboundAllocatorType<X,field_type> >& ddotAd,int& i_bounded) override { // Only the loop index i_bounded return to 0, if it reached mmax. i_bounded = 0; // Now all arrays are filled and the loop in void orthogonalizations can use the whole arrays. diff --git a/dune/istl/spqr.hh b/dune/istl/spqr.hh index daaf0ba42c36e7df20cef412df30e9b5bc7455af..61c05510cd347025cc630d70c7fb25f995b9cfcb 100644 --- a/dune/istl/spqr.hh +++ b/dune/istl/spqr.hh @@ -79,7 +79,7 @@ namespace Dune { typedef Dune::BlockVector<FieldVector<T,n>, typename std::allocator_traits<A>::template rebind_alloc<FieldVector<T,n> > > range_type; //! Category of the solver (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::Category::sequential; } @@ -152,7 +152,7 @@ namespace Dune { } /** \copydoc InverseOperator::apply(X&, Y&, InverseOperatorResult&) */ - virtual void apply(domain_type& x, range_type& b, InverseOperatorResult& res) + void apply(domain_type& x, range_type& b, InverseOperatorResult& res) override { const std::size_t numRows(spqrMatrix_.N()); // fill B @@ -188,7 +188,7 @@ namespace Dune { } /** \copydoc InverseOperator::apply(X&,Y&,double,InverseOperatorResult&) */ - virtual void apply (domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) + void apply (domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) override { apply(x, b, res); } diff --git a/dune/istl/superlu.hh b/dune/istl/superlu.hh index 498fcd45163c638ff1547b43bbe717ff94692f47..783e9d194ede3d6adfe1bddccc73e400ec341086 100644 --- a/dune/istl/superlu.hh +++ b/dune/istl/superlu.hh @@ -284,7 +284,7 @@ namespace Dune using range_type = typename Impl::SuperLUVectorChooser<M>::range_type; //! Category of the solver (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::Category::sequential; } @@ -334,12 +334,12 @@ namespace Dune /** * \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) */ - void apply(domain_type& x, range_type& b, InverseOperatorResult& res); + void apply(domain_type& x, range_type& b, InverseOperatorResult& res) override; /** * \copydoc InverseOperator::apply(X&,Y&,double,InverseOperatorResult&) */ - void apply (domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) + void apply (domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) override { apply(x,b,res); } diff --git a/dune/istl/supermatrix.hh b/dune/istl/supermatrix.hh index e5e7fdc13b153e060b7ba4cbed9e211fdd0636ba..7df48fee9ffccc1b59f1af2df7956c781e409daf 100644 --- a/dune/istl/supermatrix.hh +++ b/dune/istl/supermatrix.hh @@ -300,7 +300,7 @@ namespace Dune } /** @brief free allocated space. */ - virtual void free() + void free() override { ISTL::Impl::BCCSMatrix<typename BCRSMatrix<B,TA>::field_type, int>::free(); SUPERLU_FREE(A.Store); @@ -326,7 +326,7 @@ namespace Dune SuperMatrixInitializer() : ISTL::Impl::BCCSMatrixInitializer<BCRSMatrix<B,A>, int>() {} - virtual void createMatrix() const + void createMatrix() const override { ISTL::Impl::BCCSMatrixInitializer<BCRSMatrix<B,A>, int>::createMatrix(); SuperMatrixCreateSparseChooser<typename Matrix::field_type> diff --git a/dune/istl/umfpack.hh b/dune/istl/umfpack.hh index 60bfd20fb1cccfb00ac4b8856ecad9f51bc6f03d..54cb264b08a39ad8094c3f1e931dedcac34201ee 100644 --- a/dune/istl/umfpack.hh +++ b/dune/istl/umfpack.hh @@ -274,7 +274,7 @@ namespace Dune { using range_type = Impl::UMFPackRangeType<M>; //! Category of the solver (see SolverCategory::Category) - virtual SolverCategory::Category category() const + SolverCategory::Category category() const override { return SolverCategory::Category::sequential; } @@ -400,7 +400,7 @@ namespace Dune { /** * \copydoc InverseOperator::apply(X&, Y&, InverseOperatorResult&) */ - virtual void apply(domain_type& x, range_type& b, InverseOperatorResult& res) + void apply(domain_type& x, range_type& b, InverseOperatorResult& res) override { if (umfpackMatrix_.N() != b.dim()) DUNE_THROW(Dune::ISTLError, "Size of right-hand-side vector b does not match the number of matrix rows!"); @@ -451,7 +451,7 @@ namespace Dune { /** * \copydoc InverseOperator::apply(X&,Y&,double,InverseOperatorResult&) */ - virtual void apply (domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) + void apply (domain_type& x, range_type& b, [[maybe_unused]] double reduction, InverseOperatorResult& res) override { apply(x,b,res); } @@ -534,7 +534,7 @@ namespace Dune { // and a mapping from the compressed indices std::vector<size_type> subIndices; - int numberOfIgnoredDofs = 0; + [[maybe_unused]] int numberOfIgnoredDofs = 0; int nonZeros = 0; if constexpr ( useBitVector )