如何将边界条件与Galerkin方法结合在一起?


21

我一直在网上阅读一些有关Galerkin方法来解决PDE的资源,但是我不清楚。以下是我对我所了解的内容的描述。

请考虑以下边值问题(BVP):

L[u(x,y)]=0on(x,y)Ω,S[u]=0on(x,y)Ω

其中是二阶线性微分算子,是BVP的域,是该域的边界,而是一阶线性微分算子。将为以下形式的近似值:Ω - [R 2∂&Ω 小号ù X ÿ LΩR2ΩSu(x,y)

u(x,y)i=1Naigi(x,y)

其中是我们将用来近似一组函数。替代BVP:giu

iaiL[gi(x,y)]=R(a1,...,aN,x,y)

由于我们的近似值不精确,因此残差不完全为零。在Galerkin-Ritz-Raleigh方法中,通过要求我们将相对于逼近函数集最小化。因此[R - [R = 0RRR,gi=0

R,gi=j=1NajL[gj],gi=0

因此,要找到系数,我们必须求解矩阵方程:ai

大号[G1个]G1个大号[Gñ]G1个大号[G1个]Gñ大号[Gñ]Gñ一种1个一种ñ=0

我的问题是:如何将边界条件纳入其中?

编辑:最初的问题是说是二阶线性微分算子。我将其更改为一阶线性微分算子。小号[ü]


1
becko,欢迎光临scicomp!我们的交叉发布政策遵循其他Stack Exchange网站的政策。如果您针对不同的受众量身定制(或多或少)相同的问题,则可以交叉发布。如果您认为问题在最初发布的站点上没有得到满意的回答(或根本没有得到满意的回答),则可以在一段时间后要求将问题迁移到另一个站点。
Geoff Oxberry 2012年

但是,通常认为交叉发布是滥用行为。如果您查看Area 51上的Beta版站点列表,那么许多站点在一年后仍处于公开Beta版。我们仍将待一阵子(至少比在此站点上回答大多数问题需要更长的时间)。此外,除非math您回答问题的scicomp用户也是用户,否则,scicomp如果您从中复制粘贴内容 ,他们将在此处无法获得适当的信誉或署名,math反之亦然。
Geoff Oxberry 2012年

1
肯定也是二阶运营商?通常,这不是一个适当的问题。例如,如果小号= 大号,则所要求的大号ü = 0ˉ Ω具有可怕的非唯一的解决方案(例如,在与任何边界条件任何较大域中的PDE的溶液也是溶液)。通常我们要求S是一个(可能是非线性的)一阶算子。小号小号=大号大号ü=0Ω¯小号
杰德·布朗

2
即使,您仍在寻找非唯一解。考虑L是否为拉普拉斯算子,S是否为任何其他二阶线性算子。然后任何ü使得û = ķ对于某一常数向量ķ可以添加到溶液中,使另一种解决方案。SLLSuu=kķ
2012年

1
@GeoffOxberry为了让您省心,重复的问题math已被删除。显然,您将问题保留在这里是正确的。我收到了非常有帮助的回复。
becko

Answers:


15

快速而通用的答案,而无需数学抽象。施加边界条件有多种选择,例如

严格来说,Galerkin方法要求您选择一组满足问题BC的基函数(例如,通过基复合和/或分解近似 wit u 0负责不均匀解和u N是依赖于满足均匀条件的基函数的部分和)uh=u0+uNu0uN

  • 惩罚方法/拉格朗日乘法,其中一个本质上增加了一个包含边界条件的惩罚项,例如A + ,其中B是负责离散边界条件的矩阵,而b p负责不均匀项。在极限τ ∞中,条件是强加的,否则条件是弱加的。τ的选择影响系统的调节。τB=b+τbpbpττ

  • Tau方法,其中使用离散形式的边界条件交换许多方程式(在Galerkin系统中修改行),然后明确执行该条件。注意:一种选择也是使系统因附加的边界条件而被过度确定。

  • 在离散化之前(Ritz方法),通过高斯散度定理重写Galerkin公式,以将体积积分转换为边界积分,然后在离散化之前将(精确或近似)边界条件直接纳入公式中。

  • 最后,通过利用节点/模态展开之间的联系,还可以推导节点Galerkin方法,其中系统的解是基于Lagrange基而不是模式基的系数。


1
我猜λ,不是吗?τλ
shuhalo 2012年


1
是否应该阅读“ Galerkin方法要求您选择满足问题BC的一组基函数 ”?
knl

@knl:我也这么认为,而另一句话毫无意义。我将进行编辑。
davidhigh

7

一种可能性是将系统矩阵和右侧向量b组装在一起,其中规定的自由度像其他任何自由度一样作为未知数。然后,b 是由与归零规定自由度相关联的行和列,并把一个成相应的对角项,并且适当地修改RHS载体修饰bAbAbb

当您将行归零时,在对角线上放一个并更改rhs,以便强制执行规定的值,系统不再对称。这就是为什么您将列归零并修改rhs向量以考虑规定值的原因。b

另一种可能性是一个非常大的数量添加(通常1E10),以规定的自由度,然后设置RHS条目到p的对角线* ˉ ü,其中ˉ Ü是自由度的规定值。pu¯u¯


6

用有限元方法处理边界条件的一般问题可能会变得非常复杂。但是如果:

  • 是这样的,唯一的拼版小号Û = 0使得表格上的 Ü 是,它是等于一些 ˚F X ÿ δ ΩS(u)S(u)=0uf(x,y)δΩ

  • 你可以欺骗你的元素,以便完全是各种要素的边界δΩ

实际上非常简单。您的方程式:

需要替换为

(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=0
(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=b

其中右侧矢量表示边界条件。b

为了确定,设置确定的值,你基础的元素üδ Ω到一边的价值,他们需要满足的边界条件。在大号[ Ĵ ] ,则应该从排除它们Ĵ但不是(的元素一个对应于这些功能已经确定的,因此它们不应当被包含在基质等式)。然后,设置 - [R = Ñ ΣbuδΩL[gj],gigjgia作为矩阵方程,和的元素的值b应该弹出右出为一体的内积大号操作您的内部基础上与元件的边界基础。

R,gi=j=1NajL[gj],gi=0
bL

感谢您的回答Dan。我不理解以“确定 ...” 开头的段落(我认为这是必不可少的部分)。您能说得更清楚些吗?b
becko

另一方面,我要解决的问题仅满足您设置的第二个条件:边界是矩形。对于第一个条件,边界条件未指定边界处的函数值。边界条件指定(喜欢的东西的函数的二阶导数的线性组合的值,其中,一个b是常数。边界条件也是均匀的。a2u/xy+b2u/x2=0)a,b
becko 2012年

@becko:您可能想更清楚地了解问题中的S。可以用不同的方式处理不同类型的边界条件。LS
2012年

1
我认为,我对问题进行了一些编辑以使其更清楚。我不想发布我要解决的确切问题,因为我想让问题尽可能地笼统。我想我可以更好地理解该方法。
becko

@becko:我们可能想将其移到聊天中,因为它已经很长了。
2012年

2

这是一种称为基础重组的方法,本线程中尚未提及。我引自JP Boyd的书“ Chebyshev和Fourier光谱方法”,第二版,第6.5章:

如果问题 具有不均匀的边界条件,则只要边界条件是线性的,就可以始终用具有均匀边界条件的等效问题代替。第一步是选择一个满足不均匀边界条件的简单函数B x 。然后人们可以定义一个新的变量v X 和新强制函数 X 经由 Ù X v X + X

Lu=f
B(x)v(x)g(x) ,使得修改后的问题是 大号v = ,其中 v X 满足均匀边界条件。...
u(x)v(x)+B(x)g(x)f(x)LB(x)
Lv=g
v(x)

位移函数是任意的,除了它必须满足所有非均匀边界条件的约束。但是,最简单的选择是最好的:最低有效的多项式插值。B(x)

接下来是我自己的解释:

  • “非均匀边界条件”是指包含一个常数,例如一个条件

    xu(x,y)|x=x0=1.

    根据上述方案,通过选择一个方便的功能,你得到的到 X û X Y ^ | x = x 0 = 0。B(x)

    xu(x,y)|x=x0=0.
  • u(x,y) = ijaijϕi(x)φj(y)
    xu(x,y) = ijaijϕi(x)φj(y)
    x=x0
  • ϕi(x)ϕi(x)|x=x0=0i

  • =1ϕi(x)|x=x0=1

    xu(x,y)|x=x0 = ijaijφj(y)
    1yaij

整个方法的好处是,它在相对抽象的水平上工作。必要的成分仅仅是BC运算符的线性和ansatz的乘积基础函数。这样,它也适用于近似方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.