Просмотрите, отредактируйте и удалите коэффициенты УЧП

Просмотрите коэффициенты

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

coeffs = model.EquationCoefficients;

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

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.

Задайте постоянные коэффициенты по всем областям в модели.

specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',2);

Задайте различный f коэффициент на каждой подобласти.

specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',3,'Face',2);
specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',4,'Face',3);

Измените спецификацию, чтобы иметь ненулевой a на области 2.

specifyCoefficients(model,'m',0,'d',0,'c',1,'a',1,'f',3,'Face',2);

Просмотрите содействующее присвоение для области 2.

coeffs = model.EquationCoefficients;
findCoefficients(coeffs,'Face',2)
ans = 
  CoefficientAssignment with properties:

    RegionType: 'face'
      RegionID: 2
             m: 0
             d: 0
             c: 1
             a: 1
             f: 3

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

Просмотрите содействующее присвоение для области 1.

findCoefficients(coeffs,'Face',1)
ans = 
  CoefficientAssignment with properties:

    RegionType: 'face'
      RegionID: [1 2 3]
             m: 0
             d: 0
             c: 1
             a: 0
             f: 2

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

Удалите существующие коэффициенты

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

delete(model.EquationCoefficients)

Чтобы удалить определенные содействующие присвоения, удалите их из model.EquationCoefficients.CoefficientAssignments вектор.

coefv = model.EquationCoefficients.CoefficientAssignments;
delete(coefv(2))

Совет

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

Измените содействующее присвоение

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

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

    coefh1 = specifyCoefficients(model,'m',m,'d',d,'c',c,'a',a,'f',f);
  • Получите использование указателя findCoefficients. Например,

    coeffs = model.EquationCoefficients;
    coefh1 = findCoefficients(coeffs,'face',2);

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

coefh1.RegionID = [1,3];
coefh1.a = 2;
coefh1.c = @ccoeffun;

Примечание

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