Cuboids, Cylinders, and Spheres
This example shows how to create 3-D geometries formed by one or more cubic, cylindrical, and spherical cells by using the multicuboid
, multicylinder
, and multisphere
functions, respectively. With these functions, you can create stacked or nested geometries. You also can create geometries where some cells are empty; for example, hollow cylinders, cubes, or spheres.
All cells in a geometry must be of the same type: either cuboids, or cylinders, or spheres. These functions do not combine cells of different types in one geometry.
Single Sphere
Create a geometry that consists of a single sphere and include this geometry in a PDE model.
Use the multisphere
function to create a single sphere. The resulting geometry consists of one cell.
gm = multisphere(5)
gm = DiscreteGeometry with properties: NumCells: 1 NumFaces: 1 NumEdges: 0 NumVertices: 0 Vertices: []
Create a PDE model.
model = createpde
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Include the geometry in the model.
model.Geometry = gm
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [1x1 DiscreteGeometry] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Plot the geometry.
pdegplot(model,"CellLabels","on")
Nested Cuboids of Same Height
Create a geometry that consists of three nested cuboids of the same height and include this geometry in a PDE model.
Create the geometry by using the multicuboid
function. The resulting geometry consists of three cells.
gm = multicuboid([2 3 5],[4 6 10],3)
gm = DiscreteGeometry with properties: NumCells: 3 NumFaces: 18 NumEdges: 36 NumVertices: 24 Vertices: [24x3 double]
Create a PDE model.
model = createpde
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Include the geometry in the model.
model.Geometry = gm
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [1x1 DiscreteGeometry] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Plot the geometry.
pdegplot(model,"CellLabels","on","FaceAlpha",0.5)
Stacked Cylinders
Create a geometry that consists of three stacked cylinders and include this geometry in a PDE model.
Create the geometry by using the multicylinder
function with the ZOffset
argument. The resulting geometry consists of four cells stacked on top of each other.
gm = multicylinder(10,[1 2 3 4],"ZOffset",[0 1 3 6])
gm = DiscreteGeometry with properties: NumCells: 4 NumFaces: 9 NumEdges: 5 NumVertices: 5 Vertices: [5x3 double]
Create a PDE model.
model = createpde
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Include the geometry in the model.
model.Geometry = gm
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [1x1 DiscreteGeometry] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Plot the geometry.
pdegplot(model,"CellLabels","on","FaceAlpha",0.5)
Hollow Cylinder
Create a hollow cylinder and include it as a geometry in a PDE model.
Create a hollow cylinder by using the multicylinder
function with the Void
argument. The resulting geometry consists of one cell.
gm = multicylinder([9 10],10,"Void",[true,false])
gm = DiscreteGeometry with properties: NumCells: 1 NumFaces: 4 NumEdges: 4 NumVertices: 4 Vertices: [4x3 double]
Create a PDE model.
model = createpde
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Include the geometry in the model.
model.Geometry = gm
model = PDEModel with properties: PDESystemSize: 1 IsTimeDependent: 0 Geometry: [1x1 DiscreteGeometry] EquationCoefficients: [] BoundaryConditions: [] InitialConditions: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]
Plot the geometry.
pdegplot(model,"CellLabels","on","FaceAlpha",0.5)