Модель PDE хранит начальные условия в своем InitialConditions
свойство. Предположим model
имя вашей модели. Получите начальные условия:
inits = model.InitialConditions;
Чтобы видеть активное присвоение начальных условий для области, вызовите findInitialConditions
функция. Например, создайте модель и просмотрите геометрию.
model = createpde(); geometryFromEdges(model,@lshapeg); pdegplot(model,'FaceLabels','on') ylim([-1.1,1.1]) axis equal
Задайте постоянные начальные условия по всем областям в модели.
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
.