[petsc-users] Using a previous update to ameliorate jacobian near singularity

Subramanya Sadasiva potaman at outlook.com
Sun Nov 17 13:42:43 CST 2013


Hi, 
I am trying to solve a degenerate cahn hilliard inequality using petsc_DM and virs through libmesh. The problem is that the jacobian for this system has a nearly singular block owing to the \delta t term multiplying the K
 
[  K + M             M  ] [ \delta phi]  =  -R_phi
[    M            K deltat] [\delta mu ]  =  -R_mu

This leads to the unfortunate situation that the time stepping actually fails for very small timesteps.  a solution that seems possible is to add a constant mass matrix to the K delta t, making the system

[  K + M             M          ] [ \delta phi]  =  -R_phi
[    M            K deltat +M] [\delta mu ]  =  -R_mu + M \delta mu

And using the \delta mu from the previous timestep. I was just wondering if there is any way to get the pre-line search value of the \delta mu?  Is it okay to get the \alpha from the linesearch and divide the previous change by the \alpha?


I hope I am making sense here. 
Thanks, 
Subramanya 




More information about the petsc-users mailing list