Тип | Computer-aided engineering (CAE), мультифізика, finite element analysis (FEA), simulation software |
---|---|
Розробники | Precise Simulation |
Стабільний випуск | 1.14 (19 квітня 2021) |
Операційна система | Unix/Linux/Windows/Mac |
Мова програмування | MATLAB |
Вебсайт | www.featool.com[1] |
FEATool Multiphysics (Finite Element Analysis Toolbox for Multiphysics) - це простий у використанні інструментарій моделювання фізики за допомогою методу скінченних елементів[2]в рівняннях часткових похідних для MATLAB[3]. FEATool Multiphysics надає можливість повністю моделювати задачі теплобміну, динаміки рідини, хімічних реакцій, структурної механіки та електромагнетизму в 1D, 2D (осесимметрія) або 3D, все це в зручному графічному інтерфейсі користувача(GUI)[4]. FEATool був спеціально розробленим для того, щоб використовуватись без необхідності консультаційної документації, тому знайшов використання в академічних дослідженнях, навчанні та моделювання промислової інженерії[5][6].
FEATool Multiphysics - це повністю інтегроване середовище моделювання фізики та РЧП, включаючи попередню обробку, моделей CAD та геометрії, автоматичне створення сітки, знаходження розв'язку та обробка результатів[7]. Операції з графічним інтерфейсом також записуються як еквівалентні функції MATLAB, тому, крім бінарних форматів, моделі також можуть бути збережені та експортовані як скриптові файли m-script, сумісні з MATLAB та Octave[8]. Короткий сценарій MATLAB нижче демонструє, як можна обчислити повний потік навколо циліндра для задачі динаміки обчислювальної рідини(CFD) за допомогою функцій m-script FEATool[9][10][11]. Зокрема, звичайні рівняння з частинними похідними(РЧП) чи математичні вирази можна просто ввести і працювати з ними як із символьними виразами, без необхідності додаткової компіляції чи написання власних функцій[12].
% Генерація сітки та геометрії.
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 );
% Постановка задачі
% (Нестиснуте рівняння Нав'є Стокса в режимі мультифізики).
fea = addphys( fea, @navierstokes );
% Вказуємо в'язкість рідини (Густина має значення за замовчуванням 1).
fea.phys.ns.eqn.coef{2,end} = { 0.001 };
% Граничні умови
% (не вказані межі за замовчуванням встановлюються як нековзкі стіни і нульовою швидкістю).
% Притік (гранична умова 2 типу) на границі 4.
fea.phys.ns.bdr.sel(4) = 2;
% Відтік (гранична умова 3 типу, нульовий тиск) на границі 2.
fea.phys.ns.bdr.sel(2) = 3;
% Параболічний притік вираз для швидкісті по x.
fea.phys.ns.bdr.coef{2,end}{1,4} = '4*0.3*y*(0.41-y)/0.41^2';
% Перевірити,зчитати, розв'язати
fea = parsephys( fea );
fea = parseprob( fea );
fea.sol.u = solvestat( fea );
% Альтернативний розв'язок за допомгою OpenFOAM
% fea.sol.u = openfoam( fea );
% Обробка результатів та візуалізація.
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
FEATool Multiphysics також має вбудовану можливість інтегрувати коди інших систем моделювання, таким чином можна підключити зовнішні сіточні генератори DistMesh[13], Gmsh[14] і PSLG(трикутниками)[15], а також спеціальні розв'язувачі CFD, такі як OpenFOAM, і FEM solver FEniCS, що дозволяє використовувати високопродуктивні паралельні обчислення та мультифізичні симуляції, які слід налаштувати та виконувати безпосередньо в MATLAB та Octave[16].