|
Раздел "Femlab"
Описание функций системы FEMLAB
|
|
Вычисление выражений в произвольных точках |
Синтаксис:
[v1,v2,...,vn,pe] = postinterp(fem,e1,e2,...,en,xx,ключевые_параметры)
[is,pe] = postinterp(fem,xx,ключевые_параметры)
[v1,v2,...,vn] = postinterp(fem,e1,e2,...,en,is,ключевые_параметры)
Описание:
Оператор
[v1,v2,...,vn,pe] = postinterp(fem,e1,e2,...,en,xx,ключевые_параметры)
возвращает значения v1,v2,...,vn выражений e1,e2,...,en в точках xx.
Оператор
[is,pe] = postinterp(fem,xx,ключевые_параметры)
вычисляет структурную переменную интерполяции is, которая содержит информацию о том, где (в каких зонах) расположены точки xx.
Оператор
[v1,v2,...,vn] = postinterp(fem,e1,e2,...,en,is,ключевые_параметры)
возвращает значения v1,v2,...,vn выражений e1,e2,...,en в точках, описанных в переменной интерполяции is. Столбцам матрицы xx соответствуют точки расчётной области, в которых нужно вычислять выражения. Первая строка - координаты x. Вторая строка - координаты y. Третья - координаты z. Число строк должно равняться числу пространственных измерений расчётной области. Если число строк меньше числа пространственных измерений, то строки соответствуют параметрам face-поверхности или ребра. В этом случае ключевой параметр Dom должен быть равен номеру интересующей подобласти (face или ребра).
Выражения ei - строки символов или массивы строковых ячеек. В последнем случае если в структуре fem поле fem.equ/bnd/edg/pnt.ind существует, то n-я ячейка в массиве ei - вычисляемое выражение в подобласти (зоне, face или ребре), номер которой находится в n-й позиции списка ind. Если поле ind не существует, то n-я ячейка в массиве ei - вычисляемое выражение в подобласти № n. Строки массива ei - выражения MATLAB, содержащие абстрактные переменные системы FEMLAB.
Матрицы v1, v2..., vn имеют размер (k,size(xx,2)), где k - число решений краевой задачи, для которых выполнено вычисление выражений. Значение выражения ei для номера решения j в точке вычисления xx(:,m) - vi(j,m). Каждое из этих k решений соответствует своему моменту времени (если решена нестационарная задача) или своему значению параметра модели (если использован параметрический решатель).
Массив pe содержит индексы, m для точек вычисления xx(:,m) которые находятся вне конечноэлементной сетки или, если область определена ключевым параметром Dom, находятся вне этой области.
Ключевые параметры записываются парами 'PropertyName', PropertyValue, где PropertyName - имя ключевого параметра, PropertyValue - его значение. Перечень ключевых параметров сведён в таблицу.
|
Имя ключевого параметра
|
Возможные значения
|
Значение по умолчанию
|
Краткое описание
|
|
Const
|
Массив ячеек
|
Пустой массив
|
Определение констант для вычисляемых выражений
|
|
Cont
|
off | on | internal
|
off
|
Сглаживание, см. posteval
|
|
Context
|
local | main
|
local
|
|
|
Contorder
|
положительное целое
|
Порядок функций формы
|
Порядок сглаживающих полиномов
|
|
Dom
|
положительное целое
|
нет
|
Номер области для вычисления
|
|
Ext
|
число в пределах от 0 до 1
|
0
|
"Длина" экстраполяции
|
|
Geomnum
|
целое
|
1
|
Номер геометрии в мультигеометрической модели
|
|
Phase
|
действительное число
|
0
|
Угол опережения по фазе, радианы
|
|
Solnum
|
целое
|
1 или size(fem.sol.u,2)
|
Номер решения
|
|
T
|
действительное число
|
fem.sol.tlist(end)
|
Значение времени для вычисления выражений
|
|
U
|
Массив узлового распределения рассчитанного поля
|
fem.sol.u или массив нулей, если это поле не существует
|
Узловое распределение поля, для которого нужно вычислить выражения в заданных точках расчётной области
|
Ключевой параметр Context определяет, в какой рабочей области MATLAB нужно вычислять выражения: 'main' - в базовой рабочей области; 'local' - в локальной (временной) рабочей области.
Задавая ключевой параметр Ext, можно экстраполировать выражения на точки, находящиеся за пределами расчётной области (а значит, и конечноэлементной сетки). Экстраполяция осуществляется от ближайшего элемента сетки, если расстояние от точки вычисления до этого элемента не превышает Ext*(диаметр элемента) (это грубая оценка предела расстояния). В противном случае соответствующему члену матрицы vi присваивается значение NaN.
Если матрица узлового распределения решения U имеет несколько столбцов, то можно выбирать номера решений для вычисления выражений. Ключевой параметр Solnum - массив номеров решений (номеров столбцов матрицы U) для выполнения вычислений. Если fem.sol.u и fem.sol.tlist существуют, то значение по умолчанию параметра Solnum - size(fem.sol.u,2). Иначе по умолчанию Solnum = 1.
Ключевой параметр T определяет время для вычисления выражения. Если этот параметр не задан, и если fem.sol.u и fem.sol.tlist существуют, то по умолчанию T=fem.sol.tlist(Solnum). Точно так же, если fem.sol.u и fem.sol.lambda существуют, то можно использовать переменную lambda в выражениях. lambda - собственное значение краевой задачи.
Ключевой параметр Phase задаёт фазовый угол опережения по отношению к заданным выражениям. Это означает, что в каждой точке вычисленное выражение умножается на exp(1i*Phase), т.е. к аргументу комплекснозначного поля прибавляется значение Phase.
Ключевой параметр Cont определяет, используется ли сглаживание вычисляемых функций решения. Если Cont=off, то никакое сглаживание не выполняется. Если Cont=on, то вычисляемые функции делаются непрерывными. Для этого вычисляются выражения в точках генерируемых Лагранжевых элементов порядка Contorder, учитываются с усреднением вклады от смежных элементов сетки, затем интерполируются полиномами степени Contorder. Если Cont=internal, то сглаживание выполняется только в пределах областей, или если поле fem.equ/bnd/edg/pnt.ind существует, то в пределах соответствующих групп областей.
Структурная переменная интерполяции вычисляется оператором MATLAB
[is,pe]=postinterp(fem,xx,ключевые_параметры)
Поля этой структуры сведём в таблицу.
| Поле |
Описание |
| geomnum |
Номер геометрии |
| imdomgrp |
Индекс группы областей сетки. Является скаляром или массивом той же самой длины как me. |
| dom |
Номер области. Является скаляром или массивом той же самой длины как me. |
| me |
Индексы элементов сетки в пределах группы областей. Массив. |
| ime |
Индексы в me, dom и imdomgrp. Массив длины size(xx,2). |
| xi |
Координаты элементов. Матрица того же самого размера, как xx. |
| contorder |
Порядок полиномов, используемый при сглаживании. |
| map |
Уникальные номера Лагранжевых точек в элементах сетки. Используются при выполнении сглаживания. |
Для точек вне сети (вне расчётной области), которые не экстраполируются, в поле xi записываются значения NaN, в поле ime записываются для таких точек единицы. Если ключевой параметр Dom указан, то поля imdomgrp и dom - скалярные целые числа. Только ключевые параметры Contorder, Dom, Ext и Geomnum используются в этой форме вызова функции postinterp.
Оператор
[v1,v2,...,vn] = postinterp(fem,e1,e2,...,en,is,ключевые_параметры)
выполняется быстрее, чем
[v1,v2,...,vn,pe] = postinterp(fem,e1,e2,...,en,xx,ключевые_параметры)
Форма вызова функции postinterp, в которой один из входных параметров is (но не xx) игнорирует ключевые параметры Contorder, Dom, Ext и Geomnum.
Совместимость с предыдущими версиями.
В FEMLAB 2.3 ключевой параметр Variables переименован в Const.
Синтаксис и возможности функции postinterp изменились, начиная с версии FEMLAB 2.1.
См. также posteval, postint.
|