4.6 Article

FELICITY: A MATLAB/C plus plus TOOLBOX FOR DEVELOPING FINITE ELEMENT METHODS AND SIMULATION MODELING

Journal

SIAM JOURNAL ON SCIENTIFIC COMPUTING
Volume 40, Issue 2, Pages C234-C257

Publisher

SIAM PUBLICATIONS
DOI: 10.1137/17M1128745

Keywords

finite elements; coupled systems; geometric flows; code generation; MATLAB; open source software

Funding

  1. NSF [DMS-1418994, DMS-1555222]
  2. Direct For Mathematical & Physical Scien
  3. Division Of Mathematical Sciences [1555222] Funding Source: National Science Foundation
  4. Division Of Mathematical Sciences
  5. Direct For Mathematical & Physical Scien [1418994] Funding Source: National Science Foundation

Ask authors/readers for more resources

This paper describes a MATLAB/C++ finite element toolbox, called FELICITY, for simulating various types of systems of partial differential equations (e.g., coupled elliptic/parabolic problems) using the finite element method. It uses MATLAB in an object-oriented way for high-level manipulation of data structures in finite element codes, while utilizing a domain-specific language (DSL) and code generation to automate low-level tasks such as matrix assembly (via the MATLAB mex interface). We describe the fundamental functionality of the toolbox's MATLAB interface, such as using higher order Lagrange (simplicial) meshes, defining finite element spaces, allocating degrees-of-freedom, assembling discrete bilinear and linear forms, and interpolation over meshes. Moreover, we describe in-depth how automatic code generation is implemented in FELICITY. Two example problems and their implementation are provided to demonstrate the ability of FELICITY to solve coupled problems with interacting subdomains of different co-dimension. Future improvements are also discussed.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.6
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available