Просмотрите, отредактируйте и удалите начальные условия

Просмотрите начальные условия

Модель PDE хранит начальные условия в своем InitialConditions свойство. Предположим model имя вашей модели. Получите начальные условия:

inits = model.InitialConditions;

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

model = createpde();
geometryFromEdges(model,@lshapeg);
pdegplot(model,'FaceLabels','on')
ylim([-1.1,1.1])
axis equal

Figure contains an axes object. The axes object contains 4 objects of type line, text.

Задайте постоянные начальные условия по всем областям в модели.

setInitialConditions(model,2);

Задайте различное начальное условие на каждой подобласти.

setInitialConditions(model,3,'Face',2);
setInitialConditions(model,4,'Face',3);

Просмотрите начальное присвоение условия для области 2.

ics = model.InitialConditions;
findInitialConditions(ics,'Face',2)
ans = 
  GeometricInitialConditions with properties:

           RegionType: 'face'
             RegionID: 2
         InitialValue: 3
    InitialDerivative: []

Это показывает "последнюю характеристику" побед присвоения.

Просмотрите присвоение начальных условий для области 1.

findInitialConditions(ics,'Face',1)
ans = 
  GeometricInitialConditions with properties:

           RegionType: 'face'
             RegionID: [1 2 3]
         InitialValue: 2
    InitialDerivative: []

Активное присвоение начальных условий для области 1 включает все три области, хотя это присвоение более не активно для областей 2 и 3.

Удалите существующие начальные условия

Чтобы удалить все начальные условия в вашей модели PDE, использовать delete. Предположим model имя вашей модели. Удалите все начальные условия из model.

delete(model.InitialConditions)

Чтобы удалить определенные присвоения начальных условий, удалите их из model.InitialConditions.InitialConditionAssignments вектор.

icv = model.InitialConditions.InitialConditionAssignments;
delete(icv(2))

Совет

Вы не должны удалять начальные условия; можно заменить их путем вызова setInitialConditions снова. Однако удаление неиспользованных присвоений может сделать вашу модель меньшей.

Измените присвоение начальных условий

Чтобы изменить присвоение начальных условий, вам нужен указатель начальных условий. Получить начальный указатель условия:

  • Сохраните указатель при использовании setInitialConditions. Например,

    ics1 = setInitialConditions(model,2);
  • Получите использование указателя findInitialConditions. Например,

    ics = model.InitialConditions;
    ics1 = findInitialConditions(ics,'Face',2);

Можно изменить любое свойство указателя начальных условий. Например,

ics1.RegionID = [1,3];
ics1.InitialValue = 2;
ics1.InitialDerivative = @ut0fun;

Примечание

Редактирование существующего присвоения таким образом не изменяет свой приоритет. Например, если активные начальные условия в области 3 был присвоен после ics1, затем редактирование ics1 включать область 3 не делает ics1 активное начальное условие в области 3.