Модель PDE хранит граничные условия в BoundaryConditions собственность. Получение граничных условий, сохраненных в модели PDE, model, используйте следующий синтаксис:
BCs = model.BoundaryConditions;
Для просмотра назначения активного граничного условия для области вызовите findBoundaryConditions функция.
Например, создайте модель и просмотрите геометрию.
model = createpde(3); importGeometry(model,'Block.stl'); pdegplot(model,'FaceLabels','on','FaceAlpha',0.5)

Задайте нулевые условия Дирихле для всех уравнений и всех областей модели.
applyBoundaryCondition(model,'dirichlet','Face',1:6,'u',[0,0,0]);
На грани 3 задайте граничное условие Неймана для уравнения 1 и граничное условие Дирихле для уравнений 2 и 3.
h = [0 0 0;0 1 0;0 0 1]; r = [0;3;3]; q = [1 0 0;0 0 0;0 0 0]; g = [10;0;0]; applyBoundaryCondition(model,'mixed','Face',3,'h',h,'r',r,'g',g,'q',q);
Просмотрите назначение граничного условия для грани 3. Результат показывает, что активное граничное условие является последним назначением.
BCs = model.BoundaryConditions;
findBoundaryConditions(BCs,'Face',3)ans =
BoundaryCondition with properties:
BCType: 'mixed'
RegionType: 'Face'
RegionID: 3
r: [3x1 double]
h: [3x3 double]
g: [3x1 double]
q: [3x3 double]
u: []
EquationIndex: []
Vectorized: 'off'
Просмотрите назначение граничных условий для грани 1.
findBoundaryConditions(BCs,'Face',1)ans =
BoundaryCondition with properties:
BCType: 'dirichlet'
RegionType: 'Face'
RegionID: [1 2 3 4 5 6]
r: []
h: []
g: []
q: []
u: [0 0 0]
EquationIndex: []
Vectorized: 'off'
Назначение активных граничных условий для грани 1 включает в себя все шесть граней, хотя это назначение больше не активно для грани 3.
Удаление всех граничных условий в модели PDE pdem, использовать delete.
delete(pdem.BoundaryConditions)
Удаление определенных назначений граничных условий из pdem, удалите их из pdem.BoundaryConditions.BoundaryConditionAssignments вектор. Например,
BCv = pdem.BoundaryConditions.BoundaryConditionAssignments; delete(BCv(2))
Совет
Удаление граничных условий не требуется; их можно переопределить, позвонив по телефону applyBoundaryCondition снова. Однако удаление неиспользуемых назначений может сделать модель более сжатой.
Для изменения назначения граничных условий необходим дескриптор граничного условия. Чтобы получить дескриптор граничного условия:
Сохранить дескриптор при использовании applyBoundaryCondition. Например,
bc1 = applyBoundaryCondition(model,'dirichlet', ... 'Face',1:6, ... 'u',[0 0 0]);
Получить дескриптор с помощью findBoundaryConditions. Например,
BCs = model.BoundaryConditions;
bc1 = findBoundaryConditions(BCs,'Face',2)bc1 =
BoundaryCondition with properties:
BCType: 'dirichlet'
RegionType: 'Face'
RegionID: [1 2 3 4 5 6]
r: []
h: []
g: []
q: []
u: [0 0 0]
EquationIndex: []
Vectorized: 'off'Можно изменить любое свойство дескриптора граничных условий. Например,
bc1.BCType = 'neumann';
bc1.u = [];
bc1.g = [0 0 0];
bc1.q = [0 0 0];
bc1bc1 =
BoundaryCondition with properties:
BCType: 'neumann'
RegionType: 'Face'
RegionID: [1 2 3 4 5 6]
r: []
h: []
g: [0 0 0]
q: [0 0 0]
u: []
EquationIndex: []
Vectorized: 'off'Примечание
Редактирование существующего назначения таким образом не изменяет его приоритет. Например, если активное граничное условие было назначено после bc1, затем редактирование bc1 не делает bc1 активное граничное условие.