View, Edit, and Delete Boundary Conditions
View Boundary Conditions
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.
Delete Existing Boundary Conditions
To remove all the boundary conditions in the PDE model called
To remove specific boundary conditions assignments from
them from the
BCv = pdem.BoundaryConditions.BoundaryConditionAssignments; delete(BCv(2))
You do not need to delete boundary conditions; you can override them by calling
applyBoundaryCondition again. However, removing unused assignments
can make your model more concise.
Change a Boundary Conditions Assignment
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
applyBoundaryCondition. For example,
bc1 = applyBoundaryCondition(model,'dirichlet', ... 'Face',1:6, ... 'u',[0 0 0]);
Obtain the handle using
findBoundaryConditions. For example,
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 after
bc1, then editing
bc1 does not make
bc1 the active boundary