Modernize rod code
- 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 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.
-
Sander, Oliver authored
Rather than using a default file, which was the case previously.
-
Sander, Oliver authored
Otherwise the program aborts for the usual mysterious reasons.
-
Sander, Oliver authored
-