FEATool Multiphysics Frequently Asked Questions FAQ

What is FEATool?

FEATool is short for Finite Element Analysis Toolbox and is a fully integrated Matlab and Octave computer simulation software suite for modeling partial differential equations, physics based applications, and solving engineering problems.

What kind of problems can FEATool solve?

FEATool solves systems of partial differential equations (PDEs) and can model many physical phenomena found in continuum mechanics, for example fluid flow, heat transfer, structural mechanics, and chemical engineering problems.

What are the benefits of using FEATool?

FEATool is by design very easy to use and a fully integrated simulation package including geometry modeling, preprocessing and automatic grid generation, solvers, and post processing. This makes it possible to very quickly set up and test ideas, all in the same program so that the time to (start) solution is very short. Moreover, since FEATool also integrates seamlessly with Matlab and Octave one can also leverage the m-scripting language and functions together with FEATool.

Can FEATool simulate coupled multiphysics problems?

Yes, FEATool supports any number of coupled equations and physics modes.

What algorithm or method does FEATool use to solve problems?

FEATool uses the finite element method (FEM) to discretize and solve the underlying partial differential equations (PDEs). Moreover, time dependent problems are discretized and solved with the backward Euler, Crank-Nicolson, and Fractional-Step-Theta time stepping schemes.

Does FEATool support parallel solvers?

Matlab and Octave does not per default include parallel sparse linear solvers. However, one can export FEATool models to FEniCS project Python scripts with support for parallel solvers. Alternatively, it is possible to run Matlab and Octave instances in parallel batches.

What is the design philosophy behind FEATool?

FEATool is specifically designed to be very easy to use and general so that any kind of equation or problem can be studied. Moreover, FEATool seamlessly interfaces with Matlab and Octave, and is extensible so as to interface with other software and simulation packages.

What programming language is FEATool written in?

FEATool is completely written in Octave/Matlab m-code script language, and is also extensible so users can call their own preprocessing, solvers, postprocessing routines.

What limitations does FEATool have?

Since m-code is not precompiled but JIT interpreted by Octave or Matlab it will in general not be as fast or memory efficient as an equivalent code written in C or Fortran. However, library calls, for example calls to linear solvers such as UMFPACK, are just as efficient as other software using these same libraries. Moreover, core FEM library functions of FEATool have been vectorized and optimized to run as fast as possible.

Is FEATool free?

The FEATool Lite distribution is free for personal use. A paid license is required for commercial, research, teaching, and classroom use.

What is required to run FEATool?

FEATool requires either Matlab or Octave to run. Matlab can be licensed from the Mathworks and Octave can be freely downloaded from the Octave home page.

What operating systems does FEATool support?

FEATool can run on any computer system that supports Octave or Matlab, such as Windows, Linux, Unix, and Mac (Note that currently the Mac Octave GUI does not run QT functions and will not work with FEATool, however, command line usage should still work).

How do I install FEATool?

Download and unzip the FEATool archive on your computer. Then run the install script in Octave or Matlab (Windows also supports an install.bat script that can be run directly from Explorer). Also see the installation instructions in the Quickstart guide.

How do I get started with FEATool?

Start by working through one of the tutorial examples found in the FEATool Quickstart Guide.

Can I use the graphical user interface (GUI) in Octave?

Yes, GUI under Octave is supported with the Qt toolkit which is available from version 4.0. (Note that currently the Mac Octave GUI does not run QT functions and will not work with FEATool, however, command line usage should still work)

What FEM shape/basis functions are supported?

FEATool supports standard 1st through 5th order conforming Lagrange (P1-P5/Q1-Q5) functions, linear non-conforming Crouziex-Raviart and Rannacher-Turek (P-1/Q1~), quadratic C1 Hermite, and piecewise constant discontinuous (P0) FEM basis functions.

Except for the Crouziex-Raviart and Rannacher-Turek elements which only are available in 2D and 3D, and the Hermite functions in 1D and 2D, the shape functions are defined on 1D line, 2D triangle and quadrilateral, and 3D tetrahedral and hexahedral grid cell shapes.

Custom FEM Shape Functions can also be implemented, see for example this tutorial.

Can FEATool solve 3D problems?

Yes, FEATool supports 1D, 2D, and problems in full 3D. Axisymmetric problems can also be implemented through the custom equation feature.

What kind of physics can be simulated?

There are currently seven pre-defined physics application modes available

- Poisson equation (classic PDE)
- Conduction Media DC (electric potential)
- Convection and Diffusion (mass and chemical species transport)
- Heat transfer (heat conduction and convection)
- Navier-Stokes equations (incompressible laminar fluid flow)
- Plane strain (structural mechanics modeling)
- Plane stress (structural mechanics modeling)
- Linear elasticity (structural mechanics modeling)

The equations for all of these physics modes can also easily be edited and changed by the user. Moreover, there is also a custom equation physics mode that allows input of general equations.

How do I couple physics modes (implement a multiphysics model)?

Add additional equations with the + tab in the Equation Settings dialog box. Then you can simply use the dependent variable names in the equation and boundary coefficients, as well as complex postprocessing expressions. A valid expression can for example be something like 2*u + ux + sin(x) where u is the name of a dependent solution variable in any of the physics modes.

How do I enter my own equations?

Press the eqn edit button in the Equation Settings dialog box to access and edit predefined equations. Alternatively, you can use the custom equation physics mode. Moreover, it is also possible to directly access and edit the finite element analysis equation specification struct fields, or even use the fem assembly functionality directly, see for example the model script files in the examples directory.

How do I import and export grids/data?

You can import and export grids and data from various formats using the corresponding option from the Grid and Postprocessing Menus.

How do I export a computed solution?

First export the problem struct from the GUI to the main workspace by choosing File > Export > FEA problem struct to MATLAB Workspace. Now the solution can be accessed in the fea.sol.u field and can be saved and exported to a file with the Matlab save command.

How do I access the finite element problem data?

The finite element problem is defined in a struct variable called fea, this can be accessed in the command terminal of the FEATool GUI or exported to the Octave and Matlab command line with the File > Export > FEA Problem Struct to Main Workspace menu option.

Can I access finite element matrices and/or bi-linear forms?

For a predefined fea problem struct (defined in the fea.eqn.m/a/f fields) the finite element mass matrix, system matrix, and right hand side load vector can be assembled with the assembleprob function

[M,A,f] = assembleprob( fea, 'f_m', true, 'f_a', true', 'f_f', true, 'f_sparse', true );

Alternatively, it is also possible to manually assemble the individual bi-linear forms and matrices/vectors by specifying the weak equation forms and coefficients and using the assemblea and assemblef functions as described in the Poisson command line tutorial.

Is there more documentation/tutorials available?

The licensed version of FEATool comes with a full documentation suite including Quickstart, Users, Modeling and Tutorial guides. Also keep and eye out on the FEATool Blog which frequently features tutorials, tips, and examples, and subscribe to the FEATool Newsletter which features information about new releases and important updates.

I have used FEATool in my research/paper, how should I attribute FEATool?

Please add a reference to the FEATool User’s Guide and homepage, for example:

[1] FEATool Multiphysics v1.6, User’s Guide, Precise Simulation Ltd., Hong Kong, 2017, https://www.featool.com

I think I have found a bug in FEATool, what should I do?

Please send a bug report with step by step instructions how to reproduce the error to info@featool.com.