exponenta event banner

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

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

Модель 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 assignment 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.