我需要在平板应力问题中定义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)评估点的法线向量)等等。我的问题是:
谢谢!
答案 0 :(得分:1)
@Oliver,
1)我认为你不需要制作结构region
,而是制作能够使用它的函数。由于边界条件通常取决于位置,因此您需要region.x
和region.y
。
2)您可以使用region.x
和region.y
来制定取决于位置的边界条件。这是应用它们的一种方式"部分"如果边界条件的类型相同。否则,您必须明确定义边界中的拆分。这可能在定义问题的几何形状时发生。