1. 12 Apr, 2022 1 commit
  2. 08 Apr, 2022 2 commits
    • Sander, Oliver's avatar
      Use a block-diagonal matrix for evaluation matrix blocks · 370f8cca
      Sander, Oliver authored
      The blocks of the evaluation matrix are sparse.  In particular,
      they have a block-diagonal structure.  Previously, the implementation
      used a FieldMatrix for these blocks.  Which, in theory, is wasteful
      because of the matrix sparsity.
      This commit introduces a block-diagonal matrix with compile-time size
      for this.
      Unfortunately, initial tests do not show any speedup.
    • Sander, Oliver's avatar
      Do not store strains in the evaluation matrix · e3519fc9
      Sander, Oliver authored
      Rather, the only the gradients of scalar shape functions, and compute
      the strains on the fly.  This makes the evaluation matrices quite
      a bit smaller (roughly by a factor dim).
  3. 07 Apr, 2022 4 commits
  4. 08 Mar, 2022 2 commits
  5. 07 Mar, 2022 1 commit
  6. 02 Feb, 2022 4 commits
    • Sander, Oliver's avatar
      Use energy norm with scaled elasticity part again · e088b9ed
      Sander, Oliver authored
      In the first version of the manuscript, we used to control convergence
      with an energy norm where the elasticity part was scaled with the
      residual stiffness 'k'.  As far as I remember it this wasn't really
      intentional, but the matrix for that norm just "happened to be
      When we started to implement the operator-splitting algorithm we wanted
      to consolidate the convergence criterion, and we replaced the scaled
      energy norm by the true energy norm.  As it turned out, this
      overestimates the error in some situations where there is a complete
      crack.  This is particularly noticeable for the models with spectrally
      split energy, for reasons that we don't quite understand.
      This patch puts the scaling back into the norm.  From a theoretical
      point of view the scaled energy norm is not worse than the unscaled
      one, but the iteration numbers look much better this way.
    • Sander, Oliver's avatar
      Remove local variables g_c and l · ad016b7a
      Sander, Oliver authored
      Use the values from crackSurfaceDensity instead.
    • Sander, Oliver's avatar
      Remove a few unused variables · 2f8ef325
      Sander, Oliver authored
    • Sander, Oliver's avatar
      Modernize a few parameter files · eeddf216
      Sander, Oliver authored
  7. 31 Jan, 2022 2 commits
  8. 14 Jan, 2022 4 commits
  9. 12 Jan, 2022 8 commits
  10. 10 Jan, 2022 4 commits
    • Sander, Oliver's avatar
      Rewrite the line search step · 295cd69a
      Sander, Oliver authored
      The new implementation now exactly follows the description in
      Bertsekas: "Projected Newton Methods for Optimization Problems
      with Simple Constraints" (1982).
      It also exchanges a projection of the correction onto the defect
      obstacle for a projection of the new iterate onto the admissible
      set.  The old way did not work reliably:  In some case adding
      the projected correction to the old iterate would lead to an
      unadmissible new iterate (due to round-off errors).
    • Sander, Oliver's avatar
      Rename variable 'alpha' to 'sigma' · 9b80dde1
      Sander, Oliver authored
      'sigma' is what Bertsekas uses.
      Also, change the value from 0.5 to 0.49.  It needs to be strictly
      below 0.5.
    • Sander, Oliver's avatar
      Rewrite computing the truncation tolerance · ebe4b81b
      Sander, Oliver authored
      * Use infinity_norm instead of two_norm of the projected gradient
      * Provide a maximum value 'epsilon', as suggested by Bertsekas (1982)
      * Currently this value is hard-wired to 1e-5.  Eventually, this should
        be made configurable.
    • Sander, Oliver's avatar
      Have an upper damage obstacle '1' in the operator-splitting step · e5b705e4
      Sander, Oliver authored
      Carsten and I are not perfectly sure whether this is really needed,
      but let's put it there just in case.
  11. 07 Jan, 2022 2 commits
  12. 04 Jan, 2022 3 commits
  13. 21 Dec, 2021 3 commits