边界条件的变化
mathematica吧
全部回复
仅看楼主
level 1
neS 楼主
我用Mathematica做波动方程的2D仿真,一端为辐射边界条件,发射一段时间的声波,其他全为硬边界条件,仿真发现声波回到辐射边界条件后被吸收了,而我希望声场在仿真区域里继续反射,也就是当声波发射完后,辐射边界条件变为硬声场边界,请问该怎么处理?如果有相关资料和链接也行。
非常感谢!!![太开心]
2020年11月05日 12点11分 1
level 1
neS 楼主
抛开物理,我们直接来讨论PDE的边界条件是可变的话。。。数学上有所谓的Free boundary problem
如果题主是想考虑这方面的问题的话,可以参考Friedman的书:
VARIATIONAL PRINCIPLES AND FREE-BOUNDARY PROBLEMS
链接:https://www.zhihu.com/question/50216243/answer/120417520
2020年11月06日 09点11分 2
……你是觉得知乎的这个答案回答了你的问题所以决定在这里引用一份吗?可是如果我对问题的理解无误,这段话也没回答你的问题啊,因为按你顶楼的说法,透明边界条件你已经实现了,现在是不知道怎么切换。我觉得你引的这个资料并不会专门谈这个。
2020年11月06日 16点11分
边界的切换实现起来也直接,用分段函数(Piecewise)即可。当然连续性之类的问题可能需要再折腾折腾。
2020年11月06日 16点11分
neS
@xzcyr 这个答案并没有回答我的问题,我也没有这么说。分段函数我稍微试过还是会报错,正在想办法解决,或者继续找其他办法。感谢回复[真棒]
2020年11月07日 03点11分
@neS ……那你把这个答案引过来是想干啥?我一开始还以为是有人看错了问题,定睛一看这1楼和2楼不是同一个人吗。
2020年11月07日 03点11分
level 1
neS 楼主
自由边界问题是一类函数u未知、区域Ω未知的偏微分方程。区域Ω的部分边界Γ在事先并不知道,这被称为自由边界。最典型的例子是冰的融化,如果在任何区域,温度大于冰的熔点,这个区域就会被液态水占据。由冰/液界面形成的边界由偏微分方程的解进行动态控制。(参考https://en.wikipedia.org/wiki/Free_boundary_problem#Obstacle_problems
看了一下,自由边界问题似乎比我考虑的这个问题更加复杂,本想作为一种思路,目前看来好像不太可行,下面我给出其他思路
2020年11月09日 02点11分 3
level 1
neS 楼主
分段函数(Piecewise)办法,我发帖之前就试过,也是最容易想到的办法,直接用分段函数改掉边界条件,
用的是NeumannValue函数,分别采用辐射边界条件和硬边界条件,t<=1时是辐射边界条件,t>1时变为硬边界条件
结果是NDSolveValue::delpde,具体原因还在继续找
下面给出第三个思路
2020年11月09日 02点11分 4
level 1
neS 楼主
NDSolveValue[pde, p, {t, 0, tend}, {x, y} ∈Ω]
pde中包含偏微分方程,边界条件,初始条件
想到改变初始条件分两次进行仿真,第一次仿真到声波从辐射边界条件发射出去后(在波反射回来之前)停止,获得整个仿真区域的压力情况,并将这个作为第二次仿真的初始条件,这时将原先的辐射边界设为硬边界,第二次仿真。
不知道描述得是否清楚,这是我在分段函数办法调试无果后想到的跳过修改边界的办法,如何取出仿真后的数据并将其作为新的初始条件是这个方法的重难点,周末没来得及实施,先给出来大家看看,有问题欢迎告知
最后,转战Stackexchange,这个问题有进展我会更新
2020年11月09日 02点11分 5
level 1
neS 楼主
很长时间没有继续做这个问题,在忙别的事,现在把我看到的得到的一些结论说一下,算是解决这个问题吧[呵呵]
其实声波在时域的数值仿真,在Mathematica的帮助中已经讲的很详细了(请参考帮助文档“Acoustics in the Frequency Domain”),其中介绍了各种边界条件,包括DirichletCondition,NeumannValue和PeriodicBoundaryCondition,这里我只用到了前两种,更具体点说,更改边界条件只用到了NeumannValue
声场边界条件(大致上)包括硬声场边界条件、辐射边界条件、压力源边界条件、吸收边界条件、阻抗边界条件。但是这些边界条件相互之间有关系,比如,在文档给出的例子中,我所考虑的辐射边界条件实际上是压力源边界条件和吸收边界条件的结合,因为考虑实际情况,有向内辐射声波的边界,那么在这个边界上有声波入射时,一定不会是完全再反射回来(也就是硬声场边界的情况)。
那么,如果硬要改成先辐射,然后再切换成硬声场边界条件,只需要去掉其中的吸收边界条件项,只用压力源边界条件即可。
最后附上一张简单的仿真图,
这是一维的仿真,左端为压力源边界,右端为硬边界,绘制出右端边界处的波形图如上图,可以看到,在无损传播的情况下,从压力源发出的一个脉冲不停地在其中来回传播
这个边界切换问题有点脱离实际,不过也算是得到了解决,对我来讲已经够用了。
对于更一般的边界切换,比如从硬边界切换到辐射边界,好像没法通过上面这种方法处理,这样的情况,嗯...有缘再想吧
2020年11月30日 13点11分 6
neS
两个帮助文档,分别是时域和频域的,“Acoustics in the Time Domain”、“Acoustics in the Frequency Domain”
2020年11月30日 13点11分
1