dune-gfe merge requestshttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests2024-04-06T04:20:40Zhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/148Use plain std::vector<double> for element energy gradients2024-04-06T04:20:40ZSander, OliverUse plain std::vector<double> for element energy gradientsThis is what dune-function mandates. We don't actually use
dune-functions here a lot, but it is still nice to stay in the spirit.
Also, I am thinking about using dune-functions bases for *some*
indexing work in the future.
Plus, I hope...This is what dune-function mandates. We don't actually use
dune-functions here a lot, but it is still nice to stay in the spirit.
Also, I am thinking about using dune-functions bases for *some*
indexing work in the future.
Plus, I hope that getting rid of the blocking will improve run-times
of debug builds a little bit, in particular in the
LocalIntegralStiffness class.https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/147Add missing regularization term in the quality measurement for step acceptance2024-04-10T10:09:55ZKlaus BöhnleinAdd missing regularization term in the quality measurement for step acceptanceWhen checking for the acceptance of a new iterate in the Riemannian proximal Newton solver
the regularization-term which is part of the quadratic model is missing in the quality measurement of the step.
The model decrease should be: $ m...When checking for the acceptance of a new iterate in the Riemannian proximal Newton solver
the regularization-term which is part of the quadratic model is missing in the quality measurement of the step.
The model decrease should be: $ m(x) - m(x+s) = -<g,s> - 0.5 <s, (H + regularization * I) s> $ However
$ m(x) - m(x+s) = -<g,s> - 0.5 <s, H s> $ is currently used.Klaus BöhnleinKlaus Böhnleinhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/146Implement GlobalP2Mapper for 3d grids even without dune-parmg2024-03-25T20:08:21ZSander, OliverImplement GlobalP2Mapper for 3d grids even without dune-parmgThis allows to enable `filmonsubstratetest.cc` unconditionally.This allows to enable `filmonsubstratetest.cc` unconditionally.https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/145MixedRiemannianPNSolver2024-03-26T07:51:20ZSander, OliverMixedRiemannianPNSolverA rebased and updated version of !71 .
In particular, there is no need for flat-to-blocked conversion anymore. Nowadays `CholmodSolver` accepts `MultiType` objects directly.A rebased and updated version of !71 .
In particular, there is no need for flat-to-blocked conversion anymore. Nowadays `CholmodSolver` accepts `MultiType` objects directly.https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/144Steps towards using LocalIntegralEnergy instead of problem-specific energy cl...2024-03-19T06:17:26ZSander, OliverSteps towards using LocalIntegralEnergy instead of problem-specific energy classeshttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/143Various cleanup patches2024-02-12T20:12:51ZSander, OliverVarious cleanup patcheshttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/142Update instrumented path for Riemannian TR and PN solvers.2024-01-19T14:21:26ZKlaus BöhnleinUpdate instrumented path for Riemannian TR and PN solvers.Add option to set a file-path for the 'instrumented' option for both the 'Riemannian trust-region' and the 'Proximal-newton' solver via a parameterTree. The '/tmp' folder used so far becomes the default.Add option to set a file-path for the 'instrumented' option for both the 'Riemannian trust-region' and the 'Proximal-newton' solver via a parameterTree. The '/tmp' folder used so far becomes the default.Klaus BöhnleinKlaus Böhnleinhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/141Replace RigidBodyMotion by ProductManifold2024-01-15T14:44:40ZSander, OliverReplace RigidBodyMotion by ProductManifold`RigidBodyMotion` is just a special case of a `ProductManifold`. There is no need for a separate implementation.`RigidBodyMotion` is just a special case of a `ProductManifold`. There is no need for a separate implementation.https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/140Add a CI job that runs uncrustify and checks for modifications2024-01-07T20:15:52ZSander, OliverAdd a CI job that runs uncrustify and checks for modificationsIf modifications are found this means that the style rules
are violated.
The uncrustify configuration file is the one from
https://dune-project.org/share/dune-uncrustify.cfg
downloaded on Jan 5. 2024.If modifications are found this means that the style rules
are violated.
The uncrustify configuration file is the one from
https://dune-project.org/share/dune-uncrustify.cfg
downloaded on Jan 5. 2024.https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/139Various minor improvements2024-01-03T06:08:31ZSander, OliverVarious minor improvementshttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/138Let ADOL-C differentiate the energy density and the GFE interpolation separately2024-01-26T12:38:37ZSander, OliverLet ADOL-C differentiate the energy density and the GFE interpolation separatelyWhen done right, this is faster than letting ADOL-C differentiate the entire quadrature loop.When done right, this is faster than letting ADOL-C differentiate the entire quadrature loop.Sander, OliverSander, Oliverhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/137Various CI updates2023-12-04T21:12:14ZSander, OliverVarious CI updateshttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/136Compare the part for 3d in CosseratEnergyLocalStiffness with the extracted...2023-11-24T05:36:34ZNebel, Lisa JuliaCompare the part for 3d in CosseratEnergyLocalStiffness with the extracted...Compare the part for 3d in CosseratEnergyLocalStiffness with the extracted density and localgeodesicintegralenergyCompare the part for 3d in CosseratEnergyLocalStiffness with the extracted density and localgeodesicintegralenergyhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/135Create assembler folder2023-10-30T06:18:05ZNebel, Lisa JuliaCreate assembler folder@osander: can you have a look?@osander: can you have a look?https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/134Feature/smarter use of adolc2023-12-30T06:28:15ZNebel, Lisa JuliaFeature/smarter use of adolc@osander: Lets discuss this :)@osander: Lets discuss this :)https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/133Divide the regularization parameter through the scaling parameter in the PN...2023-10-05T12:43:15ZNebel, Lisa JuliaDivide the regularization parameter through the scaling parameter in the PN...Divide the regularization parameter through the scaling parameter in the PN solver instead of multiplying
In the PN solver, we add identity*regularization/scaling to the stiffness matrix.
This has two effects:
- make the system matrix p...Divide the regularization parameter through the scaling parameter in the PN solver instead of multiplying
In the PN solver, we add identity*regularization/scaling to the stiffness matrix.
This has two effects:
- make the system matrix positive definite
- penalize large corrections to ensure an energy decrease in each step
The regularization parameter is adapted if either the system matrix is not positive definite
if there is an energy increase. This works similar to the trust-region radius in the TR solver.
The correction must be inside the trust-region, this ensures there is an energy decrease
in each step.
For each component of the correction, the trust-region radius as well as the regularization parameter
is multiplied with a scaling factor, because the correction for the displacement works depends
on the grid size where the correction for the rotation does not.
To align the effect of the scaling parameter, we need to divide through the scaling parameter in
the PN solver and multiply with it it in the TR solver.https://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/132update instrumented path for Riemannian TR and PN solvers2024-01-19T14:05:36ZKlaus Böhnleinupdate instrumented path for Riemannian TR and PN solversAdd option to set a file-path for instrumented option for both the Riemannian trust-region and the proximal-newton solver via a parameterTree.Add option to set a file-path for instrumented option for both the Riemannian trust-region and the proximal-newton solver via a parameterTree.Klaus BöhnleinKlaus Böhnleinhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/131Add norm option to Riemannian trust-region and proximal-newton solvers2023-06-20T08:30:41ZKlaus BöhnleinAdd norm option to Riemannian trust-region and proximal-newton solversAdd the option to choose different norm (H1-seminorm) for stopping criterion of these solvers.Add the option to choose different norm (H1-seminorm) for stopping criterion of these solvers.Klaus BöhnleinKlaus Böhnleinhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/130Add setup method to Riemannian TR and PN methods2023-06-16T11:49:49ZKlaus BöhnleinAdd setup method to Riemannian TR and PN methodsAdd additional setup method for Riemannian Trust-region/Proximal-Newton methods that directly takes a parameterTree.Add additional setup method for Riemannian Trust-region/Proximal-Newton methods that directly takes a parameterTree.Klaus BöhnleinKlaus Böhnleinhttps://gitlab.math.tu-dresden.de/osander/dune-gfe/-/merge_requests/129Add some options to RiemannianTrustRegionSolver2024-03-26T08:28:23ZKlaus BöhnleinAdd some options to RiemannianTrustRegionSolverAdd new setup method, option to choose different norms (infinity-norm and H1-seminorm) for stopping criterion and read instrumented-path from parameterFile.Add new setup method, option to choose different norms (infinity-norm and H1-seminorm) for stopping criterion and read instrumented-path from parameterFile.Sander, OliverSander, Oliver