[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