FEATool Multiphysics™ - MATLAB PDE and Physics Simulation Made Easy
===================================================================
![FEATool Multiphysics Screenshot](https://raw.githubusercontent.com/precisesimulation/featool-multiphysics/master/featool-multiphysics-screenshot.png)
About
-----
Welcome to FEATool™ (short for Finite Element Analysis Toolbox),
a MATLAB toolbox for modeling and simulation of physics,
[partial differential equations (PDE)](https://en.wikipedia.org/wiki/Partial_differential_equation),
and mathematical problems with the
[finite element method (FEM)](https://en.wikipedia.org/wiki/Finite_element_method).
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, FEM, 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.
System Requirements
-------------------
The FEATool Multiphysics simulation toolbox is written in the m-script
language, which requires or [MATLAB](https://www.mathworks.com) to
run. FEATool has been verified work with Windows, Mac, and Linux
systems running MATLAB versions 7.9 R2009b and later. Furthermore, a
system with 4GB or more RAM memory is recommended.
Installation
------------
In order to use the FEATool toolbox the included files and directories
must be installed on the intended computer system, and also added to
the MATLAB search paths so that they can be found by the MATLAB
interpreter. It is recommended to first uninstall old versions of
FEATool before updating to a newer version.
To install, download and extract the FEATool Multiphysics 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 give any indication of the app
installation progress or completion.)
- For MATLAB 2009b-2012a, copy the **[featool.p](https://github.com/precise-simulation/featool-multiphysics/blob/master/featool.p?raw=true)** file to a directory
accessible to MATLAB (optionally, copy the other included files such
as the binary files, and source and function files to support
Command Line CLI usage). Then enter
featool
on the MATLAB command line to start the application.
Please note that FEATool may take a few seconds to load and show the
GUI on initial startup.
Optional External Solvers and Grid Generators
---------------------------------------------
### FEniCS PDE Solver
[FEniCS](https://fenicsproject.org) is a flexible and comprehensive
finite element analysis (FEA) and partial differential equation (PDE)
modeling and simulation toolkit with [Python](https://www.python.org/)
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 FEniCS _Python_ scripts. The FEATool-FEniCS
integration allows for easy conversion, exporting, solving, and
importing FEATool Multiphysics models to FEniCS directly from the GUI,
as well as the MATLAB CLI.
For Ubuntu based Linux and _Windows 10_ with
[Windows Subsystem for Linux](https://msdn.microsoft.com/en-us/commandline/wsl/about)
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 or FEniCS itself which also must be installed separately.
The FEniCS homepage provides instructions
[how to install FEniCS on Linux systems](https://fenicsproject.org/download/)
(note that Docker images are currently not supported by FEATool).
### OpenFOAM® CFD Solver
The optional OpenFOAM CFD solver integration makes it easy to perform
both laminar and turbulent high performance CFD simulations directly
in MATLAB. OpenFOAM CFD 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, and
OpenFOAM solvers.
The OpenFOAM solver binaries are currently not included with FEATool
and must be installed separately. The OpenFOAM MATLAB 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](http://bluecfd.github.io/Core). For Linux and MacOS systems
the distribution from the
[OpenFOAM Foundation](https://openfoam.org/download) 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).
### External Grid Generation
FEATool Multiphysics comes with built-in support for the external mesh
generators [_Gmsh_](http://gmsh.info/), _Gridgen2D_, 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 manually be
downloaded and added to a 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.
Basic Use
---------
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 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
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.
A number of p
评论2