new Kernel: Porous Flow' style QpJac (Hardly converged) Vs. General hand-coding QpJac (easily converged) #27907
-
Dear all, Recently, I am learning the dirackernels/PorousFlowPeacemanBorehole and try to implement it in the kernels. Initially, I finish it by using general hand-coding QpJac and get good converged results. Recently, I try to use the Porous Flow' style QpJac (e.g. PorousFlowMassTimeDerivative.C and PorousFlowFullySaturatedMassTimeDerivative.C ) to speed up the simulation. 1 General hand-coding QpJac (easily convergence).txt Unlucky, I find it is hard to converge even at first step. Could you please help me on this? Thanks a lot. B General hand-coding QpJac (easily converged)
log:easily converged
Porous Flow' style QpJac (Hardly converged)
log: Hardly converged
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 7 replies
-
Hello You may want to follow the advice on convergence issues here: If you suspect the Jacobian is not correct, then there are techniques on that page to check and suggestions on how to remedy this |
Beta Was this translation helpful? Give feedback.
OK, thinking some more and I think your derivatives are correct for the case where you are using nodal properties. I think you just need to add something like
at the start of
QpJac()
for the same reason thatPorousFlowMassTimeDerivative
does (where it has a comment to remind usAs the fluid mass is lumped to the nodes, only non-zero terms are for _i==_j
). So the derivative of density, mass fraction, should be 0 if_i != _j