Skip to content
Snippets Groups Projects
Commit bb0649df authored by Uli Sack's avatar Uli Sack Committed by usack
Browse files

revert commit to revision 5408; wrong transferoperator...

[[Imported from SVN: r5473]]
parent aaba502c
No related branches found
No related tags found
No related merge requests found
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#include <dune/common/fmatrix.hh> #include <dune/common/fmatrix.hh>
#include <dune/common/bitsetvector.hh> #include <dune/common/bitsetvector.hh>
#include <dune/solvers/operators/sumoperator.hh>
#include "truncatedmgtransfer.hh" #include "truncatedmgtransfer.hh"
#include "compressedmultigridtransfer.hh" #include "compressedmultigridtransfer.hh"
...@@ -79,67 +77,6 @@ public: ...@@ -79,67 +77,6 @@ public:
}; };
template<class VectorType, class BitVectorType, class SparseMatrixType, class LowRankMatrixType>
class TruncatedCompressedMGTransfer<VectorType, BitVectorType, SumOperator<SparseMatrixType, LowRankMatrixType> > :
public CompressedMultigridTransfer<VectorType, BitVectorType, SparseMatrixType>,
public TruncatedMGTransfer<VectorType, BitVectorType, SparseMatrixType>
{
enum {blocksize = VectorType::block_type::dimension};
typedef typename VectorType::field_type field_type;
public:
typedef SumOperator<SparseMatrixType,LowRankMatrixType> OperatorType;
typedef typename CompressedMultigridTransfer<VectorType, BitVectorType, SparseMatrixType>::TransferOperatorType TransferOperatorType;
/** \brief Default constructor */
TruncatedCompressedMGTransfer()
{}
/** \brief Restrict level fL of f and store the result in level cL of t
*
* \param critical Has to contain an entry for each degree of freedom.
* Those dofs with a set bit are treated as critical.
*/
void restrict(const VectorType& f, VectorType &t, const BitVectorType& critical) const;
/** \brief Restriction of MultiGridTransfer*/
using CompressedMultigridTransfer< VectorType, BitVectorType, SparseMatrixType >::restrict;
/** \brief Prolong level cL of f and store the result in level fL of t
*
* \param critical Has to contain an entry for each degree of freedom.
* Those dofs with a set bit are treated as critical.
*/
void prolong(const VectorType& f, VectorType &t, const BitVectorType& critical) const;
/** \brief Prolongation of MultiGridTransfer*/
using CompressedMultigridTransfer< VectorType, BitVectorType, SparseMatrixType >::prolong;
/** \brief Galerkin assemble a coarse stiffness matrix
*
* \param critical Has to contain an entry for each degree of freedom.
* Those dofs with a set bit are treated as critical.
*/
void galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat, const BitVectorType& critical) const;
/** \brief forward noncritical Galerkin restriction of sparse Matrix to CompressedMultiGridTransfer and do the rest here */
void galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat) const
{
CompressedMultigridTransfer< VectorType, BitVectorType, SparseMatrixType >::galerkinRestrict(fineMat.sparseMatrix(), coarseMat.sparseMatrix());
// \todo do the thing to the lowRankTerm
}
/** \brief forward to baseclass */
virtual void galerkinRestrictSetOccupation(const OperatorType& fineMat, OperatorType& coarseMat) const
{
CompressedMultigridTransfer<VectorType,BitVectorType,SparseMatrixType>::galerkinRestrictSetOccupation(fineMat.sparseMatrix(),coarseMat.sparseMatrix());
}
};
#include "truncatedcompressedmgtransfer.cc" #include "truncatedcompressedmgtransfer.cc"
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment