exponenta event banner

Решение проблем с помощью объектов PDEModel

  1. Поместите свою задачу в правильную форму для дифференциальных уравнений в частных производных Toolbox™ решателей. Дополнительные сведения см. в разделе Уравнения, которые можно решить с помощью панели инструментов PDE. Если необходимо преобразовать проблему в форму дивергенции, см. раздел Поместить уравнения в форму дивергенции.

  2. Создать PDEModel контейнер модели. Для скалярных PDE используйте createpde без аргументов.

    model = createpde();

    Если N - количество уравнений в системе, используйте createpde с входным аргументом N.

    model = createpde(N);
  3. Импорт или создание геометрии. Дополнительные сведения см. в разделе Геометрия и сетка.

    importGeometry(model,'geometry.stl'); % importGeometry for 3-D
    geometryFromEdges(model,g); % geometryFromEdges for 2-D
  4. Просмотрите геометрию таким образом, чтобы были известны метки границ.

    pdegplot(model,'FaceLabels','on') % 'FaceLabels' for 3-D
    pdegplot(model,'EdgeLabels','on') % 'EdgeLabels' for 2-D

    Чтобы увидеть метки 3-D модели, может потребоваться повернуть модель, сделать ее прозрачной или увеличить масштаб изображения. См. раздел Импорт файла STL.

  5. Создайте граничные условия. Дополнительные сведения см. в разделе Задание граничных условий.

    % 'face' for 3-D
    applyBoundaryCondition(model,'dirichlet','face',[2,3,5],'u',[0,0]);
    % 'edge' for 2-D
    applyBoundaryCondition(model,'neumann','edge',[1,4],'g',1,'q',eye(2));
  6. Создайте коэффициенты PDE.

    f = [1;2];
    a = 0;
    c = [1;3;5];
    specifyCoefficients(model,'m',0,'d',0,'c',c,'a',a,'f',f);
  7. Для зависимых от времени уравнений или, необязательно, для нелинейных стационарных уравнений создайте начальное условие. См. раздел Установка начальных условий.

  8. Создайте сетку.

    generateMesh(model);
  9. Вызовите соответствующий решатель. Для всех проблем, кроме проблем собственного значения, звоните solvepde.

    result = solvepde(model); % for stationary problems
    result = solvepde(model,tlist); % for time-dependent problems

    Для проблем собственного значения используйте solvepdeeig:

    result = solvepdeeig(model);
  10. Осмотрите решение. См. Сюжеты Решения и Градиента с pdeplot и pdeplot3D, 2-е Сюжеты Решения и Градиента с MATLAB® Functions и 3D Сюжеты Решения и Градиента с MATLAB® Functions.

См. также

| | | | | | |