fei104011320 发表于 2012-10-13 20:14:31

间断有限元的边界问题

我用Nodal DG书里的程序编了一个二维的很简单的程序,方程是u_t+u_x=0,但是在边界处出现了一些问题。希望大神可以帮一下啦。从图中可以很清楚的看到在结果中,入口和出口都有很大的误差,而在内部没有。程序是matlab的。

fei104011320 发表于 2012-10-13 20:37:39

回复 1# fei104011320 的帖子

忘了把图片发上去了...

hihiqianqian 发表于 2012-10-14 16:07:31

我写了一个一维的,也有同样的问题,能交流一下吗?

hihiqianqian 发表于 2012-10-14 16:10:50

我的是一维的Euler方程,捕捉激波的那个,也是边界的地方出现问题。你看的是《交点间断Galerkin方法:算法、分析和应用》这本书吗?能请教你一些问题吗?

fei104011320 发表于 2012-10-14 19:39:34

嗯,看得是《交点间断Galerkin方法:算法、分析和应用》。不过,我也是新手啊。如果有什么问题,大家一起拿出来交流下,说不定能学到更多东西。呵呵

hihiqianqian 发表于 2012-10-15 08:26:59

想请教一个问题:书里第五章里的EulerDriver1D.m中的
   MassMatrix=inv(V')/V;
         cx=ones(Np,1)*sum(MassMatrix*x,1);
这两行代码是什么意思啊?用cx代替x的用处是什么?
一直想不透这个问题,因为如果用cx,方程的边界就会发生改变,用x的话,解就会改变。
不知道你对这个怎么看?

fei104011320 发表于 2012-10-15 19:30:24

回复 6# hihiqianqian 的帖子

你的程序少除一个2,cx = ones(Np,1)*sum(MassMatrix*x,1)/2;
书上有些地方是错误的。你可以在那个作者的网站上找到正确的程序。附录里有网址。

我也用了cx和x分别运行程序,发现两者并没有大的不同啊。cx应该表示单元内x的平均值。比如单元内,不管空间阶数多高,cx都是0.05。个人觉得用cx的原因是怕某个单元跨间断,导致单元内部某个变量值变化很大。从程序上来看的话,MassMatrix*x表示单元在基函数上的投影,sum/2类似一个积分求和命令。这是个人观点,说的不细,不过你可以把矩阵写开,自己好好看看。

[ 本帖最后由 fei104011320 于 2012-10-15 19:33 编辑 ]

hihiqianqian 发表于 2012-10-16 18:19:48

真是太精彩了!
谢谢啦!:victory:

hihiqianqian 发表于 2012-10-16 18:25:12

顺便弱弱的问一下:你是怎样学习间断有限元的?

hihiqianqian 发表于 2012-10-16 18:25:16

顺便弱弱的问一下:你是怎样学习间断有限元的?

fei104011320 发表于 2012-10-26 12:57:02

回复 10# hihiqianqian 的帖子

看书,编程,上网。也没有什么别的方法了。

铁洲宇 发表于 2013-4-9 21:32:32

回复 11# fei104011320 的帖子

求助大虾。间断有限元边界怎么处理。比如已知部分边界值的那种情况,需要删除矩阵的对应行列吗?连续的需要删,间断的边界处理,是不是已经在边界积分项体现出来了

郭石头 发表于 2013-4-12 11:18:51

回复 7# fei104011320 的帖子

我也在看这本书,想请教个问题:
我再改动一维Euler方程的基础上想解一维的NS方程,再加入边界条件和初始条件以及正弦激励后,得到的结果出现了很多冲击波且没有收敛迹象,出现这种现象可能会因为什么原因呢?
求大神指点~~

mql 发表于 2022-12-15 10:34:39

想问下有没有间断算收敛阶的程序
页: [1]
查看完整版本: 间断有限元的边界问题