Skip to content
Snippets Groups Projects
  1. Mar 03, 2022
  2. Mar 02, 2022
    • Sander, Oliver's avatar
      Fix bug in method RealTuple::log · 6b5d17d1
      Sander, Oliver authored
      Calling log(a,b) returned a-b instead of b-a.
      
      Also, enable unit tests for the RealTuple class.  The current test
      will not trigger the bug in the log method: that will come shortly.
      
      Finally, this commit is the first that mentions its user-facing
      changes in the newly introduced CHANGELOG.md file.
      6b5d17d1
    • Sander, Oliver's avatar
      Use logical && instead of bitwise & · 565b7f77
      Sander, Oliver authored
      The compiler warns about &, and I think the author's intention
      was && anyway.
      565b7f77
  3. Feb 27, 2022
  4. Feb 25, 2022
  5. Jan 28, 2022
  6. Jan 27, 2022
  7. Jan 22, 2022
  8. Nov 16, 2021
  9. Nov 09, 2021
  10. Oct 28, 2021
  11. Aug 19, 2021
  12. Jul 09, 2021
  13. Jul 02, 2021
    • Lisa Julia Nebel's avatar
      Fix error in nonplanarcosseratshellenergy · 3ad0e2c6
      Lisa Julia Nebel authored
      The contravariant base vectors were not calculated correctly.
      The contravariant base vectors are the *columns* of the inverse of the covariant matrix, not the rows.
      To fix this, take the rows of the transpose of inverse of the covariant matrix.
      3ad0e2c6
  14. Jun 10, 2021
  15. May 11, 2021
    • Müller, Alexander's avatar
      added ProductManifold class · badc23be
      Müller, Alexander authored
      badc23be
    • Müller, Alexander's avatar
      changed tolerances to fix failing tests · a2647f48
      Müller, Alexander authored
      The tests failed since the construction of values of ProductManifold<> in ValueFactory uses random entries between [0.9..1.1]. These are then used for the tests and are projected onto the manifold. 
      
      To pass this tests it is needed to adjust several Taylor expansions and thresholds. For example this commit increases the threshold from `1e-4` to `1e-2` and adds more terms to the Taylor expansion. The reason for this change is explained in the following. 
      
      The problem is, even if the tolerance `1e-4` is sufficient to have a correct function value within machine precision, it is not always sufficient to get correct derivatives since here we lose orders of correctness.
      
      For  example of for sinc(x) we need to put the threshold at `1e-4` to get the correct function value if we use  `1.0-x*x/6.0` as approximation formula.
      
      If we then use this formula within automatic differentiation or finite differences, e.g. the derivative algorithms  "sees" only the following formulas of the first and second derivative:
      
      - Function value: `1.0-x*x/6.0`   This function is implemented
      - First deriv: `-x/3.0`      This sees the derivative algorithms as first derivative
      - Second: `-1.0/3.0`       This sees the derivative algorithms as second derivative
      
      Obviously, this is the case if the function value is inside the region where the Taylor expansion is used.
      
      If we use these functions to test the exactness of the derivatives we need to set the threshold to `x<1e-6` to get exact second order derivatives where the error is within machine precision. Therefore, for larger values `x>1e-6` the exact formula has to be used to get correct results. Unfortunately, in this range the exact derivative are already unstable.
      E.g. the first derivative formula behaves already strange near `x=1e-4`.
      
      Therefore,
      to get a correct derivative value we need to switch to the Taylor expansion earlier (`1e-4`) to prevent using the unstable exact formula. But in this range the Taylor expansion is unable to reproduce an approximation error within machine precision.
      
      I think the only way to fix this problem is to add more terms to the Taylor expansions. Since even if they seem to be sufficient in terms of function value, usually they are not sufficient in terms of derivatives.
      
      For `sin(x)/x` a test ist at https://godbolt.org/z/T995hGec3 and for `acos(x)^2` https://godbolt.org/z/TG9E15jjf.
      a2647f48
  16. May 05, 2021
  17. May 04, 2021
  18. Apr 30, 2021
  19. Apr 22, 2021
  20. Feb 16, 2021
  21. Feb 08, 2021
  22. Jan 20, 2021
  23. Jan 19, 2021
  24. Nov 30, 2020
  25. Nov 20, 2020
    • Sander, Oliver's avatar
      Implement GlobalP2Mapper for 1d grids · baf1f9fd
      Sander, Oliver authored
      Otherwise the Cosserat rod code will not compile without dune-parmg.
      baf1f9fd
    • Sander, Oliver's avatar
      Support rod discretizations of any order · 3fd15b9e
      Sander, Oliver authored
      So far, the Cosserat rod energy implementation hat a first-order
      finite element space hardcoded.  This patch removes that restriction.
      As for the other models in this Dune module, the finite element basis
      is now a template parameter of the model energy, and can be set to
      any reasonable basis.
      3fd15b9e
Loading