Hi all,
I ran a larger case: with elements = 200, and found for each calculation in
the iteration, system.final_linear_residual() is about 0.5%.
1) Is the system.final_linear_residual() r = b -A X* (X* is the solution)
? right?
2) It seems final residual is too big, and the equation is not solved well
(here |b| is about 1e-4). Does anyone have suggestion in playing with
solvers of Ax=b?
Here my case is on nonlinear elasticity, and A is almost symmetrical
positive definite (only components influenced by boundary conditions will
break the symmetry).
Also, following the suggestion of Paul, I use -ksp_view and find my solver
information is as below:
KSP Object: 4 MPI processes
type: gmres
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt
Orthogonalization with no iterative refinement
GMRES: happy breakdown tolerance 1e-30
maximum iterations=250
tolerances: relative=1e-08, absolute=1e-50, divergence=10000
left preconditioning
using nonzero initial guess
using PRECONDITIONED norm type for convergence test
PC Object: 4 MPI processes
type: bjacobi
block Jacobi: number of blocks = 4
Local solve is same for all blocks, in the following KSP and PC objects:
KSP Object: (sub_) 1 MPI processes
type: preonly
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
left preconditioning
using NONE norm type for convergence test
PC Object: (sub_) 1 MPI processes
type: ilu
ILU: out-of-place factorization
0 levels of fill
tolerance for zero pivot 2.22045e-14
using diagonal shift to prevent zero pivot
matrix ordering: natural
factor fill ratio given 1, needed 1
Factored matrix follows:
Matrix Object: 1 MPI processes
type: seqaij
rows=324, cols=324
package used to perform factorization: petsc
total: nonzeros=16128, allocated nonzeros=16128
total number of mallocs used during MatSetValues calls =0
not using I-node routines
linear system matrix = precond matrix:
Matrix Object: () 1 MPI processes
type: seqaij
rows=324, cols=324
total: nonzeros=16128, allocated nonzeros=19215
total number of mallocs used during MatSetValues calls =0
not using I-node routines
linear system matrix = precond matrix:
Matrix Object: () 4 MPI processes
type: mpiaij
rows=990, cols=990
total: nonzeros=58590, allocated nonzeros=64512
total number of mallocs used during MatSetValues calls =0
not using I-node (on process 0) routines
/*********************************************************
Thanks,
Walter
On Thu, May 22, 2014 at 12:18 PM, Paul T. Bauman <[email protected]> wrote:
>
>
>
> On Thu, May 22, 2014 at 12:11 PM, walter kou <[email protected]>wrote:
>
>> OK, but libMesh calls a library, defaulting to PETSc if it's installed.
>> Which library are you using?
>>
>> PETSc-3.3
>>
>
> I recommend checking out the PETSc documentation (
> http://www.mcs.anl.gov/petsc/petsc-as/documentation/) and tutorials. But
> you'll want to start with -ksp_view to get the parameters PETSc is using.
>
------------------------------------------------------------------------------
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users