[cig-commits] r18242 - short/3D/PyLith/trunk/libsrc/problems

brad at geodynamics.org brad at geodynamics.org
Mon Apr 18 15:22:07 PDT 2011


Author: brad
Date: 2011-04-18 15:22:07 -0700 (Mon, 18 Apr 2011)
New Revision: 18242

Modified:
   short/3D/PyLith/trunk/libsrc/problems/Solver.cc
   short/3D/PyLith/trunk/libsrc/problems/Solver.hh
   short/3D/PyLith/trunk/libsrc/problems/SolverLinear.cc
   short/3D/PyLith/trunk/libsrc/problems/SolverNonlinear.cc
Log:
Cleanup of preconditioner matrix names. Still have preconditioning bug.

Modified: short/3D/PyLith/trunk/libsrc/problems/Solver.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/problems/Solver.cc	2011-04-18 22:11:27 UTC (rev 18241)
+++ short/3D/PyLith/trunk/libsrc/problems/Solver.cc	2011-04-18 22:22:07 UTC (rev 18242)
@@ -67,8 +67,8 @@
 pylith::problems::Solver::Solver(void) :
   _formulation(0),
   _logger(0),
-  _precondMatrix(0),
-  _jacobianPre(0)
+  _jacobianPre(0),
+  _jacobianPreFault(0)
 { // constructor
 } // constructor
 
@@ -90,8 +90,8 @@
     PetscErrorCode err = MatDestroy(_jacobianPre); _jacobianPre = 0;
     CHECK_PETSC_ERROR(err);
   } // if
-  if (0 != _precondMatrix) {
-    PetscErrorCode err = MatDestroy(_precondMatrix); _precondMatrix = 0;
+  if (0 != _jacobianPreFault) {
+    PetscErrorCode err = MatDestroy(_jacobianPreFault); _jacobianPreFault = 0;
     CHECK_PETSC_ERROR(err);
   } // if
 } // deallocate
@@ -114,7 +114,7 @@
 
   PetscErrorCode err = 0;
   if (solutionSection->getNumSpaces() > sieveMesh->getDimension() &&
-      _precondMatrix) {
+      _jacobianPreFault) {
     PetscInt M, N, m, n;
 
     err = MatGetSize(jacobianMat, &M, &N);CHECK_PETSC_ERROR(err);
@@ -123,7 +123,7 @@
     err = MatShellSetOperation(_jacobianPre, MATOP_GET_SUBMATRIX, (void (*)(void)) MyMatGetSubMatrix);
     _ctx.A              = jacobianMat;
     _ctx.faultFieldName = "3";
-    _ctx.faultA         = _precondMatrix;
+    _ctx.faultA         = _jacobianPreFault;
   } else {
     _jacobianPre = jacobianMat;
     err = PetscObjectReference((PetscObject) jacobianMat);CHECK_PETSC_ERROR(err);

Modified: short/3D/PyLith/trunk/libsrc/problems/Solver.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/problems/Solver.hh	2011-04-18 22:11:27 UTC (rev 18241)
+++ short/3D/PyLith/trunk/libsrc/problems/Solver.hh	2011-04-18 22:22:07 UTC (rev 18242)
@@ -96,9 +96,10 @@
 
   Formulation* _formulation; ///< Handle to formulation for system of eqns.
   utils::EventLogger* _logger; ///< Event logger.
-  PetscMat _precondMatrix; ///< Preconditioning matrix for Lagrange constraints.
-  PetscMat _jacobianPre; ///< global fault preconditioning matrix
-  FaultPreconCtx _ctx; ///< Context for global fault preconditioning matrix
+  PetscMat _jacobianPre; ///< Global preconditioning matrix.
+  PetscMat _jacobianPreFault; ///< Preconditioning matrix for Lagrange constraints.
+  FaultPreconCtx _ctx; ///< Context for preconditioning matrix for Lagrange constraints.
+
 // NOT IMPLEMENTED //////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/problems/SolverLinear.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/problems/SolverLinear.cc	2011-04-18 22:11:27 UTC (rev 18241)
+++ short/3D/PyLith/trunk/libsrc/problems/SolverLinear.cc	2011-04-18 22:22:07 UTC (rev 18242)
@@ -86,7 +86,7 @@
     PetscPC pc = 0;
     err = KSPGetPC(_ksp, &pc); CHECK_PETSC_ERROR(err);
     _ctx.pc = pc;
-    _setupFieldSplit(&pc, &_precondMatrix, formulation, fields);
+    _setupFieldSplit(&pc, &_jacobianPreFault, formulation, fields);
   } // if
 } // initialize
 
@@ -131,7 +131,7 @@
   assert(!sieveMesh.isNull());
 #if 0
   if (solutionSection->getNumSpaces() > sieveMesh->getDimension() &&
-      0 != _precondMatrix) {
+      0 != _jacobianPreFault) {
     
     PetscPC pc = 0;
     PetscKSP *ksps = 0;
@@ -147,7 +147,7 @@
     err = KSPGetOperators(ksps[num-1], &A, 
 			  PETSC_NULL, &flag); CHECK_PETSC_ERROR(err);
     err = PetscObjectReference((PetscObject) A); CHECK_PETSC_ERROR(err);
-    err = KSPSetOperators(ksps[num-1], A, _precondMatrix, 
+    err = KSPSetOperators(ksps[num-1], A, _jacobianPreFault, 
 			  flag); CHECK_PETSC_ERROR(err);
     err = PetscFree(ksps); CHECK_PETSC_ERROR(err);
   } // if

Modified: short/3D/PyLith/trunk/libsrc/problems/SolverNonlinear.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/problems/SolverNonlinear.cc	2011-04-18 22:11:27 UTC (rev 18241)
+++ short/3D/PyLith/trunk/libsrc/problems/SolverNonlinear.cc	2011-04-18 22:22:07 UTC (rev 18242)
@@ -126,7 +126,7 @@
     err = SNESGetKSP(_snes, &ksp); CHECK_PETSC_ERROR(err);
     err = KSPGetPC(ksp, &pc); CHECK_PETSC_ERROR(err);
     _ctx.pc = pc;
-    _setupFieldSplit(&pc, &_precondMatrix, formulation, fields);
+    _setupFieldSplit(&pc, &_jacobianPreFault, formulation, fields);
   } // if
 } // initialize
 
@@ -147,7 +147,7 @@
   const ALE::Obj<SieveMesh>& sieveMesh = solution->mesh().sieveMesh();
    assert(!sieveMesh.isNull());
   if (solutionSection->getNumSpaces() > sieveMesh->getDimension() &&
-      0 != _precondMatrix) {
+      0 != _jacobianPreFault) {
     PetscKSP ksp = 0;
     PetscPC pc = 0;
     PetscKSP *ksps = 0;
@@ -163,7 +163,7 @@
 
 #if 0 // debugging
     std::cout << "Preconditioner Matrix" << std::endl;
-    MatView(_precondMatrix, PETSC_VIEWER_STDOUT_WORLD);
+    MatView(_jacobianPreFault, PETSC_VIEWER_STDOUT_WORLD);
 #endif
 
 
@@ -171,7 +171,7 @@
     err = KSPGetOperators(ksps[num-1], &A, 
 			  PETSC_NULL, &flag); CHECK_PETSC_ERROR(err);
     err = PetscObjectReference((PetscObject) A); CHECK_PETSC_ERROR(err);
-    err = KSPSetOperators(ksps[num-1], A, _precondMatrix, 
+    err = KSPSetOperators(ksps[num-1], A, _jacobianPreFault, 
 			  flag); CHECK_PETSC_ERROR(err);
     err = PetscFree(ksps); CHECK_PETSC_ERROR(err);
   } // if



More information about the CIG-COMMITS mailing list