Documentation

# pdeInterpolant

Interpolant for nodal data to selected locations

`pdeInterpolant` and `[p,e,t]` representation of `FEMesh` data are not recommended. Use `interpolateSolution` and `evaluateGradient` to interpolate a PDE solution and its gradient to arbitrary points without switching to a `[p,e,t]` representation.

## Description

An interpolant allows you to evaluate a PDE solution at any point within the geometry.

Partial Differential Equation Toolbox™ solvers return solution values at the nodes, meaning the mesh points. To evaluate an interpolated solution at other points within the geometry, create a `pdeInterpolant` object, and then call the `evaluate` function.

## Creation

### Syntax

``F = pdeInterpolant(p,t,u)``

### Description

example

````F = pdeInterpolant(p,t,u)` returns an interpolant `F` based on the data points `p`, elements `t`, and data values at the points, `u`.Use `meshToPet` to obtain the `p` and `t` data for interpolation using `pdeInterpolant`.```

### Input Arguments

expand all

Data point locations, specified as a matrix with two or three rows. Each column of `p` is a 2-D or 3-D point. For details, see Mesh Data.

For 2-D problems, construct `p` using the `initmesh` function, or export from the Mesh menu of the PDE Modeler app. For 2-D or 3-D geometry using a `PDEModel` object, obtain `p` using the `meshToPet` function on `model.Mesh`. For example, ```[p,e,t] = initmesh(g)``` or ```[p,e,t] = meshToPet(model.Mesh)```.

Triangulation elements, specified as a matrix. For details, see Mesh Data.

For 2-D problems, construct `t` using the `initmesh` function, or export from the Mesh menu of the PDE Modeler app. For 2-D or 3-D geometry using a `PDEModel` object, obtain `t` using the `meshToPet` function on `model.Mesh`. For example, ```[p,e,t] = initmesh(g)``` or ```[p,e,t] = meshToPet(model.Mesh)```.

Data values to interpolate, specified as a vector or matrix. Typically, `u` is the solution of a PDE problem returned by `assempde`, `parabolic`, `hyperbolic`, or another solver. For example, ```u = assempde(b,p,e,t,c,a,f)```. You can also export `u` from the Solve menu of the PDE Modeler app.

The dimensions of the matrix `u` depend on the problem. If `np` is the number of columns of `p`, and `N` is the number of equations in the PDE system, then `u` has `N*np` rows. The first `np` rows correspond to equation 1, the next `np` rows correspond to equation 2, etc. For parabolic or hyperbolic problems, `u` has one column for each solution time; otherwise, `u` is a column vector.

## Object Functions

 `evaluate` Interpolate data to selected locations

## Examples

collapse all

This example shows how to create a `pdeInterpolant` from the solution to a scalar PDE.

Solve the equation $-\Delta u=1$ on the unit disk with zero Dirichlet conditions.

```g0 = [1;0;0;1]; % circle centered at (0,0) with radius 1 sf = 'C1'; g = decsg(g0,sf,sf'); % decomposed geometry matrix problem = allzerobc(g); % zero Dirichlet conditions [p,e,t] = initmesh(g); c = 1; a = 0; f = 1; u = assempde(problem,p,e,t,c,a,f);```

Construct an interpolant for the solution.

`F = pdeInterpolant(p,t,u);`

Evaluate the interpolant at the four corners of a square.

```pOut = [0,1/2,1/2,0; 0,0,1/2,1/2]; uOut = evaluate(F,pOut)```
```uOut = 4×1 0.2485 0.1854 0.1230 0.1852 ```

The values `uOut(2)` and `uOut(4)` are nearly equal, as they should be for symmetric points in this symmetric problem. 