- May 11, 2021
-
-
Müller, Alexander authored
-
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.
-
- May 04, 2021
-
-
AlexanderMüller authored
-
AlexanderMüller authored
-
- Apr 30, 2021
-
-
AlexanderMüller authored
-
- Apr 22, 2021
-
-
Sander, Oliver authored
Fix/pipeline See merge request !76
-
Lisa Julia Nebel authored
This has been changed to Dune::Vtk::FormatTypes::ASCII in the dune-vtk module
-
Lisa Julia Nebel authored
-
- Feb 16, 2021
-
-
Sander, Oliver authored
System test for the Cosserat rod problem See merge request !75
-
Sander, Oliver authored
The previous implementation worked only for first-order finite element spaces, because it assumed that grid vertices and Lagrange nodes were identical.
-
Sander, Oliver authored
This test assembles and solves a prototype Cosserat problem. In then checks whether the required number of iterations and the final energy match given (hard-coded) values.
-
Sander, Oliver authored
-
- Feb 10, 2021
-
-
Sander, Oliver authored
Feature/stress plot See merge request !73
-
- Feb 08, 2021
-
-
Lisa Julia Nebel authored
-
Lisa Julia Nebel authored
-
- Jan 20, 2021
-
-
Lisa Julia Nebel authored
-
Lisa Julia Nebel authored
-
Lisa Julia Nebel authored
-
Lisa Julia Nebel authored
-
- Jan 19, 2021
-
-
Sander, Oliver authored
Remove support for Dune 2.6 and older See merge request !74
-
-
- Jan 07, 2021
-
-
Sander, Oliver authored
Small change/fix in Mixed Riemanian Trust region solver See merge request !69
-
- Nov 30, 2020
-
-
AlexanderMüller authored
-
- Nov 21, 2020
-
-
Sander, Oliver authored
Modernize rod code See merge request !67
-
- Nov 20, 2020
-
-
Sander, Oliver authored
Otherwise the Cosserat rod code will not compile without dune-parmg.
-
Sander, Oliver authored
This reflect the current purpose of the test much better.
-
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.
-
Sander, Oliver authored
It is not a 'stiffness' anymore, but really only implements the energy.
-
Sander, Oliver authored
This is a prerequisite to a) support for higher-order FE, and b) getting rid of the hand-written CosseratVTKWriter.
-
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.
-
Sander, Oliver authored
GeodesicFEAssembler can replace it without problems.
-
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.
-
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);
-
Sander, Oliver authored
-
- Nov 13, 2020
-
-
Sander, Oliver authored
fixed mixed riemanniansolver issues See merge request !68
-
Müller, Alexander authored
-
- Nov 10, 2020
-
-
Sander, Oliver authored
Feature/remove vertex normals See merge request !63
-
- Nov 08, 2020
-
-
Sander, Oliver authored
-
Sander, Oliver authored
In the 'mixed' case the volume term was simply forgotten, and not actually handed to the assembler.
-
Sander, Oliver authored
It is very unlikely that somebody will use that ever again.
-