NAG CL Interface
d03pzc (dim1_​parab_​fd_​interp)

1 Purpose

d03pzc interpolates in the spatial coordinate the solution and derivative of a system of partial differential equations (PDEs). The solution must first be computed using one of the finite difference schemes d03pcc, d03phc or d03ppc, or one of the Keller box schemes d03pec, d03pkc or d03prc.

2 Specification

#include <nag.h>
void  d03pzc (Integer npde, Integer m, const double u[], Integer npts, const double x[], const double xp[], Integer intpts, Integer itype, double up[], NagError *fail)
The function may be called by the names: d03pzc, nag_pde_dim1_parab_fd_interp or nag_pde_interp_1d_fd.

3 Description

d03pzc is an interpolation function for evaluating the solution of a system of partial differential equations (PDEs), at a set of user-specified points. The solution of the system of equations (possibly with coupled ordinary differential equations) must be computed using a finite difference scheme or a Keller box scheme on a set of mesh points. d03pzc can then be employed to compute the solution at a set of points anywhere in the range of the mesh. It can also evaluate the first spatial derivative of the solution. It uses linear interpolation for approximating the solution.

4 References

None.

5 Arguments

Note: the arguments x, m, u, npts and npde must be supplied unchanged from the PDE function.
1: npde Integer Input
On entry: the number of PDEs.
Constraint: npde1.
2: m Integer Input
On entry: the coordinate system used. If the call to d03pzc follows one of the finite difference functions then m must be the same argument m as used in that call. For the Keller box scheme only Cartesian coordinate systems are valid and so m must be set to zero. No check will be made by d03pzc in this case.
m=0
Indicates Cartesian coordinates.
m=1
Indicates cylindrical polar coordinates.
m=2
Indicates spherical polar coordinates.
Constraints:
  • 0m2 following a finite difference function;
  • m=0 following a Keller box scheme function.
3: u[npde×npts] const double Input
Note: the i,jth element of the matrix U is stored in u[j-1×npde+i-1].
On entry: the PDE part of the original solution returned in the argument u by the PDE function.
Constraint: npde1.
4: npts Integer Input
On entry: the number of mesh points.
Constraint: npts3.
5: x[npts] const double Input
On entry: x[i-1], for i=1,2,,npts, must contain the mesh points as used by the PDE function.
6: xp[intpts] const double Input
On entry: xp[i-1], for i=1,2,,intpts, must contain the spatial interpolation points.
Constraint: x[0]xp[0]<xp[1]<<xp[intpts-1]x[npts-1].
7: intpts Integer Input
On entry: the number of interpolation points.
Constraint: intpts1.
8: itype Integer Input
On entry: specifies the interpolation to be performed.
itype=1
The solutions at the interpolation points are computed.
itype=2
Both the solutions and their first derivatives at the interpolation points are computed.
Constraint: itype=1 or 2.
9: up[dim] double Output
Note: the dimension, dim, of the array up must be at least npde×intpts×itype.
the element UPi,j,k is stored in the array element up[k-1×npde×intpts+j-1×npde+i-1].
On exit: if itype=1, UPi,j,1, contains the value of the solution Uixj,tout, at the interpolation points xj=xp[j-1], for j=1,2,,intpts and i=1,2,,npde.
If itype=2, UPi,j,1 contains Uixj,tout and UPi,j,2 contains Ui x at these points.
10: fail NagError * Input/Output
The NAG error argument (see Section 7 in the Introduction to the NAG Library CL Interface).

6 Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
See Section 3.1.2 in the Introduction to the NAG Library CL Interface for further information.
NE_BAD_PARAM
On entry, argument value had an illegal value.
NE_EXTRAPOLATION
On entry, interpolating point value with the value value is outside the x range.
NE_INT
On entry, intpts=value.
Constraint: intpts1.
On entry, itype=value.
Constraint: itype=1 or 2.
On entry, m=value.
Constraint: m=0, 1 or 2.
On entry, npde=value.
Constraint: npde>0.
On entry, npts=value.
Constraint: npts>2.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
See Section 7.5 in the Introduction to the NAG Library CL Interface for further information.
NE_NO_LICENCE
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library CL Interface for further information.
NE_NOT_STRICTLY_INCREASING
On entry, i=value, x[i-1]=value, j=value and x[j-1]=value.
Constraint: x[0]<x[1]<<x[npts-1].
On entry, i=value, xp[i-1]=value, j=value and xp[j-1]=value.
Constraint: x[0]xp[0]<xp[1]<<xp[intpts-1]x[npts-1].

7 Accuracy

See the PDE function documents.

8 Parallelism and Performance

d03pzc is not threaded in any implementation.

9 Further Comments

None.

10 Example

See Section 10 in d03pcc, d03ppc and d03prc.