Linear Partial Differential Equations
The LinearPDE class is used to define a general linear, steady, second order PDE
for an unknown function
on a given
defined through a Domain object.
In the following
denotes the boundary of the domain
.
denotes
the outer normal field on
.
For a single PDE with a solution with a single component the linear PDE is defined in the
following form:
 |
(65) |
denotes the derivative of
with respect to the
-th spatial direction. Einstein's summation convention, ie. summation over indexes appearing twice in a term of a sum is performed, is used.
The coefficients
,
,
,
,
and
have to be specified through Data objects in the
general FunctionSpace on the PDE or objects that can be converted into such Data objects.
is a rank-2 Data object,
,
and
are rank-1 Data object and
and
are scalar.
The following natural
boundary conditions are considered on
:
 |
(66) |
Notice that the coefficients
,
and
are defined in the PDE. The coefficients
and
are
each a scalar Data object in the boundary FunctionSpace. Constraints for the solution prescribing the value of the
solution at certain locations in the domain. They have the form
where  |
(67) |
and
are each scalar Data object where
is the characteristic function
defining where the constraint is applied.
The constraints defined by Equation (4.3) override any other condition set by Equation (4.1)
or Equation (4.2).
For a system of PDEs and a solution with several components the PDE has the form
 |
(68) |
is a rank-4 Data object,
and
are each a rank-3 Data object,
and
are each a rank-2 Data object and
is a rank-1 Data object.
The natural boundary conditions take the form:
 |
(69) |
The coefficient
is a rank-2 Data object and
is a
rank-1 Data object both in the boundary FunctionSpace. Constraints take the form
where  |
(70) |
and
are each rank-1 Data object. Notice that not necessarily all components must
have a constraint at all locations.
LinearPDE also supports solution discontinuities over contact region
in the domain
. To specify the conditions across the discontinuity we are using the
generalised flux 
which is in the case of a systems of PDEs and several components of the solution
defined as
 |
(71) |
For the case of single solution component and single PDE
is defined
 |
(72) |
In the context of discontinuities
denotes the normal on the
discontinuity pointing from side 0 towards side 1. For a system of PDEs
the contact condition takes the form
![$\displaystyle n\hackscore{j} J^{0}\hackscore{ij}=n\hackscore{j} J^{1}\hackscore{ij}=y^{contact}\hackscore{i} - d^{contact}\hackscore{ik} [u]\hackscore{k} \; .$](img533.png) |
(73) |
where
and
are the fluxes on side 0 and side
of the
discontinuity
, respectively.
, which is the difference
of the solution at side 1 and at side 0, denotes the jump of
across
.
The coefficient
is a rank-2 Data object and
is a
rank-1 Data object both in the contact FunctionSpace on side 0 or contact FunctionSpace on side 1.
In case of a single PDE and a single component solution the contact condition takes the form
![$\displaystyle n\hackscore{j} J^{0}\hackscore{j}=n\hackscore{j} J^{1}\hackscore{j}=y^{contact} - d^{contact}[u]$](img539.png) |
(74) |
In this case the the coefficient
and
are each scalar Data object
both in the contact FunctionSpace on side 0 or contact FunctionSpace on side 1.
The PDE is symmetrical if
and  |
(75) |
The system of PDEs is symmetrical if
Note that in contrast with the scalar case Equation (4.11) now the coefficients
,
abd
have to be inspected.
The following example illustrates the typical usage of the LinearPDE class:
We refer to chapter 1 for more details.
An instance of the SolverOptions class is attached to the LinearPDE class object. It is used to set options of the solver used to solve the PDE. In the following
code the getSolverOptions is used to access the SolverOptions
attached to mypde:
In this code the preconditoned conjugate gradient method SolverOptions.PCG
with preconditioner SolverOptions.AMG . The relative tolerance is set tto
and
the maximum number of iteration steps to
.
Moreover, after a completed solution call
the attached SolverOptions object gives access to diagnostic informations:
Typically a negative value for a diagnostic value indicates that the value is undefined.
Subsections
esys@esscc.uq.edu.au