急求助:耦合场中的迭代问题
[font=宋体][size=14pt]问题描述:首先我的问题是计算电磁场与热场耦合计算,有点类似在微波炉中加热一个物体。在电磁场中计算时,要用到这个物体的介电常数[/size][/font][font=宋体][size=14pt]ε,这个值和温度T还有时间t有关系,通过在热场计算后得出的温度T和时间t来更新介电常数ε,然后继续计算下一秒。最后是要观察这个物体的温升。[/size][/font][font=宋体][size=14pt]该过程在理论上需要通过以下的几步来实现,我的问题是不知道在COMSOL里面怎么实现。所以请帮帮忙,给点意见。[/size][/font]
[size=14pt][font=Times New Roman][/font][/size]A}RN7n&O
[font=宋体][size=14pt]第一个时间步([/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt]):已知[/size][/font][font=宋体][size=14pt]ε[/size][/font][font=宋体][size=14pt]和初温[/size][/font][size=14pt][font=Times New Roman]T0 [/font][/size][font=宋体][size=14pt],通过电磁场与热场的耦合计算,计算出一物体的内各个结点的温度[/size][/font][size=14pt][font=Times New Roman]T1[/font][/size][font=宋体][size=14pt]。[/size][/font][font=宋体][size=14pt]→[/size][/font][size=14pt][font=Times New Roman]KT1=f(T1) [/font][/size][font=宋体][size=14pt](已知此函数)[/size][/font][font=宋体][size=14pt]→[color=red]tx1=[/color][color=red]([/color][/size][/font][size=14pt][font=Times New Roman]KT1*[/font][/size][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][font=Times New Roman]/K[/font][/size][font=宋体][size=14pt](已知[/size][/font][size=14pt][font=Times New Roman]K[/font][/size][font=宋体][size=14pt],[/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][font=宋体][size=14pt]→εx1=f(tx1)[/size][/font][size=14pt][font=Times New Roman] [/font][/size][font=宋体][size=14pt](已知此函数)[/size][/font][font=宋体][size=14pt]→ε1=f(εx1)[/size][/font][size=14pt][font=Times New Roman] [/font][/size][font=宋体][size=14pt](已知此函数)[/size][/font][font=宋体][size=14pt]→此时已经更新了介电常数。[/size][/font]i1`'gf}M)Br7?3@a
[size=14pt][font=Times New Roman][/font][/size]\4m^OZ-t9X1L9M
[font=宋体][size=14pt]第二个时间步([/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt]):通过上一步已经计算出来的[/size][/font][size=14pt][font=Times New Roman]T1[/font][/size][font=宋体][size=14pt]和更新的介电常数[/size][/font][font=宋体][size=14pt]ε1,通过耦合计算,得出各结点的温度T2。→[/size][/font][size=14pt][font=Times New Roman]KT2=f(T2) [/font][/size][font=宋体][size=14pt](已知此函数)[/size][/font][font=宋体][size=14pt]→[color=red]tx2=[/color][color=red](([/color][/size][/font][size=14pt][font=Times New Roman]KT2[/font][/size][font=宋体][size=14pt]+[/size][/font][size=14pt][font=Times New Roman]KT1[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][font=Times New Roman]*[/font][/size][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][font=Times New Roman]/K[/font][/size][font=宋体][size=14pt](已知[/size][/font][size=14pt][font=Times New Roman]K[/font][/size][font=宋体][size=14pt],[/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][font=宋体][size=14pt]→εx2=f(tx2)[/size][/font][size=14pt][font=Times New Roman] [/font][/size][font=宋体][size=14pt](已知此函数)[/size][/font][font=宋体][size=14pt]→ε2=f(εx2)[/size][/font][size=14pt][font=Times New Roman] [/font][/size][font=宋体][size=14pt](已知此函数)[/size][/font][font=宋体][size=14pt]→此时已经更新了介电常数。[/size][/font]T'C2@ t#v(uO
[font=宋体][size=14pt][/size][/font])I!];UK6~\mY~s
[font=宋体][size=14pt]第三个时间步([/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt]):和前面两步不同的地方只有[/size][/font][font=宋体][size=14pt]tx3=[/size][/font][font=宋体][size=14pt](([/size][/font][size=14pt][font=Times New Roman]KT3[/font][/size][font=宋体][size=14pt]+[/size][/font][size=14pt][font=Times New Roman]KT2[/font][/size][font=宋体][size=14pt]+[/size][/font][size=14pt][font=Times New Roman]KT1[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][font=Times New Roman]*[/font][/size][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][font=Times New Roman]/K[/font][/size][font=宋体][size=14pt](已知[/size][/font][size=14pt][font=Times New Roman]K[/font][/size][font=宋体][size=14pt],[/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][/size]
[font=宋体][size=14pt]第四个时间步([/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt]):和前面两步不同的地方只有[/size][/font][font=宋体][size=14pt]tx4=[/size][/font][font=宋体][size=14pt](([/size][/font][size=14pt][font=Times New Roman]KT4[/font][/size][font=宋体][size=14pt]+[/size][/font][size=14pt][font=Times New Roman]KT3[/font][/size][font=宋体][size=14pt]+[/size][/font][size=14pt][font=Times New Roman]KT2[/font][/size][font=宋体][size=14pt]+[/size][/font][size=14pt][font=Times New Roman]KT1[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][font=Times New Roman]*[/font][/size][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][font=Times New Roman]/K[/font][/size][font=宋体][size=14pt](已知[/size][/font][size=14pt][font=Times New Roman]K[/font][/size][font=宋体][size=14pt],[/size][/font][font=宋体][size=14pt]Δ[/size][/font][size=14pt][font=Times New Roman]t[/font][/size][font=宋体][size=14pt])[/size][/font][size=14pt][/size]'o:X+Ik6m3D
[size=14pt][font=Times New Roman][/font][/size]
[font=宋体][size=14pt]后面以此类推。[/size][/font][size=14pt][/size]
[size=14pt][font=Times New Roman][/font][/size]`|.TL!Wz8i+E
[font=宋体][size=14pt]我现在就是不知道怎么解决这个问题。希望能帮忙解答![/size][/font][size=14pt][/size]
[[i] 本帖最后由 perfect800 于 2008-4-30 10:13 编辑 [/i]] 希望大虾们帮我看看!
回复 2# 的帖子
你陈述的其实可以看作是编程的流程了,用comsol 计算,你只需要把耦合方程提正确了,初始条件设置实际,计算得想要的结果就可以了,具体如何实现,是算法问题了吧 太同意你的说法了,问问题的还是仔细了解一下comsol的工作过程,你这样写问题,你都是程序流程图了,拜托。 谢谢楼上的二位的指教。我问题的关键,是因为我的一个参数——介电常数是和温度的历史相关的,而且每计算一步就要用到前面所有计算出来的温度值,但我不知道怎么在COMSOL里利用起来。因为似乎温度每计算一次以后,就把前面的温度给覆盖了。 请教各位大虾了!!! 请参考:[url]http://www.simwe.com/forum/thread-837878-1-1.html[/url]
页:
[1]