I've discovered that the piecewise coefficients method I'm using is wrong. To get correct results use constant coefficients. This will be corrected in the next version. This will make the release for the next version a bit more delayed than expected. I'm also writing a paper on how FEM works that will be included in the toolbox (as a tutorial).
Version 3.0 will contain:
* 3D FEM
* improved function documentations
* introduction to applied linear Galerkin (document)
* correction of the piecewise constant coefficients
* correction on how to enter Robin condition in the 1D case
* improved syntax
This is a toolbox for computing ODEs or PDEs in BVPs using FEM in 1D, 2D (and 3D, yet to come).
this is the main routine for solving ODE BVPs using any combination of Dirichlet, Neumann or Robin conditions.
called by FEM1 and is the core of the program. It generates the matrices used for solving the linear equation system for the ODE. Uses alytical results of the integration of basis functions (for sake of efficiency).
with this routine you can refine the mesh over certain critical grid points. The the gridpoints will become nonuniformly linearly spaced.
this is a test for the 1D case of FEM. Look through this example carefully in order to fully understand how FEM1 works.
plot mesh/triangulation in 2D and put a number in each corresponding element (triangle).
generates quadratically spaced vectors. That is, the spaces are linearly decreasing/increasing.
this is the main routine for solving PDE BVPs using any combination of Dirichlet, Neumann or Robin conditions.
called by FEM2 and is the core of the program. It generates the matrices used for solving the linear equation system for the PDE.
test for the 2D case of FEM. Test this for better learning how to use FEM2 and other utilities.
Both FEM1 and FEM2 uses the sparse class in order to become more efficient (since the matrices generated are in general tridiagonal).
These routines may be useful for solving electrostatic problems with strange geometries and with spatially changing dielectric constants (or similar).
Of course the elliptical problem is universal and can be used for a lot of other applications such as the classical heat equation, etc...
Unfortunately, the FEM solvers does not support parabolic nor hyperbolic problems "yet".
the FEM1 and FEM2 routines should be fairly user friendly, and not much knowledge about finite elements ought to be required to operate them.
Remark: in the FEM1 routine you have to enter the neumann/(robin)-condition as
and I will correct this minor inconsistency for future versions.
More toolboxes and assorted m-files can be found at:
Rasmus Anthin (2023). Finite Element Toolbox 2.1 (https://www.mathworks.com/matlabcentral/fileexchange/2808-finite-element-toolbox-2-1), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
- Mathematics and Optimization > Partial Differential Equation Toolbox > Geometry and Mesh >
- Mathematics and Optimization > Partial Differential Equation Toolbox > General PDEs > Boundary Conditions >
- Mathematics and Optimization > Partial Differential Equation Toolbox > General PDEs > Visualization >
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!