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

Просмотр начальных условий

Модель 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. The axes 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: []

Это показывает характеристику «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.