Partial Differential Equation Toolbox
A typical workflow in Partial Differential Equation Toolbox consists of defining your geometry, the scalar or system of governing equations, the boundary conditions, and the initial conditions; generating a mesh; and then solving and visualizing your results. The toolbox provides functions for each step in the workflow.
Deflection Analysis of a Bracket (Example)
Using functions in Partial Differential Equation Toolbox to read 3D geometry of a bracket, and to automatically mesh, solve, and visualize the solution.
You can solve problems in structural mechanics, electrostatics, magnetostatics, AC power electromagnetics, conductive media DC, heat transfer and diffusion, and other custom applications.
Deflection of a Piezoelectric Actuator (Example)
For 2D geometry problems, you can work in the PDE app. The app includes geometry creation and preset modes for applications. You can choose to export data to the MATLAB® workspace from any step in the app and continue your work outside the app.
You can use Partial Differential Equation Toolbox to define and solve different types of scalar or systems of PDEs, including elliptic, parabolic, hyperbolic, and eigenvalue problems. The PDE system can be linear or nonlinear and can be defined over a real-valued or complex-valued solution space.
You can enter elliptic PDEs of the form,
where is the gradient operator over , the bounded 2D or 3D domain of interest, and u is the scalar or vector of solution variables. You can specify the PDE coefficients c, a, and f as functions of u, ux, uy, and uz (solution derivatives) and (x,y) or (x,y,z) points in .
See the related example illustrating the parabolic and nonlinear PDE of heat transfer in a thin plate.
You can also specify the coefficient, d, for parabolic and hyperbolic PDEs as a function of u, and (x,y) or (x,y,z) points in . For time-domain problems, all coefficients can depend on the time variable.
You can handle systems of dimension two with the PDE app. From the command line, you can handle an arbitrary number of dimensions.
For 3D problems, Partial Differential Equation Toolbox works with faceted geometry. You can define 3D geometry by importing a stereo lithography (or STL) file into MATLAB. The STL file format is native to 3D CAD software and provides a standard format to import 3D geometries for analysis with the toolbox.
For 2D problems, you can create 2D geometry via the constructive solid geometry (CSG) or the geometry function approach. Using the CSG approach, you can use a set of solid building blocks (square, rectangle, circle, ellipse, and polygon) that can be combined to define complex geometries. The PDE app uses the CSG approach.
You can also use the geometry function approach to describe the curves that bound the 2D geometry regions.
With Partial Differential Equation Toolbox, you can set Dirichlet and generalized Neumann boundary conditions on the boundary of your geometry, , by specifying coefficients h, r, q, and g in the corresponding code.
For each boundary condition, is the outward unit normal, u is the scalar or vector valued solution, and c is the coefficient associated with the elliptic term.
g, q, h, and r can be complex valued functions defined on (x,y) or (x,y,z) points over . The coefficients can depend on u and nx, ny, or nz (surface normals). For time-dependent problems, the coefficients can also depend on time. For PDE systems, the toolbox supports Dirichlet, generalized Neumann, and mixed boundary conditions.
Partial Differential Equation Toolbox uses the finite element method (FEM) to solve PDEs. You can automatically mesh geometries by specifying a mesh parameter.
For 3D problems, the toolbox uses tetrahedral elements. You can specify either piecewise linear or quadratic basis during the FEM meshing step.
For 2D problems, the toolbox uses triangle elements with piecewise linear basis to represent the solution.
For 2D elliptic and nonlinear elliptic problems, the toolbox lets you use an adaptive mesh refinement algorithm.
Adaptive Mesh Refinement Algorithm
Example showing an adaptive solver (refining the inner corner) to control a discretization error.
For parabolic and hyperbolic PDE problems, you can specify the initial values and obtain solutions at specific times. You can also specify a damping term for the hyperbolic solver.
Solving a Heat Transfer Problem with Temperature-Dependent Properties (Example)
Spatial solution shown at a time point for a heat transfer problem. The temporal solution is shown at a point in space.
The eigenvalue solver returns the eigenvalues and the eigenmodes. You can specify the interval over which the solver will search for eigenvalues. The following example shows extract and plot eigenmodes and eigenvalues for a plate displacement problem, with a user-specified range to search for solutions.
You can use Partial Differential Equation Toolbox to visualize your solution by creating surface plots, including contour plots and custom plots such as volume-slice plots.
You can plot the solution on the surface of a 3D solid.
This example illustrates how you can use Partial Differential Equation Toolbox to solve a 2D Helmholtz equation solution on a circular domain with a hole.
The toolbox supports a variety of plots for solutions for 3D geometry. The following example shows the time evolution of values on a slice through a region.
You can use custom code to create plots with the toolbox. This example shows a custom plot of volume slices from a solution.
The Plot mode in the PDE app for 2D lets you select from different plot types, including surface, mesh, and contour. For parabolic and hyperbolic equations, you can animate the solution as it changes with time. Applications include problems involving magnetostatics, as in this example.
Equipotential lines and magnetic flux in a two-pole motor.
Partial Differential Equation Toolbox lets you evaluate a PDE solution at any point within the geometry. You can also perform custom postprocessing.