FunG - Invariant-based modeling
Identifiers (Article)
Identifiers (Files)
Abstract
This document describes a C++-library for the generation of invariant-based models, including first three derivatives.Using expression templates, features of C++11/14, forward automatic differentiation and modern SFINAE-techniques admits a highly efficient implementation with a simple, intuitive interface.
Statistics
References
A. Alexandrescu, Optimization Tips - Mo' Hustle Mo' Problems, https://www.youtube.com/watch?v=Qq_WaiwzOtl (CppCon 2014), 2014
B. M. Bell, CppAD - A Package for Differentiation of C++ Algorithms. http://www.coin-or.org/CppAD
C. Bendtsen and O. Stauning. FADBAD, a flexible C++ package for automatic differentiation. Technical Report 1996-x5-95, Technical University of Denmark, 1996
M. Blatt and P. Bastian, The Iterative Solver Template Library. Appl. Par. Comp. 4699:666-675, 2007
W. Brown, A SFINAE-friendly std::common_type. Technical report, ISO/IEC JTC1/SC22/WG21, 2014
A. R. Conn, N. I. M. Gould and P. L. Toint, Trust Region Methods. MPS-SIAM Series on Optimization, 2000
G. Guennebaud and B. Jacob. Eigen v3. http://eigen.tuxfamily.org, 2010
M. A. Heroux et al, An overview of the Trilinos project. ACM Trans. Math. Softw. 31(3):397-423, 2005
R. J. Hogan, Fast reverse-mode automatic differentiation using expression templates in C++, ACM Trans. Math. Softw. 40(26)1-16, 2014
L. Lubkoll, An Optimal Control Approach to Implant Shape Design: Modeling, Analysis and Numerics, PhD thesis, University of Bayreuth, 2015
R. C. Martin, Clean Code. A Handbook of Agile Software Craftsmanship, Prentice Hall, 2009
J. A. C. Martins et al, A numerical model of passive and active behavior of skeletal muscles. Comp. Meth. Appl. Mech. Eng., 151:419-433, 1998
C. Sanderson, Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computational Intensive Experiments, Technical report, NICTA, 2010
A. Sen, A quick introdutcion to the Google C++ Testing Framework. Technical report, IBM developerWorks, 2010
G. Sommer et al, Multiaxial mechanical properties and constitutive modeling of human adipose tissue: A basis for preoperative simulations in plastic and reconstructive surgery. Acta Biomater. 9:9036-9048, 2013
R. Stallman and the GCC Developer Community: Using the GNU Compiler Collection, GNU Press, 2015
T. Veldhuizen, Expression templates. C++ Report, 7(5):26-31, 1995
A. Walther and A. Griewank, Getting started with ADOL-C, Comb. Sci. Comp., 181-202, 2012
Supplementary Content
-
Experiments for FunG - Invariant-based modeling
Description
This file contains the material required for the tables in FunG - Invariant-based modeling. In particular it contains the code used for each of these tables and the source code for automatic differentiation (AD) libraries FunG was compared with.
Instructions for providing the required dependencies and a recent compiler are given in the contained README file. For extraction and compilation of the used AD libraries a script 'install-ad-libraries' is provided.
As build system cmake is used. Instructions for compiling and running the experiments are given in the README files in the subfolders
- performance-optimization/
- comparison-with-ad-libraries/
Instructions in the README files and the installation script have been tested in a virtual machine with a clean ubuntu 14.04. In case you encounter problems, please contact me under lars.lubkoll@posteo.de
-
License
DescriptionLicense is GPL v3.
-
Experiments for FunG
DescriptionThe experiments used in the paper have changed in the first revised version. The new experiments are provided here. Errors detected by the reviewers have been fixed.