[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