Using C++ template metaprograms
C++ gems
Expression templates and forward mode automatic differentiation
Automatic differentiation of algorithms
Finite Element Method for Elliptic Problems
Finite Element Method for Elliptic Problems
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ in Depth Series)
Expression templates implementation of continuous and discontinuous Galerkin methods
Computing and Visualization in Science
Basic concepts to design a DSL for parallel finite volume applications: extended abstract
Proceedings of the 8th workshop on Parallel/High-Performance Object-Oriented Scientific Computing
On the efficiency of symbolic computations combined with code generation for finite element methods
ACM Transactions on Mathematical Software (TOMS)
PARA'06 Proceedings of the 8th international conference on Applied parallel computing: state of the art in scientific computing
Construction of a high order fluid-structure interaction solver
Journal of Computational and Applied Mathematics
Proceedings of the 14th international conference on Model driven engineering languages and systems
Unified Embedded Parallel Finite Element Computations via Software-Based Fréchet Differentiation
SIAM Journal on Scientific Computing
Productive Parallel Linear Algebra Programming with Unstructured Topology Adaption
CCGRID '12 Proceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012)
Journal of Computational and Applied Mathematics
ACM Transactions on Mathematical Software (TOMS)
Scientific Programming - A New Overview of the Trilinos Project --Part 1
Hi-index | 0.00 |
In this article, we present a domain specific embedded language in C++ that can be used in various contexts such as numerical projection onto a functional space, numerical integration, variational formulations and automatic differentiation. Albeit these tools operate in different ways, the language overcomes this difficulty by decoupling expression constructions from evaluation. The language is implemented using expression templates and meta-programming techniques and uses various Boost libraries. The language is exercised on a number of non-trivial examples and a benchmark presents the performance behavior on a few test problems.