00001 /* @HEADER@ */ 00002 // 00003 /* @HEADER@ */ 00004 00005 00006 #ifndef RANDOMBLOCKMATRIX_BUILDER_DECL_HPP 00007 #define RANDOMBLOCKMATRIX_BUILDER_DECL_HPP 00008 00009 #include "PlayaOperatorBuilder.hpp" 00010 #include "PlayaRandomSparseMatrixBuilderDecl.hpp" 00011 00012 using namespace Playa; 00013 using namespace Teuchos; 00014 00015 00016 namespace Playa 00017 { 00018 /** */ 00019 template <class Scalar> 00020 class RandomBlockMatrixBuilder : public OperatorBuilder<Scalar> 00021 { 00022 public: 00023 /** */ 00024 RandomBlockMatrixBuilder(const VectorSpace<Scalar>& domain, 00025 const VectorSpace<Scalar>& range, 00026 double blockDensity, 00027 double onProcDensity, 00028 double offProcDensity, 00029 const VectorType<double>& vecType); 00030 00031 /** */ 00032 LinearOperator<double> getOp() const {return op_;} 00033 00034 private: 00035 LinearOperator<double> op_; 00036 }; 00037 } 00038 00039 #endif