exponenta event banner

assemb

(Не рекомендуемый), Собирают вклады граничного условия

assemb не рекомендуется. Использование assembleFEMatrices вместо этого.

Описание

пример

[Q,G,H,R] = assemb(model) собирает матрицы Q и H, и векторы G и RQ должен быть добавлен к системной матрице и содержит вклады от смешанных граничных условий.

пример

[Q,G,H,R] = assemb(b,p,e) собирает матрицы на основе граничных условий, заданных в b и данные о mesh в p и e.

[Q,G,H,R] = assemb(___,[],sdl), для любого из предыдущих входных параметров, ограничивает матрицы конечного элемента теми, которые включают субдомен, заданный метками субдомена в sdl. Пустой аргумент требуется в этом синтаксисе по причинам совместимости и историческому.

Примеры

свернуть все

Соберите матрицы граничного условия для эллиптического УЧП.

УЧП является уравнением Пуассона,

-u=1.

Partial Differential Equation Toolbox™ решает уравнения формы

-(cu)+au=f.

Так, представляйте уравнение Пуассона в синтаксисе тулбокса установкой c = 1, a = 0, и f = 1.

c = 1;
a = 0;
f = 1;

Создайте контейнер модели PDE. Импортируйте ForearmLink.stl файл в модель и исследует геометрию.

model = createpde;
importGeometry(model,'Block.stl'); 
h = pdegplot(model,'FaceLabels','on');
h(1).FaceAlpha = 0.5;

Figure contains an axes object. The axes object contains 3 objects of type quiver, patch, line.

Установите нуль граничные условия Дирихле на узких поверхностях (пронумеровал 1 - 4).

applyBoundaryCondition(model,'Face',1:4,'u',0);

Установите Нейманово условие с g =-1 на поверхности 6, и g = 1 на поверхности 5.

applyBoundaryCondition(model,'Face',6,'g',-1);
applyBoundaryCondition(model,'Face',5,'g',1);

Создайте mesh для модели.

generateMesh(model);

Создайте матрицы граничного условия для модели.

[Q,G,H,R] = assemb(model);

H матрица довольно разреженна. Q матрица не имеет никаких ненулевых записей.

disp(['Fraction of nonzero entries in H is ',num2str(nnz(H)/numel(H))])
Fraction of nonzero entries in H is 7.8796e-05
disp(['Number of nonzero entries in Q is ',num2str(nnz(Q))])
Number of nonzero entries in Q is 0

Соберите матрицы граничного условия для 2D L-образной области с граничными условиями Дирихле, с помощью [p, e, t] представление mesh.

Задайте геометрию и граничные условия с помощью функций, включенных в программное обеспечение.

g = @lshapeg;
b = @lshapeb;

Создайте mesh для геометрии.

[p,e,t] = initmesh(g);

Создайте граничные матрицы.

[Q,G,H,R] = assemb(b,p,e);

Только одна из получившихся матриц является ненулевой, а именно, H. H матрица довольно разреженна.

disp(['Fraction of nonzero entries in H is ',num2str(nnz(H)/numel(H))])
Fraction of nonzero entries in H is 0.0066667

Входные параметры

свернуть все

Модель PDE в виде PDEModel объект.

Пример: model = createpde

Граничные условия в виде граничной матрицы или массива данных граничных условий. Передайте массив данных граничных условий как указатель на функцию или как имя файла. Граничная матрица обычно является экспортом из приложения PDE Modeler.

Пример: b = 'circleb1', b = "circleb1", или b = @circleb1

Типы данных: double | char | string | function_handle

Поймайте в сети точки в виде 2 Np матрица точек, где Np число точек в mesh. Для описания (pET) матрицы, смотрите Данные о Mesh, когда [p, e, t] Утраивается.

Как правило, вы используете pE, и t данные, экспортированные из приложения PDE Modeler или сгенерированные initmesh или refinemesh.

Пример: [p,e,t] = initmesh(gd)

Типы данных: double

Поймайте в сети ребра в виде 7- Ne матрица ребер, где Ne количество ребер в mesh. Для описания (pET) матрицы, смотрите Данные о Mesh, когда [p, e, t] Утраивается.

Как правило, вы используете pE, и t данные, экспортированные из приложения PDE Modeler или сгенерированные initmesh или refinemesh.

Пример: [p,e,t] = initmesh(gd)

Типы данных: double

Субдомен помечает в виде вектора из положительных целых чисел. Для 2D геометрии только. Просмотрите метки субдомена в своей геометрии с помощью команды

pdegplot(g,'SubdomainLabels','on')

Пример: sdl = [1,3:5];

Типы данных: double

Выходные аргументы

свернуть все

Нейманова матрица граничного условия, возвращенная как разреженная матрица. Смотрите Эллиптические уравнения.

Как правило, вы используете Q в последующем вызове решателя такой как assempde или hyperbolic.

Нейманов вектор граничного условия, возвращенный как разреженный вектор. Смотрите Эллиптические уравнения.

Как правило, вы используете G в последующем вызове решателя такой как assempde или hyperbolic.

Матрица Дирихле, возвращенная как разреженная матрица. См. Алгоритмы.

Как правило, вы используете H в последующем вызове assempde.

Вектор Дирихле, возвращенный как разреженный вектор. См. Алгоритмы.

Как правило, вы используете R в последующем вызове assempde.

Алгоритмы

Как объяснено в Эллиптических уравнениях, матрицы конечного элемента и векторы соответствуют reduced linear system и следующие.

  • Q интеграл q граничное условие против основных функций.

  • G интеграл g граничное условие против основных функций.

  • H матрица условия Дирихле представление hu = r.

  • R вектор условия Дирихле для Hu = R.

Для получения дополнительной информации об уменьшаемой форме линейной системы матриц конечного элемента смотрите assempde Раздел More About и подход линейной алгебры детализированы в Системах УЧП.

Смотрите также

Представлено до R2006a