FunG - Invariant-based modeling

Lars Lubkoll


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.


invariant, invariant-based modeling, automatic differentiation

Full Text:



A. Alexandrescu, Optimization Tips - Mo' Hustle Mo' Problems, (CppCon 2014), 2014

B. M. Bell, CppAD - A Package for Differentiation of C++ Algorithms.

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., 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