|
|
|
| R2011b Documentation → Partial Differential Equation Toolbox | |
Learn more about Partial Differential Equation Toolbox |
|
| Contents | Index |
| On this page… |
|---|
The elliptic solver allows other types of equations to be more easily implemented. In this section, we show how the parabolic equation can be reduced to solving elliptic equations. This is done using the function parabolic.
Consider the equation
![]()
with the initial condition
![]()
and boundary conditions of the same kind as for the elliptic
equation on
.
The heat equation reads
![]()
in the presence of distributed heat loss to the surroundings. ρ is the density, C is the thermal capacity, k is the thermal conductivity, h is the film coefficient, u∞ is the ambient temperature, and f is the heat source.
For time-independent coefficients, the steady-state solution of the equation is the solution to the standard elliptic equation
-∇ · (c∇u) + au = f
Assuming a triangular mesh on Ω and t ≥ 0, expand the solution to the PDE (as a function of x) in the Finite Element Method basis:
![]()
Plugging the expansion into the PDE, multiplying with a test function ϕj, integrating over Ω, and applying Green's formula and the boundary conditions yield

In matrix notation, we have to solve the linear, large and sparse ODE system
![]()
This method is traditionally called method of lines semidiscretization.
Solving the ODE with the initial value
Ui(0) = u0(xi)
yields the solution to the PDE at each node xi and time t. Note that K and F are the stiffness matrix and the right-hand side of the elliptic problem
-∇ · (c∇u) + au = f in Ω
with the original boundary conditions, while M is just the mass matrix of the problem
-∇ · (0∇u) + du = 0 in Ω
When the Dirichlet conditions are time dependent, F contains contributions from time derivatives of h and r. These derivatives are evaluated by finite differences of the user-specified data.
The ODE system is ill conditioned. Explicit time integrators
are forced by stability requirements to very short time steps while
implicit solvers can be expensive since they solve an elliptic problem
at every time step. The numerical integration of the ODE system is
performed by the MATLAB ODE Suite functions, which are efficient
for this class of problems. The time step is controlled to satisfy
a tolerance on the error, and factorizations of coefficient matrices
are performed only when necessary. When coefficients are time dependent,
the necessity of reevaluating and refactorizing the matrices each
time step may still make the solution time consuming, although parabolic reevaluates
only that which varies with time. In certain cases a time-dependent
Dirichlet matrix
may cause the
error control to fail, even if the problem is mathematically sound
and the solution u(t) is
smooth. This can happen because the ODE integrator looks only at the
reduced solution v with u = Bv + ud.
As
changes, the pivoting scheme
employed for numerical stability may change the elimination order
from one step to the next. This means that B,v and ud all
change discontinuously, although u itself does
not.
The following example shows you how to solve a parabolic equation in stages and how to set an initial condition as a variable:
From the Draw menu, select Export Geometry Description, Set Formula, Labels.
In the Export dialog box, enter gd sf ns. Click OK.
The exported variables are available in the MATLAB workspace.
Set the Neumann and Dirichlet boundary conditions. If these conditions are not the same for all the stages, set the conditions accordingly.
From the Boundary menu, select Export Decomposed Geometry, Boundary Cond's.
Set the partial differential equation (PDE) coefficients, which are the same for any value of time.
Verify the initial mesh, jiggle mesh, and refine mesh values. The mesh is fixed for all stages.
Save the workspace variables into a MAT-file by typing save data.mat at the MATLAB command prompt.
Save the following code as a file:
clear all;
close all;
load data
%For the first stage you need to specify an
%initial condition, U0.
U0 = 0; %U0 expands to the correct size automatically.
%Divide the time range into 4 stages.
time = {0:.01:1, 1:.05:3, 3:.1:5, 5:.5:20};
for i = 1:4
U1 = parabolic(U0,time{i},b,p,e,t,c,a,f,d);
for j = 1:size(U1,2)
H =pdeplot(p,e,t,'xydata',U1(:,j),'zdata',...
U1(:,j),'mesh','off');
set(gca,'ZLim',[-80 0]);
drawnow
end
%Reset the initial condition at all points.
U0 = U1(:,1);
endThis file uses the variables you defined in the MATLAB workspace to solve a parabolic equation in stages. Within this file, you set the initial condition as a variable.
![]() | The Elliptic System | The Hyperbolic Equation | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |