Main Content

## View, Edit, and Delete PDE Coefficients

### View Coefficients

A PDE model stores coefficients in its `EquationCoefficients` property. Suppose `model` is the name of your model. Obtain the coefficients:

`coeffs = model.EquationCoefficients;`

To see the active coefficient assignment for a region, call the `findCoefficients` function. For example, create a model and view the geometry.

```model = createpde(); geometryFromEdges(model,@lshapeg); pdegplot(model,"FaceLabels","on") ylim([-1.1,1.1]) axis equal```

Specify constant coefficients over all the regions in the model.

`specifyCoefficients(model,"m",0,"d",0,"c",1,"a",0,"f",2);`

Specify a different `f` coefficient on each subregion.

```specifyCoefficients(model,"m",0,"d",0,"c",1,"a",0,"f",3,"Face",2); specifyCoefficients(model,"m",0,"d",0,"c",1,"a",0,"f",4,"Face",3);```

Change the specification to have nonzero `a` on region 2.

`specifyCoefficients(model,"m",0,"d",0,"c",1,"a",1,"f",3,"Face",2);`

View the coefficient assignment for region 2.

```coeffs = model.EquationCoefficients; findCoefficients(coeffs,"Face",2)```
```ans = CoefficientAssignment with properties: RegionType: 'face' RegionID: 2 m: 0 d: 0 c: 1 a: 1 f: 3 ```

This shows the "last assignment wins" characteristic.

View the coefficient assignment for region 1.

`findCoefficients(coeffs,"Face",1)`
```ans = CoefficientAssignment with properties: RegionType: 'face' RegionID: [1 2 3] m: 0 d: 0 c: 1 a: 0 f: 2 ```

The active coefficient assignment for region 1 includes all three regions, though this assignment is no longer active for regions 2 and 3.

### Delete Existing Coefficients

To delete all the coefficients in your PDE model, use `delete`. Suppose `model` is the name of your model. Remove all coefficients from `model`.

`delete(model.EquationCoefficients)`

To delete specific coefficient assignments, delete them from the `model.EquationCoefficients.CoefficientAssignments` vector.

```coefv = model.EquationCoefficients.CoefficientAssignments; delete(coefv(2))```

Tip

You do not need to delete coefficients; you can override them by calling `specifyCoefficients` again. However, deleting unused assignments can make your model smaller.

### Change a Coefficient Assignment

To change a coefficient assignment, you need the coefficient handle. To get the coefficient handle:

• Retain the handle when using `specifyCoefficients`. For example,

`coefh1 = specifyCoefficients(model,"m",m,"d",d,"c",c,"a",a,"f",f);`
• Obtain the handle using `findCoefficients`. For example,

```coeffs = model.EquationCoefficients; coefh1 = findCoefficients(coeffs,"Face",2);```

You can change any property of the coefficient handle. For example,

```coefh1.RegionID = [1,3]; coefh1.a = 2; coefh1.c = @ccoeffun;```

Note

Editing an existing assignment in this way does not change its priority. For example, if the active coefficient in region 3 was assigned after `coefh1`, then editing `coefh1` to include region 3 does not make `coefh1` the active coefficient in region 3.