iFEM: an Integrated Finite Element Methods Package in MATLAB
Introduction to iFEM
iFEM is a MATLAB software package containing robust, efficient, and easy-following codes for the main building blocks of adaptive finite element methods and multigrid methods on unstructured simplicial grids in both two and three dimensions. Besides the simplicity and readability, sparse matrixlization, an innovative programming style for MATLAB, is introduced to improve the efficiency.
Installation
You can download the repository at https://github.com/lyc102/ifem, or alternatively you can get iFEM by using the following commands:
git clone https://github.com/lyc102/ifem.git
Then use MATLAB to run the setpath.m
script in the root folder to add all the sub-folders to your MATLAB path.
Help, Guides, and Contributing
This documentation website will be constantly updated. If you have any questions, please feel free to contact us. If you like to suggest an additional equation to be implemented in iFEM, please go to the GitHub repo submit an issue. If you like to contribute to the development of iFEM, please see our Community hub page.
Use MATLAB help/doc
help funexample
displays a description of and syntax for the functionfunexample
. For example,help mg
will show basic usage formg
function in the plain text.ifem funexampledoc
show detailed description. For example,ifem mgdoc
will explain themg
function step by step inhtml
format. But not every function has a html documentation. Contribution to a documentation page is also welcome.
License and References
iFEM can be freely distributed under GPL 3.0. If you feel iFEM is helpful for your research, please acknowledge your use by citing:
L. Chen. iFEM: an integrated finite element method package in MATLAB. Technical Report, University of California at Irvine, 2009.
@techreport{Chen:2008ifem,
author = {Long Chen},
journal = {Technical Report, University of California at Irvine},
title = {$i$FEM: an integrated finite element methods package in {MATLAB}},
url = {https://github.com/lyc102/ifem},
year = {2009}}
Acknowledgement
The author would like to thank Professor Michael Holst in University of California at San Diego and Professor Ludmil Zikatanov in Pennsylvania State University for many insightful discussion, and also Professor Chensong Zhang in Chinese Academy of Sciences for the effort in the development of AFEM@matlab, an early version of iFEM.
The author thanks students or postdocs: Shuhao Cao, Huayi Wei, Ming Wang, Lin Zhong, and Jie Zhou for their contribution to iFEM in one way or another. Detailed credits can be found in the M-lint of several .m
files.
The documentation website https://lyc102.github.io/ifem/ is set up by Shuhao Cao and his effort is greatly appreciated.
The author is also grateful to the NSF for the partial support over the years.
Long Chen
Professor
Department of Mathematics
University of California at Irvine http://math.uci.edu/~chenlong/