[cig-commits] commit: Make MultigridSolver abort because when generating a coarse solver it

Mercurial hg at geodynamics.org
Sun Oct 16 05:41:39 PDT 2011


changeset:   807:5577e2b0ce09
user:        Walter Landry <wlandry at caltech.edu>
date:        Sun Oct 16 05:35:21 2011 -0700
files:       SLE/SystemSetup/src/MultigridSolver.cxx
description:
Make MultigridSolver abort because when generating a coarse solver it
tries to use a variable before it is allocated.  PETScMGSolver is
unaffected.


diff -r 45614c218417 -r 5577e2b0ce09 SLE/SystemSetup/src/MultigridSolver.cxx
--- a/SLE/SystemSetup/src/MultigridSolver.cxx	Sun Oct 16 05:31:45 2011 -0700
+++ b/SLE/SystemSetup/src/MultigridSolver.cxx	Sun Oct 16 05:35:21 2011 -0700
@@ -170,10 +170,6 @@ void _MultigridSolver_Print( void* matri
 void _MultigridSolver_Print( void* matrixSolver, Stream* stream ) {
 	MultigridSolver*	self = (MultigridSolver*)matrixSolver;
 	
-	/* Set the Journal for printing informations */
-	Stream* matrixSolverStream;
-	matrixSolverStream = Journal_Register( InfoStream_Type, (Name)"MultigridSolverStream"  );
-
 	assert( self && Stg_CheckType( self, MultigridSolver ) );
 
 	/* Print parent */
@@ -764,10 +760,8 @@ void MultigridSolver_RestrictMatrix( Mul
 	PetscInt dummy;
 #endif
 
-	PetscScalar	fillRatio;
 	MatInfo		mInfo;
 	PetscInt	nRowsA, nRowsC;
-	PetscScalar	nzA, nzP, nzC;
 
 	assert( self );
 	assert( level );
@@ -786,17 +780,16 @@ void MultigridSolver_RestrictMatrix( Mul
 #else
 		MatGetSize( srcMat, &nRowsA, &dummy );
 #endif
-		nzA = mInfo.nz_used;
+                // PetscScalar nzA = mInfo.nz_used;
 		MatGetInfo( level->R, MAT_GLOBAL_SUM, &mInfo );
 #if( PETSC_VERSION_MAJOR <= 2 )
 		nRowsC = mInfo.columns_global;
 #else
 		MatGetSize( level->R, &dummy, &nRowsC );
 #endif
-		nzP = mInfo.nz_used;
-
-		nzC = ( nRowsC / nRowsA ) * nzA;
-		fillRatio = nzC / ( nzA + nzP );
+                // PetscScalar nzP = mInfo.nz_used;
+                // PetscScalar nzC = ( nRowsC / nRowsA ) * nzA;
+		// PetscScalar fillRatio = nzC / ( nzA + nzP );
 
 		/* this function doesn't exist! */
 		//MatPAPt( srcMat, level->R, MAT_REUSE_MATRIX, fillRatio, dstMatrix );
@@ -1123,43 +1116,46 @@ MGSolver_PETScData* MultigridSolver_Crea
 }
 
 MGSolver_PETScData* MultigridSolver_CreateCoarseSolver( MultigridSolver* self, Mat matrix ) {
-	//MatrixSolver*	coarseSolver;
-	MGSolver_PETScData* courseSolver;
-	unsigned	nProcs;
-	PC		pc;
 
-	MPI_Comm_size( self->mgData->comm, (int*)&nProcs );
+  abort();
+  return (MGSolver_PETScData*)NULL;
+	// //MatrixSolver*	coarseSolver;
+	// MGSolver_PETScData* courseSolver;
+	// unsigned	nProcs;
+	// PC		pc;
 
-	/*
-	coarseSolver = (MatrixSolver*)PETScMatrixSolver_New( "" );
-	PETScMatrixSolver_SetKSPType( coarseSolver, 
-				      PETScMatrixSolver_KSPType_PreOnly );
-	if( nProcs == 1 ) {
-		PETScMatrixSolver_SetPCType( coarseSolver, 
-					     PETScMatrixSolver_PCType_LU );
-	}
-	else {
-		PETScMatrixSolver_SetPCType( coarseSolver, 
-					     PETScMatrixSolver_PCType_RedundantLU );
-	}
-	MatrixSolver_SetMatrix( coarseSolver, matrix );
-	*/
-	KSPCreate( MPI_COMM_WORLD, &courseSolver->ksp );
-	KSPSetType( courseSolver->ksp, KSPPREONLY );
-	KSPGetPC( courseSolver->ksp, &pc );
-	if( nProcs == 1 )
-		PCSetType( pc, PCLU );
-	else {
-		PCSetType( pc, PCREDUNDANT );
-		PCRedundantGetPC( pc, &pc );
-		PCSetType( pc, PCLU );
-	}
-	if( courseSolver->matrix != PETSC_NULL )
-		MatDestroy( courseSolver->matrix );
-	courseSolver->matrix = matrix;
-	KSPSetOperators( courseSolver->ksp, matrix, matrix, DIFFERENT_NONZERO_PATTERN );
+	// MPI_Comm_size( self->mgData->comm, (int*)&nProcs );
 
-	return courseSolver;
+	// /*
+	// coarseSolver = (MatrixSolver*)PETScMatrixSolver_New( "" );
+	// PETScMatrixSolver_SetKSPType( coarseSolver, 
+	// 			      PETScMatrixSolver_KSPType_PreOnly );
+	// if( nProcs == 1 ) {
+	// 	PETScMatrixSolver_SetPCType( coarseSolver, 
+	// 				     PETScMatrixSolver_PCType_LU );
+	// }
+	// else {
+	// 	PETScMatrixSolver_SetPCType( coarseSolver, 
+	// 				     PETScMatrixSolver_PCType_RedundantLU );
+	// }
+	// MatrixSolver_SetMatrix( coarseSolver, matrix );
+	// */
+	// KSPCreate( MPI_COMM_WORLD, &courseSolver->ksp );
+	// KSPSetType( courseSolver->ksp, KSPPREONLY );
+	// KSPGetPC( courseSolver->ksp, &pc );
+	// if( nProcs == 1 )
+	// 	PCSetType( pc, PCLU );
+	// else {
+	// 	PCSetType( pc, PCREDUNDANT );
+	// 	PCRedundantGetPC( pc, &pc );
+	// 	PCSetType( pc, PCLU );
+	// }
+	// if( courseSolver->matrix != PETSC_NULL )
+	// 	MatDestroy( courseSolver->matrix );
+	// courseSolver->matrix = matrix;
+	// KSPSetOperators( courseSolver->ksp, matrix, matrix, DIFFERENT_NONZERO_PATTERN );
+
+	// return courseSolver;
 }
 
 void MultigridSolver_Destruct( MultigridSolver* self ) {



More information about the CIG-COMMITS mailing list