FEATool Multiphysics™ - Physics Simulation Made Easy
FEATool Multiphysics™ (short for Finite Element Analysis Toolbox), is a MATLAB® toolbox for modeling and simulation of coupled physical phenomena, partial differential equations (PDE), continuum mechanics and engineering problems with the finite element method (FEM).
FEATool aims to provide an easy to use and comprehensive all-in-one integrated simulation package for all types of finite element and multiphysics analyses, and combine the best of ease of use, powerful functionality, and extensibility for both beginners and advanced users. Features such as an intuitive and easy to learn graphical user interface (GUI), a complete library of grid generation, and postprocessing functions, as well as command line interface (CLI) programming, and interactive and interpreted programming and scripting capabilities, makes FEATool suitable for everyone from students learning mathematical modeling, to professionals and engineers wishing to explore new ideas in a simple, fast, and convenient way.
- Easy to use Graphical User Interface (GUI)
- Fully integrated and built-in pre-processing, CAD tools, automatic mesh generation, solvers, post-processing, and visualization functionality
- Pre-defined physics modes and equations for heat and mass transfer, fluid dynamics, structural mechanics, electromagnetics, and classical PDE
- Support for custom user-defined equations and PDEs
- Built-in expression parser (enter equations and coefficients just as writing on paper without any programming)
- Easy to define fully coupled multiphysics problems
- One-click interfaces for the OpenFOAM®, FEniCS, and Firedrake external solvers
- Save and export models in binary file format or editable script files (every GUI operation is recorded to a corresponding MATLAB function call)
- Fully scriptable and programmable with the MATLAB scripting language (including support for integration and embedding in custom applications and toolboxes)
The FEATool Multiphysics simulation toolbox is developed in the m-script language which requires MATLAB to interpret and run. FEATool has been verified work with Windows, Mac, and Linux operating systems running MATLAB versions 7.9 (R2009b) and later. Furthermore, a system with 4 GB or more RAM memory is recommended.
In order to use the FEATool Multiphysics, toolbox the included files and directories must be installed on the intended computer system. It is recommended to first uninstall older versions of FEATool before updating to a newer version.
To install, first download and extract the FEATool distribution and software archive.
For MATLAB 2012b and later double click on the FEATool Multiphysics.mlappinstall file, or use the Get More Apps button in the MATLAB APPS toolbar. Once the app has been installed, a corresponding icon will be available in the toolbar to start FEATool. (Note that MATLAB may not show or give any indication of the app installation progress or completion.)
For MATLAB 2009b-2012a, use the addpath command to add the extracted featool program directory to the MATLAB search paths, so that the program files can be found by the interpreter (for example
addpath C:\featool). Then simply enter the command
featoolat the MATLAB command prompt to start the toolbox GUI and application.
Please note, that using spaces in user and installation directory paths is not recommended as it may cause issues with the external grid generation and solver interfaces. Moreover, as all functions are initially loaded into memory, FEATool may take some time to load and show the GUI on initial startup.
Tutorials and Examples
Pre-defined automated modeling tutorials and examples for various multi-physics applications can be selected and run from the File > Model Examples and Tutorials menu option. Example m-script files and simulation models are also available in the examples folder of the FEATool program directory. Moreover, more tutorials and articles are published on the FEATool Technical Articles Blog.
The full FEATool Multiphysics Documentation Suite is available online and from selecting the corresponding option under the Help menu in the FEATool GUI.
FEATool and its GUI has been specifically designed to be as easy to use as possible, and making learning multiphysics simulation by experimentation possible.
The standard modeling process is divided into six different steps or modes
- Geometry - Definition of the geometry to be modeled
- Grid - Subdivision of the geometry into smaller cells suitable for computation
- Equation - Specification of material parameters and coefficients
- Boundary - Boundary conditions specify how the model interacts with the surrounding environment (outside the geometry)
- Solve - Solution and simulation of the defined model problem
- Post - Visualization and postprocessing of simulation results
These modes can be accessed by clicking on the corresponding buttons in left hand side Mode toolbar. The different modes may have specialized and different Tools available in the corresponding toolbar. Advanced mode options may also be available in the corresponding menus.
Basic usage and how to set up and model laminar flow past a cylinder is explained in the linked video tutorial (click on the image to view the tutorial).
The FEATool installation can be tested and validated by running the simulation model and example test suites by starting FEATool with either of these commands
featool testt % Run tests for GUI tutorials featool teste % Run tests for m-script examples featool test % Run all test suites
Please note that running the test suites may take a significant amount of time.
External Solvers (Optional)
OpenFOAM® CFD Solver
The optional OpenFOAM computational fluid dynamics solver integration makes it easy to perform both laminar and turbulent high performance CFD simulations directly in MATLAB. OpenFOAM flow simulations often results in a magnitude or more speedup for instationary simulations compared to the built-in flow solvers. Additionally, with the multi-simulation solver integration in FEATool it is possible to compare and better validate simulation results obtained using both the built-in, FEniCS, Firedrake, and OpenFOAM solvers.
The OpenFOAM solver binaries are not included with the FEATool distribution and must be installed separately. The FEATool-OpenFOAM solver integration has been verified with OpenFOAM version 5. For Windows systems it is recommended to install and use the pre-compiled blueCFD-core (2017) binaries from blueCAPE. For Linux and MacOS systems the distribution from the OpenFOAM Foundation is recommended. It is necessary that the simpleFoam, pimpleFoam, rhoCentralFoam, potentialFoam, and collapseEdges binaries are installed and properly set up so they can be called from system script files (bash scripts on Linux and MacOS and bat/vbs on Windows).
FEniCS and Firedrake PDE Solvers
FEniCS and Firedrake are flexible and comprehensive finite element analysis (FEA) and partial differential equation (PDE) modeling and simulation toolkit with Python and C++ interfaces along with many integrated solvers. As both FEATool and FEniCS discretize equations employing a weak finite element formulation it is quite straightforward to translate FEATool syntax and convert it to Python scripts. The FEATool-FEniCS/Firedrake integration allows for easy conversion, exporting, solving, and importing FEATool Multiphysics models to FEniCS and Firedrake directly from the GUI, as well as the MATLAB CLI.
For Ubuntu based Linux and Windows 10 with Windows Subsystem for Linux systems, FEniCS can be installed by opening a terminal shell and running the following commands (which automatically also installs required dependencies such as the Python programming language interpreter)
sudo apt-get install software-properties-common sudo add-apt-repository ppa:fenics-packages/fenics sudo apt-get update sudo apt-get install --no-install-recommends fenics
Note that the FEATool distribution does not include a Python interpreter, FEniCS, or Firedrake itself which also must be installed separately. The FEniCS homepage provides instructions how to install FEniCS on Linux systems (note that Docker images are currently not supported by FEATool).
External Grid Generators (Optional)
FEATool Multiphysics comes with built-in support for the external grid and mesh generators Gmsh, Gridgen2D (included), and Triangle, upon selecting any of these grid generators in the Grid Settings dialog box, the corresponding binaries will automatically be downloaded and installed if an internet connection is available. Alternatively, the mesh generator binaries can downloaded and/or compiled manually and added to the FEATool program directory.
Advantages of using either Gmsh, Gridgen2D, or Triangle compared to the built-in grid generation functions is both robustness and mesh generation speed. Moreover, external grid generators also supports better and more control with a selection of different mesh generation algorithms, and specifying the grid size in different geometry regions, subdomains, as well as on boundaries, allowing for greater flexibility and better grids tuned for the specific problems and geometries.
(C) Copyright 2013-2019 by Precise Simulation Ltd. All Rights Reserved.
FEATool™ and FEATool Multiphysics™ are trademarks of Precise Simulation Limited. MATLAB® is a registered trademark of The MathWorks, Inc. OPENFOAM® is a registered trade mark of OpenCFD Limited, producer and distributor of the OpenFOAM® software. All other trademarks are the property of their respective owners. Precise Simulation Ltd and its products are not affiliated with, endorsed, sponsored, or supported by these trademark owners.
The license agreement for using FEATool Multiphysics™ is included with the distribution and can also be accessed from the Help menu in the application.
Carefully read the license terms and conditions before installing or using the programs or documentation. Installing or using the programs means you have accepted and agree to be bound by the terms and conditions of this agreement. if you do not accept them, uninstall, remove and completely delete the programs and documentation.