Skip to content
Snippets Groups Projects
  1. Jan 19, 2021
  2. Nov 30, 2020
  3. 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
    • Sander, Oliver's avatar
      Rename RodLocalStiffness to Dune::GFE::CosseratRodEnergy · 2c5aa41d
      Sander, Oliver authored
      It is not a 'stiffness' anymore, but really only implements the
      energy.
      2c5aa41d
    • Sander, Oliver's avatar
      Use ADOL-C for derivatives of the rod energy · da55ad7a
      Sander, Oliver authored
      Previously, the rod3d code used a hand-implemented first derivative
      of the rod energy, and FD for the second derivatives.  This patch
      replaces this by ADOL-C for both first and second derivatives.
      Advantages are:
      * The code is much shorter, and easier to understand.
      * The previous code contained interpolation formulae for
        first-order 1d geodesic finite elements.  This restricted
        rod problems to first-order GFE.  A follow-up patch will
        allow higher-order approximations.
      * The new code runs roughly twice as fast.
      da55ad7a
    • Sander, Oliver's avatar
      Remove the RodAssembler class · 33fd5621
      Sander, Oliver authored
      GeodesicFEAssembler can replace it without problems.
      33fd5621
    • Sander, Oliver's avatar
      Move all rod stress and strain methods to local energy implementation · ac686e40
      Sander, Oliver authored
      As a first step towards getting rid of the RodAssembler class,
      this patch moves the getStrain, getStress, and getResultantForce
      methods to the RodLocalStiffness class.  I am not 100% convinced
      that that is the best place for them, but I can't think of a
      better one right now.
      ac686e40
    • Sander, Oliver's avatar
      Find std math functions by ADL · 87e1da6f
      Sander, Oliver authored
      ADOL-C implements most standard math functions for its
      'adouble' type, and they are not in the namespace 'std'.
      dune-fufem contains a file adolcnamespaceinjections.hh
      which imports some of these methods into the 'std'
      namespace, but that is not the proper way to do it.
      Rather, they should be found by argument-dependent
      lookup (ADL), that is
      
        using std::sin;
        auto v = sin(x);
      87e1da6f
    • Sander, Oliver's avatar
      Fix small errors in code documentation · 7b0e339e
      Sander, Oliver authored
      7b0e339e
  4. Nov 13, 2020
  5. Nov 08, 2020
  6. Nov 05, 2020
  7. Nov 03, 2020
  8. Oct 21, 2020
  9. Oct 20, 2020
  10. Oct 12, 2020
    • Lisa Julia Nebel's avatar
      Add sumenergy.hh, this class assembles the a sum of energies for a single... · 085a0e42
      Lisa Julia Nebel authored
      Add sumenergy.hh, this class assembles the a sum of energies for a single element by summing up the energies of each GFE::LocalEnergy.
      
      This class works similarly to the class Dune::Elasticity::SumEnergy, where Dune::Elasticity::SumEnergy extends
      Dune::Elasticity::LocalEnergy and Dune::GFE::SumEnergy extends Dune::GFE::LocalEnergy.
      085a0e42
  11. Oct 08, 2020
  12. Oct 06, 2020
  13. Sep 24, 2020
    • Lisa Julia Nebel's avatar
      Add a GeodesicFEAssemblerWrapper - it wraps a MixedGFEAssembler so it can be... · aa03e106
      Lisa Julia Nebel authored
      Add a GeodesicFEAssemblerWrapper - it wraps a MixedGFEAssembler so it can be used like a GeodesicFEAssembler
      
      The GeodesicFEAssemblerWrapper assembles the Gradient and the Hessian using the MixedGFEAssembler and then
      resturctures them so they can be used with the normal RiemannianTRSolver.
      This only works, if the FE spaces have the same order.
      aa03e106
  14. Sep 18, 2020
  15. Sep 10, 2020
  16. Sep 09, 2020
  17. Sep 05, 2020
  18. Sep 03, 2020
    • Lisa Julia Nebel's avatar
      Add first version of the Riemannian Proximal Newton solver, as an alternative... · d038e0e4
      Lisa Julia Nebel authored
      Add first version of the Riemannian Proximal Newton solver, as an alternative to the Trust-Region Solver.
      
      In each step of these two iterative solvers, we try to find a correction
      that decreases the energy of the nonlinear functional of the current iterate x.
      The correction is calculated using the Taylor expansion around x,
      resulting in the problem: Hessian(x) * correction = -gradient(x).
      Within a certain radius around x, the functional can be approximated correctly and then
      the corrections causes an energy decrease.
      1) The trust-region algorithm ensures this using a trust-region.
      2) The proximal newton method ensures this by punishing
         large corrections using a regularization factor.
      d038e0e4
    • Lisa Julia Nebel's avatar
      Adjust Riemannian trust-region solver for parallel runs · 2c9cd7c5
      Lisa Julia Nebel authored
      In case the solve step (which is only done on process 0) goes wrong
      communicate it to all processes.
      2c9cd7c5
Loading