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