Пример #1
0
void IfpackPrecond::create(Matrix *m)
{

#ifdef HAVE_IFPACK
	EpetraMatrix *mt = dynamic_cast<EpetraMatrix *>(m);
	assert(mt != NULL);
	mat = mt;
	if (strcmp(cls, "point-relax") == 0) {
		create_point_relax(mat, type);
		apply_params();
		initialize();
	}
	else if (strcmp(cls, "block-relax") == 0) {
		create_block_relax(mat, type);
		apply_params();
	}
	else if (strcmp(cls, "add-schwartz") == 0) {
		create_add_schwartz(mat, type, overlap);
		apply_params();
		initialize();
	}
#endif
}
Пример #2
0
 void IfpackPrecond<Scalar>::create(Matrix<Scalar> *m)
 {
   EpetraMatrix<Scalar> *mt = static_cast<EpetraMatrix<Scalar> *>(m);
   assert(mt != NULL);
   mat = mt;
   if(strcmp(cls, "point-relax") == 0)
   {
     create_point_relax(mat, type);
     apply_params();
     initialize();
   }
   else if(strcmp(cls, "block-relax") == 0)
   {
     create_block_relax(mat, type);
     apply_params();
   }
   else if(strcmp(cls, "add-schwartz") == 0)
   {
     create_add_schwartz(mat, type, overlap);
     apply_params();
     initialize();
   }
 }