Модель 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: []
Это показывает характеристику «last assignation wins».
Просмотрите назначение начальных условий для области 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
.