Hi

This example runs several linear solves because there is a nonlinear solver 
below a continuation scheme. I figured that it would be possible to reuse the 
preconditioner and see savings so I included the lines:


LinearSolver<Number> * linear_solver = system.get_linear_solver();

linear_solver->reuse_preconditioner(reuse_preconditioner);


before the continuation loop. I didn’t see significative difference though. I 
ran the example with -log_summary to see if there was a difference in the 
preconditioned stage, but with or without reuse_preconditioner(true), the 
function PCSetup() is called the same number of times. Is this the correct way 
to reuse the preconditioned? Because I suspect it is not given that I don’t see 
such a flag inside libMesh::PetscNonlinearSolver< T >::solve() 
(https://libmesh.github.io/doxygen/classlibMesh_1_1PetscNonlinearSolver.html#a03b43dbd42cb7103e34f9238ab2ae7ff)


What difference should I see in the -log_summary? PCSetup called just once?


Thanks

Miguel

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to