00001
00002
00003
00004
00005
00006
00007
00008 #ifndef SRC_AMG_MKB_AMG_GENERALRSCFSPLITTER_HPP_
00009 #define SRC_AMG_MKB_AMG_GENERALRSCFSPLITTER_HPP_
00010
00011 #include "RSCFSplitter.hpp"
00012
00013 class GeneralRSCFSplitter : public RSCFSplitter {
00014 public:
00015 GeneralRSCFSplitter(Mat mat, double strength_threshold, InterpolationStrategy* strategy);
00016 virtual ~GeneralRSCFSplitter();
00017
00018 protected:
00019 virtual PetscScalar GetExtremalValue(const PetscScalar* values, PetscInt size, PetscInt row_index,
00020 const PetscInt* columns, int first_row_in_range, int range_end);
00021 virtual bool IsStrongDependenceWithinRange(PetscScalar value, PetscScalar row_min, PetscInt row_index, PetscInt column_index,
00022 PetscInt first_row_in_range, PetscInt range_end, double strength_threshold);
00023 };
00024
00025 #endif