AceGen

 

The Mathematica package AceGen is used for the automatic derivation of formulae needed in numerical procedures. Symbolic derivation of the characteristic quantities (e.g. gradients, tangent operators, sensitivity vectors,) leads to exponential behavior of derived expressions, both in time and space. A new approach, implemented in AceGen, avoids this problem by combining several techniques: symbolic and algebraic capabilities of Mathematica, automatic differentiation technique, automatic code generation, simultaneous optimization of expressions and theorem proving by a stochastic evaluation of the expressions. The multi-language capabilities of AceGen can be used for a rapid prototyping of numerical procedures in script languages of general problem solving environments like Mathematica or Matlab as well as to generate highly optimized and efficient compiled language codes in FORTRAN or C. Through a unique user interface the derived formulae can be explored and analyzed.

 

The AceGen package also provides a collection of prearranged modules for the automatic creation of the interface between the automatically generated code and the numerical environment where the code would be executed. The AceGen package directly supports several numerical environments such as: MathLink connection to Mathematica, AceFEM is a research finite element environment based on Mathematica, FEAP is a research finite element environment written in FORTRAN, ELFEN and ABAQUS are the commercial finite element environments written in FORTRAN etc.. The multi-language and multi-environment capabilities of AceGen package enable generation of numerical codes for various numerical environments from the same symbolic description. The use of AceGen offers a general approach to symbolic description of direct and sensitivity analysis of the most important formulations that appear in description of problems by finite element method (steady state, transient, coupled and coupled transient problems). The AceGen package rejects the traditional assumption that transition from symbolic codes to type-compiled codes is impracticable and that the symbolically generated codes are intrinsically too slow for large-scale numerical computations.

 

Unique features found in the product

Simultaneous expression optimization

  • AceGen extends the use of Mathematica to problems where direct use of Mathematica leads to expression swell (e.g. nonlinear finite elements, gradients of complicated functions needed within optimization procedures, etc.). It rejects the traditional assumption that transition from symbolic codes to type-compiled codes is impracticable and that the symbolically generated codes are intrinsically too slow for large-scale numerical computations.
  • A new approach, implemented in AceGen, avoids the expression swell problem by combining several techniques: symbolic and algebraic capabilities of Mathematica, automatic differentiation technique, automatic code generation, simultaneous optimization of expressions and theorem proving by a stochastic evaluation of the expressions.
  • Optimization of expressions and generation of control structures (Do, If) is performed over multiple notebook cells. The appropriate intermediate variables are selected automatically.
  • AceGen is appropriate for large problems where also intermediate expressions can be subjected to the uncontrolled swell.

Enhanced automatic differentiation

  • AceGen includes the forward and backward mode of automatic differentiation technique with several unique enhancements with respect to the standard automatic differentiation (AD) technique.
  • AD procedure can be initiated at any time and at any point of derivation of the formulae and as many times as required.
  • The standard implementation of automatic differentiation as code-to-code translation is replaced by the method that consistently extends the current code rather than produces a new one.
  • For the reason of efficiency, the results of all previous uses of AD are accounted for when AD is used several times inside the same subroutine.
  • AceGen offers differentiation with respect to indexed variables.

Multi - language and multi - environment code generation

  • AceGen offers multi-language code generation (Fortran/Fortran90, C, Mathematica language, Matlab language) and automatic interface to general numerical environments (MathLink connection to Mathematica, Matlab) and specialized finite element environments (AceFEM, FEAP, ELFEN, ABAQUS, )
  • Multi-language and multi-environment capability enables that once the problem is formulated in AceGen it can be directly exported to various commercial numerical environments. Practice shows that at the research stage of the derivation of a new numerical software, different languages and different platforms are the best means for the assessment of specific performances and, of course, failures of the numerical model. Using the classical approach, re-coding of the element in different languages would be extremely time consuming and is never done. With the AceGen concepts re-coding comes practically for free, since the code is automatically generated for several languages and for several platforms from the same basic symbolic description.

Code efficiency and portability

  • One of the advantages of the AceGen approach is also that the symbolic description of the numerical procedure is complete in a sense that almost no external pre-arranged subroutines are called from the generated code. No other data are accessed apart form those provided through the list of parameters of the user subroutine. Code, generated on these principles, is a bit longer than it would be if the reusable parts of the code were used. However, there are advantages of this approach in numericall efficiency, portability of the generated code to different operational systems and to different numerical environments and easy parallelization.
  • In many industrial sectors numerical simulations have become part of everyday practice. The development of new numerical models has therefore become an inseparable part of specific industrial projects and is no longer a long-term research task as it was the case previously. The use of AceGen offers on-demand generation of numerical procedures.

 

References or list of publications related to the product

  • Korelc J., (2002), Multi-language and Multi-environment Generation of Nonlinear Finite Element Codes, Engineering with Computers, 2002, vol. 18, n. 4,str. 312-327
  • Korelc, J. (1997), Automatic generation of finite-element code by simultaneous optimization of expressions, Theoretical Computer Science, 187, 231-248.
  • Korelc J. (1996), Symbolic Approach in Computational Mechanics and its Application to the Enhanced Strain Method, Doctoral Dissertation, Institut of Mechanics, TH Darmstadt, Germany.