Main Content

Solve Problems Using PDEModel Objects

  1. Put your problem in the correct form for Partial Differential Equation Toolbox™ solvers. For details, see Equations You Can Solve Using Partial Differential Equation Toolbox. If you need to convert your problem to divergence form, see Put Equations in Divergence Form.

  2. Create a PDEModel model container. For scalar PDEs, use createpde with no arguments.

    model = createpde();

    If N is the number of equations in your system, use createpde with input argument N.

    model = createpde(N);
  3. Import or create the geometry. For details, see Geometry and Mesh.

    importGeometry(model,"geometry.stl"); % importGeometry for 3-D
    geometryFromEdges(model,g); % geometryFromEdges for 2-D
  4. View the geometry so that you know the labels of the boundaries.

    pdegplot(model,FaceLabels="on") % FaceLabels for 3-D
    pdegplot(model,EdgeLabels="on") % EdgeLabels for 2-D

    To see labels of a 3-D model, you might need to rotate the model, or make it transparent, or zoom in on it. See STL File Import.

  5. Create the boundary conditions. For details, see Specify Boundary Conditions.

    % Face for 3-D
    applyBoundaryCondition(model,"dirichlet",Face=[2,3,5],u=[0,0]);
    % Edge for 2-D
    applyBoundaryCondition(model,"neumann",Edge=[1,4],g=1,q=eye(2));
  6. Create the PDE coefficients.

    f = [1;2];
    a = 0;
    c = [1;3;5];
    specifyCoefficients(model,m=0,d=0,c=c,a=a,f=f);
  7. For time-dependent equations, or optionally for nonlinear stationary equations, create an initial condition. See Set Initial Conditions.

  8. Create the mesh.

    generateMesh(model);
  9. Call the appropriate solver. For all problems except for eigenvalue problems, call solvepde.

    result = solvepde(model); % for stationary problems
    result = solvepde(model,tlist); % for time-dependent problems

    For eigenvalue problems, use solvepdeeig:

    result = solvepdeeig(model);
  10. Examine the solution. See Visualization.

See Also

| | | | | | |