FEATool Multiphysics ("Finite Element Analysis Toolbox for Multiphysics") is a physics, finite element analysis (FEA), and partial differential equation (PDE) simulation toolbox.[2] FEATool Multiphysics features the ability to model fully coupled heat transfer, fluid dynamics, chemical engineering, structural mechanics, fluid-structure interaction (FSI), electromagnetics, as well as user-defined and custom PDE problems in 1D, 2D (axisymmetry), or 3D, all within a graphical user interface (GUI) or optionally as script files.[3] FEATool has been employed and used in academic research,[4][5] teaching,[6][7] and industrial engineering simulation contexts.[8]

FEATool Multiphysics
Developer(s)Precise Simulation
Stable release
1.17 / 30 September 2024 (2024-09-30)
Repositorygithub.com/precise-simulation/featool-multiphysics
Written inMATLAB, C, Fortran
Operating systemWindows, Linux, Mac OSX
TypeComputer-aided engineering (CAE), multiphysics, finite element analysis (FEA), simulation software
Websitewww.featool.com[1]

Distinguishing features

edit

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.[9]

1. Geometry Mode 2. Grid Mode 3. Multiphysics Mode
 
Geometry generation and CAD import
 
Automatic mesh and grid generation
 
Subdomain, equation, and coefficient specification
4. Boundary Mode 5. Solve Mode 6. Post Mode
 
Boundary condition specification
 
Solution of PDE systems
 
Postprocessing and visualization of results

OpenFOAM and SU2 CFD & multi-solver interfaces

edit

FEATool has introduced a multi-simulation/solver feature whereby integrated interfaces (UI) to popular open-source solvers are available. This enables several solvers to be used from a single unified GUI and CLI without requiring detailed knowledge of the syntax or peculiarities of each solver.

The CFD solver interfaces allows fluid dynamics problems to be solved with the finite volume CFD solvers OpenFOAM[10] and SU2. Using the SU2 and OpenFOAM GUI[11] interfaces automatically converts fluid dynamics models to compatible corresponding mesh, boundary, and control dictionary files, runs simulations, and afterwards imports and interpolates the resulting solutions back into the toolbox. 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

edit

Similar to the OpenFOAM and SU2 solver interfaces, 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 the FEniCS solver is called, and the resulting solution re-imported.

Fully scriptable CLI interface

edit

GUI operation is recorded as equivalent function calls, and therefore in addition to binary formats, FEATool simulation models can also be saved and exported as fully scriptable and editable MATLAB 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 or SU2
% fea.sol.u = openfoam( fea );
% fea.sol.u = su2( 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

edit

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 mesh generation algorithm,[20] FEATool will convert and export appropriate Gridgen2D, 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

edit
  • Stand-alone operation (without MATLAB) or can be used as a MATLAB toolbox.
  • Fully cross platform MATLAB interoperability including other toolboxes.
  • Extensive FEM basis function library (linear and high order conforming P1-P5, non-conforming, bubble, and vector FEM discretizations).
  • Support for structured and un-structured line interval, triangles, quadrilaterals, tetrahedral, and hexahedral mesh elements.
  • 28 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, SU2, Dolfin/FEniCS XML, GiD,[21] Gmsh, GMV,[22] Triangle (PSLG), and plain ASCII grid formats.[23]
  • Online postprocssing and image export with ParaView Glance, Plotly, and social sharing of results.

See also

edit

References

edit
  1. ^ "FEATool Multiphysics homepage".
  2. ^ "FEM Multiphysics Simulation for MATLAB!? (engineer.com)".
  3. ^ "Engineering - FEM Multiphysics Simulation for MATLAB (engineering.com)".
  4. ^ "Modeling the Effects of Increased Glucose Concentration on Intraocular Pressure CSURE 2014 Summer Program" (PDF).
  5. ^ "Multiple Scale Modeling for Predictive Material Deformation Analysis" (PDF).
  6. ^ "the Department of Civil Engineering at the University of Memphis CIVIL 7117 course notes".
  7. ^ "Department of Mathematics at Lamar University course notes".
  8. ^ "Topology Optimization Modeling with MATLAB and FEATool Multiphysics".
  9. ^ "FEATool Multiphysics online documentation suite".
  10. ^ OpenCFD. "OpenFOAM® - Official home of The Open Source Computational Fluid Dynamics (CFD) Toolbox". www.openfoam.com. Archived from the original on 22 September 2016.
  11. ^ "Easy to Use OpenFOAM GUI and CFD Solver Integration with FEATool Multiphysics".
  12. ^ "The FEniCS Project page". The FEniCS Project. Archived from the original on 5 March 2023. Retrieved 28 July 2016.
  13. ^ "Digital Engineering Editor's Pick: FEATool Multiphysics 1.4 (digitaleng.news)". Archived from the original on 2018-07-24. Retrieved 2018-07-23.
  14. ^ De Vahl Davis, G. (1996). "Benchmark computations of laminar flow around a cylinder". Flow Simulation with High-Performance Computers II, Notes on Numerical Fluid Dynamics. 52 (3): 547–566. doi:10.1002/fld.1650030305.
  15. ^ On higher order methods for the stationary incompressible Navier-Stokes equations (PhD). University of Heidelberg. 1998. CiteSeerX 10.1.1.38.533.
  16. ^ John, Volker; Matthies, Gunar (2001). "Higher-order finite element discretizations in a benchmark problem for incompressible flows". International Journal for Numerical Methods in Fluids. 37 (8): 885–903. Bibcode:2001IJNMF..37..885J. CiteSeerX 10.1.1.42.8087. doi:10.1002/fld.195. S2CID 15806686.
  17. ^ "Black-Scholes custom equation and PDE modeling tutorial".
  18. ^ "Comparison of open source mesh generators (GiD, Gmsh, and Triangle)". 6 March 2018.
  19. ^ Shewchuk, Jonathan Richard (1996). "Triangle: Engineering a 2D quality mesh generator and Delaunay triangulator". Applied Computational Geometry Towards Geometric Engineering. Lecture Notes in Computer Science. Vol. 1148. pp. 203–222. CiteSeerX 10.1.1.62.1901. doi:10.1007/BFb0014497. ISBN 978-3-540-61785-3.
  20. ^ Persson, Per-Olof; Strang, Gilbert (2004). "A Simple Mesh Generator in MATLAB". SIAM Review. 46 (2): 329–345. Bibcode:2004SIAMR..46..329P. CiteSeerX 10.1.1.84.7905. doi:10.1137/S0036144503429121.
  21. ^ "GiD - The personal pre and post processor homepage".
  22. ^ "GMV - The General Mesh Viewer homepage". Archived from the original on 2013-09-26. Retrieved 2018-07-23.
  23. ^ "FEATool Multiphysics technical specifications".
edit