I tried
-pc_type gamg -pc_mg_cycle_type v -pc_gamg_agg_nsmooths 1
-mg_coarse_sub_pc_factor_shift_nonzero
but I still get
[0]PETSC ERROR: Detected zero pivot in LU factorization:
see http://www.mcs.anl.gov/petsc/documentation/faq.html#ZeroPivot!
[0]PETSC ERROR: Zero pivot row 280 value 6.58999e-17 tolerance 2.22045e-14!
[0]PETSC ERROR:
------------------------------------------------------------------------
[0]PETSC ERROR: Petsc Release Version 3.3.0, Patch 3, Wed Aug 29
11:26:24 CDT 2012
[0]PETSC ERROR: See docs/changes/index.html for recent updates.
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
[0]PETSC ERROR: See docs/index.html for manual pages.
[0]PETSC ERROR:
------------------------------------------------------------------------
[0]PETSC ERROR: ./hit on a named nid21818 by Unknown Fri May 24
16:08:33 2013
[0]PETSC ERROR: Libraries linked from
[0]PETSC ERROR: Configure run at
[0]PETSC ERROR: Configure options
[0]PETSC ERROR:
------------------------------------------------------------------------
[0]PETSC ERROR: MatPivotCheck_none() line 583 in
src/mat/impls/aij/seq//ptmp/skelly/petsc/3.3.03/cray_interlagos_build/real/src/include/petsc-private/matimpl.h
[0]PETSC ERROR: MatPivotCheck() line 602 in
src/mat/impls/aij/seq//ptmp/skelly/petsc/3.3.03/cray_interlagos_build/real/src/include/petsc-private/matimpl.h
[0]PETSC ERROR: MatLUFactorNumeric_SeqAIJ() line 585 in
src/mat/impls/aij/seq/aijfact.c
[0]PETSC ERROR: MatLUFactorNumeric() line 2803 in src/mat/interface/matrix.c
[0]PETSC ERROR: PCSetUp_LU() line 160 in src/ksp/pc/impls/factor/lu/lu.c
[0]PETSC ERROR: PCSetUp() line 832 in src/ksp/pc/interface/precon.c
[0]PETSC ERROR: KSPSetUp() line 278 in src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: PCSetUpOnBlocks_BJacobi_Singleblock() line 715 in
src/ksp/pc/impls/bjacobi/bjacobi.c
[0]PETSC ERROR: PCSetUpOnBlocks() line 865 in src/ksp/pc/interface/precon.c
[0]PETSC ERROR: KSPSetUpOnBlocks() line 154 in
src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: KSPSolve() line 403 in src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: PCMGMCycle_Private() line 20 in src/ksp/pc/impls/mg/mg.c
[0]PETSC ERROR: PCMGMCycle_Private() line 49 in src/ksp/pc/impls/mg/mg.c
[0]PETSC ERROR: PCMGMCycle_Private() line 49 in src/ksp/pc/impls/mg/mg.c
[0]PETSC ERROR: PCMGMCycle_Private() line 49 in src/ksp/pc/impls/mg/mg.c
[0]PETSC ERROR: PCApply_MG() line 326 in src/ksp/pc/impls/mg/mg.c
[0]PETSC ERROR: PCApply() line 384 in src/ksp/pc/interface/precon.c
[0]PETSC ERROR: KSPSolve_CG() line 139 in src/ksp/ksp/impls/cg/cg.c
[0]PETSC ERROR: KSPSolve() line 446 in src/ksp/ksp/interface/itfunc.c
If instead I use
-pc_type gamg -pc_mg_cycle_type v -pc_gamg_agg_nsmooths 1
-mg_coarse_pc_type svd
as Matthew suggested, I am told that there is an invalid argument.
Michele
On 05/24/2013 01:04 PM, Matthew Knepley wrote:
On Fri, May 24, 2013 at 2:55 PM, Jed Brown <[email protected]
<mailto:[email protected]>> wrote:
Michele Rosso <[email protected] <mailto:[email protected]>> writes:
> Hi Jed,
>
> I followed your suggestion by using:
>
> -pc_type gamg -pc_mg_cycle_type v -pc_gamg_agg_nsmooths 1
>
> This works perfectly if I have a non-singular matrix. When
instead I use
> periodic conditions for my system ( I set the nullspace removal
> correctly ),
> I receive an error saying a zero pivot is detected in the LU
> factorization. So, after some research, I found in the
mailinglist a fix :
>
> -pc_type gamg -pc_mg_cycle_type v -pc_gamg_agg_nsmooths 1
> -mg_coarse_pc_factor_shift_nonzero
It'll need to be -mg_coarse_sub_pc_factor_shift_nonzero
With petsc-3.4 (which you should upgrade to), use
-mg_coarse_sub_pc_factor_shift_type NONZERO
The reason you need this "sub" prefix is that the code always
restricts
using block Jacobi (usually localized so that all the entries are
in one
block), before applying the direct coarse solver.
I think this is less elegant than
-mg_coarse_pc_type svd
Matt
> Still I am receiving the following error
>
>
> [0]PETSC ERROR: --------------------- Error Message
> ------------------------------------
> [0]PETSC ERROR: Detected zero pivot in LU factorization:
> see http://www.mcs.anl.gov/petsc/documentation/faq.html#ZeroPivot!
> [0]PETSC ERROR: Zero pivot row 280 value 6.5908e-17 tolerance
2.22045e-14!
> [0]PETSC ERROR:
>
------------------------------------------------------------------------
> [0]PETSC ERROR: Petsc Release Version 3.3.0, Patch 3, Wed Aug 29
> 11:26:24 CDT 2012
> [0]PETSC ERROR: See docs/changes/index.html for recent updates.
> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
> [0]PETSC ERROR: See docs/index.html for manual pages.
> [0]PETSC ERROR:
>
------------------------------------------------------------------------
> [0]PETSC ERROR: ./hit on a named nid09458 by Unknown Fri May 24
> 14:40:48 2013
> [0]PETSC ERROR: Libraries linked from
> [0]PETSC ERROR: Configure run at
> [0]PETSC ERROR: Configure options
> [0]PETSC ERROR:
>
------------------------------------------------------------------------
> [0]PETSC ERROR: MatPivotCheck_none() line 583 in
>
src/mat/impls/aij/seq//ptmp/skelly/petsc/3.3.03/cray_interlagos_build/real/src/include/petsc-private/matimpl.h
> [0]PETSC ERROR: MatPivotCheck() line 602 in
>
src/mat/impls/aij/seq//ptmp/skelly/petsc/3.3.03/cray_interlagos_build/real/src/include/petsc-private/matimpl.h
> [0]PETSC ERROR: MatLUFactorNumeric_SeqAIJ() line 585 in
> src/mat/impls/aij/seq/aijfact.c
> [0]PETSC ERROR: MatLUFactorNumeric() line 2803 in
src/mat/interface/matrix.c
> [0]PETSC ERROR: PCSetUp_LU() line 160 in
src/ksp/pc/impls/factor/lu/lu.c
> [0]PETSC ERROR: PCSetUp() line 832 in src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSPSetUp() line 278 in
src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: PCSetUpOnBlocks_BJacobi_Singleblock() line 715 in
> src/ksp/pc/impls/bjacobi/bjacobi.c
> [0]PETSC ERROR: PCSetUpOnBlocks() line 865 in
src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSPSetUpOnBlocks() line 154 in
> src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: KSPSolve() line 403 in
src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: PCMGMCycle_Private() line 20 in
src/ksp/pc/impls/mg/mg.c
> [0]PETSC ERROR: PCMGMCycle_Private() line 49 in
src/ksp/pc/impls/mg/mg.c
> [0]PETSC ERROR: PCMGMCycle_Private() line 49 in
src/ksp/pc/impls/mg/mg.c
> [0]PETSC ERROR: PCMGMCycle_Private() line 49 in
src/ksp/pc/impls/mg/mg.c
> [0]PETSC ERROR: PCApply_MG() line 326 in src/ksp/pc/impls/mg/mg.c
> [0]PETSC ERROR: PCApply() line 384 in src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSPSolve_CG() line 139 in src/ksp/ksp/impls/cg/cg.c
> [0]PETSC ERROR: KSPSolve() line 446 in
src/ksp/ksp/interface/itfunc.c
>
> What could the reason be?
> Thank you,
>
> Michele
>
>
>
> On 05/17/2013 07:35 PM, Michele Rosso wrote:
>> Thank you very much. I will try and let you know.
>>
>> Michele
>>
>> On 05/17/2013 07:01 PM, Jed Brown wrote:
>>> Michele Rosso<[email protected] <mailto:[email protected]>> writes:
>>>
>>>> I noticed that the problem appears even if I use CG with the
default
>>>> preconditioner: commenting KSPSetDM() solves the problem.
>>> Okay, this issue can't show up if you use SNES, but it's a
consequence
>>> of making geometric multigrid work with a pure KSP interface.
You can
>>> either use KSPSetComputeOperators() to put your assembly in a
function
>>> (which will also be called on coarse levels if you use -pc_type mg
>>> without Galerkin coarse operators) or you can can provide the
Jacobian
>>> using KSPSetOperators() as usual, but also call
KSPSetDMActive() so that
>>> the DM is not used for computing/updating the Jacobian.
>>>
>>> The logic is cleaner in petsc-3.4 and I think it just does the
right
>>> thing in your case.
>>>
>>>> So basically without a proper grid (it seems no grid with an even
>>>> numbers of nodes qualifies) and with my own system matrix, I
cannot use
>>>> any type of multigrid
>>>> pre-conditioner?
>>> You can use all the AMG methods without setting a DM.
>>>
>>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener