diff --git a/dune/solvers/transferoperators/truncateddensemgtransfer.cc b/dune/solvers/transferoperators/truncateddensemgtransfer.cc index 9ee7326614ddfdb767a187df07468c3c8b562702..ba6b8a862f902ee427c20f41de011154dd675733 100644 --- a/dune/solvers/transferoperators/truncateddensemgtransfer.cc +++ b/dune/solvers/transferoperators/truncateddensemgtransfer.cc @@ -1,7 +1,7 @@ -template<class DiscFuncType, class BitVectorType, class OperatorType> -void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::prolong(const DiscFuncType& f, DiscFuncType& t) const +template<class VectorType, class BitVectorType, class MatrixType> +void TruncatedDenseMGTransfer<VectorType, BitVectorType, MatrixType>::prolong(const VectorType& f, VectorType& t) const { // If the critical bitfield is not set, call the base class method if (this->critical_ == nullptr) { @@ -21,10 +21,10 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::prolon t.resize(this->matrix_.N()); - typedef typename DiscFuncType::Iterator Iterator; - typedef typename DiscFuncType::ConstIterator ConstIterator; + typedef typename VectorType::Iterator Iterator; + typedef typename VectorType::ConstIterator ConstIterator; - typedef typename OperatorType::row_type RowType; + typedef typename MatrixType::row_type RowType; typedef typename RowType::ConstIterator ColumnIterator; Iterator tIt = t.begin(); @@ -60,8 +60,8 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::prolon } -template<class DiscFuncType, class BitVectorType, class OperatorType> -void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restrict(const DiscFuncType& f, DiscFuncType& t) const +template<class VectorType, class BitVectorType, class MatrixType> +void TruncatedDenseMGTransfer<VectorType, BitVectorType, MatrixType>::restrict(const VectorType& f, VectorType& t) const { // If the critical bitfield is not set, call the base class method @@ -84,10 +84,10 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restri t.resize(this->matrix_.M()); t = 0; - typedef typename DiscFuncType::Iterator Iterator; - typedef typename DiscFuncType::ConstIterator ConstIterator; + typedef typename VectorType::Iterator Iterator; + typedef typename VectorType::ConstIterator ConstIterator; - typedef typename OperatorType::row_type RowType; + typedef typename MatrixType::row_type RowType; typedef typename RowType::ConstIterator ColumnIterator; Iterator tIt = t.begin(); @@ -104,7 +104,7 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restri // The following lines are a matrix-vector loop, but rows belonging // to critical dofs are left out - typename DiscFuncType::block_type& tEntry = t[cIt.index()]; + typename VectorType::block_type& tEntry = t[cIt.index()]; for (int i=0; i<blocksize; i++) { for (int j=0; j<blocksize; j++) { @@ -123,9 +123,9 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restri } -template<class DiscFuncType, class BitVectorType, class OperatorType> -void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>:: -galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat) const +template<class VectorType, class BitVectorType, class MatrixType> +void TruncatedDenseMGTransfer<VectorType, BitVectorType, MatrixType>:: +galerkinRestrict(const MatrixType& fineMat, MatrixType& coarseMat) const { // If the critical bitfield is not set, call the base class method @@ -141,7 +141,7 @@ galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat) const // //////////////////////// // Nonsymmetric case // //////////////////////// - typedef typename OperatorType::row_type RowType; + typedef typename MatrixType::row_type RowType; typedef typename RowType::Iterator ColumnIterator; typedef typename RowType::ConstIterator ConstColumnIterator; @@ -199,7 +199,7 @@ galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat) const if (this->recompute_ && !((*this->recompute_)[iv][0]) && !((*this->recompute_)[jv][0])) continue; - typename OperatorType::block_type& cm = coarseMat[iv][jv]; + typename MatrixType::block_type& cm = coarseMat[iv][jv]; // Compute im * m * jm, but omitting the critical entries for (int i=0; i<blocksize; i++) {