13 class LinearSystemMerger;
46 const double weighRatioThreshold);
51 virtual void printRow(
const int nr)
const {
throw;}
63 virtual shared_ptr<CRConnectivity>
68 virtual shared_ptr<Matrix>
virtual void setFlatMatrix(Matrix &fmg) const
virtual void * getOffDiagData() const
virtual shared_ptr< CRConnectivity > createCoarseConnectivity(const IContainer &coarseIndex, const CRConnectivity &coarseToFine, const StorageSite &coarseRowSite, const StorageSite &coarseColSite)
virtual const CRConnectivity & getConnectivity() const
virtual int getOffDiagDataSize() const
virtual void multiplyAndAdd(IContainer &yB, const IContainer &xB) const
DEFINE_TYPENAME("Matrix")
virtual void printRow(const int nr) const
virtual void iluSolve(IContainer &xB, const IContainer &bB, const IContainer &residual) const
virtual void spikeSolve(IContainer &xB, const IContainer &bB, const IContainer &residual, const SpikeStorage &spike_storage) const
virtual void Jacobi(IContainer &xnew, const IContainer &xold, const IContainer &b) const
virtual shared_ptr< Matrix > createCoarseMatrix(const IContainer &coarseIndex, const CRConnectivity &coarseToFine, const CRConnectivity &coarseConnectivity)
virtual bool isInvertible()
virtual void multiply(IContainer &yB, const IContainer &xB) const
virtual void forwardGS(IContainer &xB, IContainer &bB, IContainer &residual) const
virtual void eliminateBoundaryEquations(IContainer &xB)
virtual void reverseGS(IContainer &xB, IContainer &bB, IContainer &residual) const
virtual int getDiagDataSize() const
virtual void solveBoundary(IContainer &xB, IContainer &bB, IContainer &residual) const
virtual shared_ptr< Matrix > createMergeMatrix(const LinearSystemMerger &mergeLS)
virtual void * getDiagData() const
virtual int createCoarsening(IContainer &coarseIndex, const int groupSize, const double weighRatioThreshold)
virtual void computeResidual(const IContainer &xB, const IContainer &bB, IContainer &residual) const
virtual shared_ptr< ArrayBase > quadProduct(const IContainer &xB) const
virtual void initAssembly()=0