在边缘上“部分地”定义非恒定边界条件 - MATLAB

时间:2016-04-25 16:06:22

标签: matlab

我需要在平板应力问题中定义Dirichlet和Neumann条件仅在板的一个边缘的部分上。 用于定义非常量边界条件的Matlab help表示必须编写函数,如:

applyBoundaryCondition(model,'edge',1,'r',@myrfun);
applyBoundaryCondition(model,'face',2,'g',@mygfun,'q',@myqfun);
applyBoundaryCondition(model,'edge',[3,4],'u',@myufun,'EquationIndex',[2,3]);

此外,每个函数必须具有以下语法。

function bcMatrix = myfun(region,state)

最后“区域”是一个包含字段 region.x (点的x坐标)的结构, region.y (点的y坐标)等,如果存在Neumann条件(这是我的情况),则求解器在区域结构中传递以下数据: region.nx - (x-component)评估点的法线向量)等等。我的问题是:

  1. 从哪里可以获得区域
  2. 的结构
  3. 如何传递边界条件适用于其中一条边的一部分的参数?
  4. 谢谢!

1 个答案:

答案 0 :(得分:1)

@Oliver,

1)我认为你不需要制作结构region,而是制作能够使用它的函数。由于边界条件通常取决于位置,因此您需要region.xregion.y

2)您可以使用region.xregion.y来制定取决于位置的边界条件。这是应用它们的一种方式"部分"如果边界条件的类型相同。否则,您必须明确定义边界中的拆分。这可能在定义问题的几何形状时发生。