Work

A Generic Finite Element Solver By Meta-Expressions

Public

Finite Element Method (FEM) is a common simulation method in Computer Aided Engineering (CAE) or studying natural phenomenon by numerically solving Partial Differential Equations (PDEs). Programmable solvers for generic physics and geometry are thus highly desirable. However, the classical solvers are mostly complex systems in terms of both their mathematical complexity and lines of code, resulting in considerable entry cost for both new and experienced developers. Plus, a large portion of them do not support GPU-accelerated simulation. This work makes two observations: 1) many finite element processes are actually about assembling similar mathematical structures, namely bilinear terms, in a repetitive manner, for which symbolic techniques such as rewriting are highly suitable for automation, and 2) a large portion of the actual computations take place at each integration point locally in a vectorized manner, for which GPU kernels can be conveniently generated. To exploit both ideas, we propose a skeleton generic FEM solver, named MetaFEM, in total about 6,000 lines of Julia code, which translates generic input PDE weak forms into corresponding GPU-accelerated simulations with a grammar similar to FEniCS or FreeFEM. Two novel approaches differentiate MetaFEM from the common solvers: (1) the FEM kernel is based on an original theory/algorithm which explicitly processes meta-expressions, as the name suggests, and (2) the symbolic engine is a rule-based Computer Algebra System (CAS), i.e., the equations are rewritten/derived according to a set of rewriting rules instead of going through completely fixed routines, supporting easy customization by developers.

Creator
DOI
Subject
Language
Alternate Identifier
Keyword
Date created
Resource type
Rights statement

Relationships

Items