用MATLAB函数设置边界条件

建模工作完成后,给模型指定边界条件。可以给模型的边或面指定Dirichlet边界条件、Neumann边界条件或混合边界条件。[大谦MATLAB,dqmatlab点com]

使用applyBoundaryCondition函数给偏微分方程的模型添加边界条件。该函数的语法格式为:

  • applyBoundaryCondition(model,'dirichlet',RegionType,RegionID,Name,Value) 给模型添加Dirichlet边界条件。用RegionType和RegionID指定边界的类型和编号。对于三维模型或二维模型,RegionType的取值为'Face'或'Edge'。对多条边界进行指定,如果边界的编号是连续的,比如第1条到第3条,可以指定为1:3;如果不连续,可以用数组指定,比如第1条、第3条和第5条,指定为[1,3,5]。Name和Value指定Dirichlet边界条件h*u = r中的参数h, r和u的值。
  • applyBoundaryCondition(model,'neumann',RegionType,RegionID,Name,Value) 给模型添加Newman边界条件。用RegionType和RegionID指定边界的类型和编号。Name和Value指定Newman边界条件n·(c×∇u) + qu = g中的参数g和q的值。
  • applyBoundaryCondition(model,'mixed',RegionType,RegionID,Name,Value) 给偏微分方程组中的每个方程添加一个单独的边界条件。用RegionType和RegionID指定边界的类型和编号。用Name和Value匹配对必要时指定不同边界条件的参数值。
  • bc = applyBoundaryCondition(___) 返回边界条件对象bc。

下面结合简单的实例介绍PDE模型边界条件的设置。

【例15】创建一个几何模型为方形的PDE模型,给模型设置边界条件。

首先创建PDE模型并设置它的几何模型。假设几何模型为一个矩形区域。

code.matlab
>> model = createpde;
>> R = [3,4,-1,1,1,-1,-1,-1,1,1]';
>> g = decsg(R);
>> geometryFromEdges(model,g);

给第1条和第2条边设置Dirichlet边界条件u = 0。.

code.matlab
>> applyBoundaryCondition(model,'dirichlet', ...
                             'Edge',1:2,'u',0);

给另外两条边设置Dirichlet边界条件h*u = r,其中h = 1,r = 1。

code.matlab
>> applyBoundaryCondition(model,'dirichlet', ...
                             'Edge',3:4, ...
                             'r',1,'h',1);

假设给第2条边设置Neumann边界条件,如下进行设置。

code.matlab
>> applyBoundaryCondition(model,'neumann', ...
                             'Edge',2, ...
                             'g',1);