A PDE model stores boundary conditions in its
BoundaryConditions property. To obtain the boundary conditions stored in the PDE model called
model, use this syntax:
BCs = model.BoundaryConditions;
To see the active boundary condition assignment for a region, call the
For example, create a model and view the geometry.
model = createpde(3); importGeometry(model,'Block.stl'); pdegplot(model,'FaceLabels','on','FaceAlpha',0.5)
Set zero Dirichlet conditions for all equations and all regions in the model.
On face 3, set the Neumann boundary condition for equation 1 and Dirichlet boundary condition for equations 2 and 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);
View the boundary condition assignment for face 3. The result shows that the active boundary condition is the last assignment.
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'
View the boundary conditions assignment for 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'
The active boundary conditions assignment for face 1 includes all six faces, though this assignment is no longer active for face 3.
To remove all the boundary conditions in the PDE model called
To remove specific boundary conditions assignments from
delete them from the
BCv = pdem.BoundaryConditions.BoundaryConditionAssignments; delete(BCv(2))
You do not need to delete boundary conditions; you can override
them by calling
However, removing unused assignments can make your model more concise.
To change a boundary conditions assignment, you need the boundary condition’s handle. To get the boundary condition’s handle:
Retain the handle when using
bc1 = applyBoundaryCondition(model,'dirichlet', ... 'Face',1:6, ... 'u',[0 0 0]);
Obtain the handle using
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'
You can change any property of the boundary conditions handle. For example,
bc1.BCType = 'neumann'; bc1.u = ; bc1.g = [0 0 0]; bc1.q = [0 0 0]; bc1
bc1 = 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'
Editing an existing assignment in this way does not change its
priority. For example, if the active boundary condition was assigned
bc1, then editing
bc1 the active boundary condition.