FEATool Multiphysics
![]() FEATool Multiphysics Toolbox with MATLAB GUI | |
Developer(s) | Precise Simulation |
---|---|
Stable release | 1.8
/ 17 May 2018 |
Written in | MATLAB, Octave |
Operating system | Unix/Linux/Windows/Mac/Web browser |
Type | Computer-aided engineering (CAE), multiphysics, finite element analysis (FEA), simulation software |
Website | www |
FEATool Multiphysics ("Finite Element Analysis Toolbox for Multiphysics") is a physics, finite element analysis (FEA), and PDE simulation toolbox for MATLAB,[2] GNU Octave, and the cloud with rollApp. FEATool Multiphysics features the ability to model fully coupled heat transfer, fluid dynamics, chemical engineering, structural mechanics, electromagnetics, as well as user-defined and custom PDE problems in 1D, 2D (axisymmetry), or 3D, all within a simple graphical user interface (GUI) or as convenient MATLAB m-code script files[3]. Having specifically been designed to have a low learning curve and to be able to be used without requiring reading documentation, FEATool has been employed and used in academic research,[4] teaching,[5][6] and industrial engineering simulation contexts[7].
Distinguishing features
FEATool Multiphysics is a fully integrated physics and PDE simulation environment where the modeling process is subdivided into six steps; preprocessing (CAD and geometry modeling), mesh and grid generation, physics and PDE specification, boundary condition specification, solution, and postprocessing and visualization[8].
Easy to use GUI
The FEATool graphical user interface (GUI) shown above has been specifically designed to be very easy to use and quickly get started with[9]. Specifically, because of the full integration of CAD and simulation tools users can quickly and easily switch between pre-processing, analysis, and post-processing modes to change simulation parameters, modify geometry and meshes, to solution evaluation and visualization. In this way FEATool can make up for the MATLAB and Octave performance overhead by saving users time with problem set up and analysis.[10]
OpenFOAM CFD solver interface
FEATool has introduced a multi-simulation feature whereby interfaces to popular academic and open-source solvers are developed. This enables these solvers to be used from the familiar FEATool GUI and CLI saving time and effort of learning the internals and syntax of the solvers themselves.
The CFD solver interface allows fluid dynamics problems to be solved with the finite volume CFD solver OpenFOAM[11]. Using the interface automatically converts incompressible Navier-Stokes FEATool models to compatible OpenFOAM mesh, boundary, and control dictionary files, runs OpenFOAM simulations, and afterwards imports and interpolates the resulting solutions back into FEATool. In this way more advanced, larger, and parallel CFD models, for example including turbulence, can be simulated without leaving the FEATool interface.
FEniCS multiphysics solver interface
Similar to the OpenFOAM solver interface, FEATool also features a fully integrated interface to the FEniCS general FEM and multiphysics solver[12]. Using the FEATool-FEniCS interface, as both codes feature PDE definition languages, multiphysics problems can automatically be translated and converted to FEniCS Python definition files, after which system calls to the FEniCS solver is made, and the resulting solution re-imported.
Fully scriptable CLI interface
GUI operation is recorded as equivalent MATLAB functions, and therefore in addition to binary formats, FEATool simulation models can also be saved and exported as fully scriptable and editable MATLAB and Octave compatible m-script files[13]. The short MATLAB script below illustrates how a complete flow around a cylinder computational fluid dynamics (CFD) benchmark problem can be defined and solved with the FEATool m-script functions (including geometry, grid generation, problem definition, solving, and postprocessing all in a few lines of code)[14][15][16]. Specifically, custom partial differential equations (PDE) and expressions can simply be entered and evaluated as string expressions as-is, without need for further compilation or writing custom functions[17].
% Geometry and mesh generation.
fea.sdim = { 'x' 'y' };
fea.geom.objects = { gobj_rectangle( 0, 2.2, 0, 0.41, 'R1' ), ...
gobj_circle( [0.2 0.2], 0.05, 'C1' ) };
fea = geom_apply_formula( fea, 'R1-C1' );
fea.grid = gridgen( fea, 'hmax', 0.02 );
% Problem definition (incompressible Navier-Stokes equations multiphysics mode).
fea = addphys( fea, @navierstokes );
% Prescribe fluid viscosity (density is default 1).
fea.phys.ns.eqn.coef{2,end} = { 0.001 };
% Boundary conditions (Non-specified boundaries are
% per default prescribed no-slip zero velocity walls).
% Inflow (bc type 2) at boundary 4.
fea.phys.ns.bdr.sel(4) = 2;
% Outflow (bc type 3, zero pressure) at boundary 2.
fea.phys.ns.bdr.sel(2) = 3;
% Parabolic inflow profile x-velocity expression.
fea.phys.ns.bdr.coef{2,end}{1,4} = '4*0.3*y*(0.41-y)/0.41^2';
% Check, parse, and solve problem.
fea = parsephys( fea );
fea = parseprob( fea );
fea.sol.u = solvestat( fea );
% Alternatively solve with OpenFOAM
% fea.sol.u = openfoam( fea );
% Postprocessing and visualization.
postplot( fea, 'surfexpr', 'sqrt(u^2+v^2)', ...
'arrowexpr', {'u' 'v'} )
p_cyl_front = evalexpr( 'p', [0.15; 0.2], fea );
p_cyl_back = evalexpr( 'p', [0.25; 0.2], fea );
delta_p_computed = p_cyl_front - p_cyl_back
delta_p_reference = 0.117520
External mesh generator interfaces
Similar to the external solver interfaces, FEATool features built-in support for the Gmsh[18] and Triangle[19] mesh generators. If requested instead of the built-in DistMesh[20] FEM mesh generation algorithm, FEATool will convert and export appropriate Gmsh or Triangle input data files, call the mesh generators through external system calls, and re-import the resulting grids into FEATool.
Other distinguishing features
- Fully cross platform MATLAB and Octave interoperability including other toolboxes.
- Extensive FEM basis function library (linear and high order conforming P1-P5, and non-conforming FEM discretizations).
- Support for structured and un-structured line interval, triangles, quadrilaterals, tetrahedral, and hexahedral mesh elements.
- 15 pre-defined equations and multiphysics modes in 1D, 2D Cartesian and cylindrical coordinates, as well as full 3D.
- Support for custom user defined PDE equations.
- Mesh and geometry import, export, and conversion between OpenFOAM, Dolfin/FEniCS XML, GiD,[21] Gmsh, GMV,[22] Triangle (PSLG), and plain ASCII grid formats.[23]
- Online postprocssing and image export with Plotly and social sharing of results.
CFDTool
CFDTool is a dedicated CFD Toolbox for MATLAB based on FEATool Multiphysics featuring a GUI interface simplified and adapted to Computational Fluid Dynamics simulations. The CFDTool App is freely available from the MathWorks File Exchange and Add-Ons Toolbar[24].
See also
References
- ^ "FEATool Multiphysics homepage".
- ^ "FEM Multiphysics Simulation for MATLAB!? (engineer.com)".
- ^ "Engineering - FEM Multiphysics Simulation for MATLAB (engineering.com)".
- ^ "Modeling the Effects of Increased Glucose Concentration on Intraocular Pressure CSURE 2014 Summer Program" (PDF).
- ^ "the Department of Civil Engineering at the University of Memphis CIVIL 7117 course notes".
- ^ "Department of Mathematics at Lamar University course notes".
- ^ "Topology Optimization Modeling with MATLAB and FEATool Multiphysics".
- ^ "FEATool Multiphysics online documentation suite".
- ^ "Designing Easy To Use Simulation and Technical Software".
- ^ "What is Multiphysics CAE Simulation?".[dead link]
- ^ OpenCFD. "OpenFOAM® - Official home of The Open Source Computational Fluid Dynamics (CFD) Toolbox". www.openfoam.com. Archived from the original on 22 September 2016.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help) - ^ "The FEniCS Project page". The FEniCS Project. Retrieved 28 July 2016.
- ^ "Digital Engineering Editor's Pick: FEATool Multiphysics 1.4 (digitaleng.news)".
- ^ "Benchmark computations of laminar flow around a cylinder". Flow Simulation with High-Performance Computers II, Notes on Numerical Fluid Dynamics. 52: 547–566. 1996.
- ^ On higher order methods for the stationary incompressible Navier-Stokes equations (PhD). University of Heidelberg. 1998.
- ^ "Higher-order finite element discretizations in a benchmark problem for incompressible flows". International Journal for Numerical Methods in Fluids. 37 (8): 885–903. 2001.
- ^ "Black-Scholes custom equation and PDE modeling tutorial".
- ^ "Comparison of open source mesh generators (DistMesh, Gmsh, and Triangle)".
- ^ "Triangle: Engineering a 2D quality mesh generator and Delaunay triangulator". Applied Computational Geometry Towards Geometric Engineering. 1148: 203–222. 1996.
- ^ "A Simple Mesh Generator in MATLAB". SIAM Review. 46 (2): 329–345. 2004.
- ^ "GiD - The personal pre and post processor homepage".
- ^ "GMV - The General Mesh Viewer homepage".[dead link]
- ^ "FEATool Multiphysics technical specifications".
- ^ "CFDTool - MATLAB CFD Toolbox - The MathWorks File Exchange".