Understanding solver output

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • mR1ch
    Member
    • Oct 2022
    • 35

    Understanding solver output

    Hi

    I am working on a challening problem and I want to understand what the solver output is telling me so I can make the appropirate action

    Nonlinear solution status: time= 0.000421953
    stiffness updates = 3
    right hand side evaluations = 22
    stiffness matrix reformations = 0
    step from line search = 1.000000
    convergence norms : --------------------INITIAL------------------ CURRENT ------------------------REQUIRED
    residual ____________________2.961815e-04 _______1.199519e-14 ______________0.000000e+00
    energy _____________________8.739475e-05_______ 2.733112e-14 ______________8.739475e-07
    displacement________________ 3.084308e-04_______ 2.011145e-13______________ 3.081169e-10
    fluid pressure ________________2.471547e+02______ 2.204281e-06______________ 3.104763e-02

    ........................ augmentation # 6
    linear constraint set 1:_________ 0.00258934________ 4.72643e-08________________ 2.589292e-09
    linear constraint set 2: _________0.00258934________ 4.726472e-08_______________ 2.589292e-09​


    I often missing convergence from the linear constraint set 2, though in this instance both are over. I am not sure what what the solver is doing here or what I can do about it to help the solver. I understand a lot of this will be problem specific but I am looking to build a bit of general intuition.

    Also one thing I am wondering would help is on the stiffness matrix reformulation. I generally have to do this 3+ times a time step and that eats up a lot of time. Is there a way to jump right to 3 reformulation rather than forming one trying to converge and then reformulating.

    M
  • maas
    Lead Code Developer
    • Nov 2007
    • 3481

    #2
    Hi,

    Regarding the linear constraints, it looks like the convergence is set too tightly. I would increase the convergence tolerance there. In general, increasing the penalty could also help with speeding up convergence. Well, I should say, there is a "sweet spot" for the penalty. Setting it too low, and the augmentations will converge very slowly, but setting it too high, might make the problem unstable.
    There is also a different way to set linear constraints: there is a boundary condition (instead of a nonlinear constraint) that enforces the constraint by essentially removing the constrained degrees of freedom. This often works better than this augmented Lagrangian approach so might be worth considering.

    I'm not sure what you mean by "jump right to 3 reformulations", but you can increase the number of updates (i.e. increase the max_updates solver parameter) between reformations if you wish to reduce the number of reformations. Also, when doing augmentations, make sure to increase the opt_iter parameter (e.g. to 50), otherwise it's possible that FEBio will keep decreasing the time step size, which will significantly affect the total run time.

    I hope this helps. Let me know if you have any further questions.

    Best,

    Steve
    Department of Bioengineering, University of Utah
    Scientific Computing and Imaging institute, University of Utah

    Comment

    Working...
    X