我目前正在尝试通过实现非标准边界条件来解决 FEniCS 中的 Monge-Ampere 方程。
边界条件,要求解的梯度必须将原始域的边界映射到另一个指定域。
当目标域被规定为单位圆时,实现非常简单,我通过将以下内容放入我的系统中来解决它:
+(dot(grad(uh),grad(uh))-1)*vh*ds\ (1)
其中 uh 是试验函数,vh 是测试函数。
当考虑更复杂的目标空间时,例如正方形 [−1,1]×[−1,1] 事情变得更加困难,因为手工解决并不是那么简单,所以我的想法是使用距离函数.
为此,我解决了 Eikonal 方程的稳定版本,其解决方案是有符号距离函数,然后我的想法是将 (1) 替换为:
+E(grad(uh))*vh*ds
其中 E 是 Eikonal 方程的解,但是当我尝试实现它时,我得到一个错误,指出函数需要标量参数,
有没有办法以第二个微分形式对解决方案进行编程以接受 grad(uh) 作为输入?
谢谢大家的时间!