donkeyxu 发表于 2007-3-13 14:32

广义相对论度规计算专用!

http://pickup.mofile.com/9709689597429336
以上是我编的程序函数打包,解压放到matlab目录下就可以。
说明一下每个函数的用途:
Dgqd(a)-------对度规a(当然是矩阵形式给出来的)求导得到的3指标函数
Sdgd(a)-------利用Dgqd所得的三指标重新排列,以便后用。
以上两个函数实际都不怎么会用到,只是为了以下3个函数所编。
Ksf(a)--------------给一个度规a,求出对应的克氏符号
Liman(a)-------求度规a所对应的4指标黎曼张量
Liqi(a)-----------求度规a对应的2指标里奇张量
Rmql(a)---------求度规a所对应的曲率标量

补充:4维以下都适用。请把坐标都换成t,x,y,z形式。算出来,再换回去就可以了.
(一)function a=Dgqd(b)
u=length(b);
v=['t','x','y','z'];
for u1=1:u
    for v1=1:u
      for w1=1:u
            w(u1,v1,w1)=diff(b(u1,v1),v(1,w1),1);
      end
    end
end
a=simplify(w);
(二)function x1=Sdgd(y1)
a=length(y1);
for b=1:a
    for c=1:a
      for d=1:a
            e(b,c,d)=y1(b,c,d)+y1(d,b,c)-y1(c,d,b);
      end
    end
end
x1=simplify(e);
(三)function x1=Ksf(y1)
a=length(y1);
b=inv(y1);
c=Dgqd(y1);
d=Sdgd(c);
for m=1:a
    for n=1:a
      for q=1:a
            e=0;
            for m1=1:a
                e=e+1/2*b(m,m1)*d(m1,n,q);
            end
            f(m,n,q)=e;
      end
    end
end
x1=simplify(f);
(四)function x1=Liman(y1)
v=['t','x','y','z'];
a=length(y1);
c=Ksf(y1);
for m1=1:a
    for m2=1:a
      for m3=1:a
            for m4=1:a
                d1(m1,m2,m3,m4)=diff(c(m4,m1,m3),v(1,m2),1)-diff(c(m4,m2,m3),v(1,m1),1);
            end
      end
    end
end
for n1=1:a
    for n2=1:a
      for n3=1:a
            for n4=1:a
                e=0;
                for n5=1:a
                  e=e+c(n5,n3,n1)*c(n4,n2,n5)-c(n5,n3,n2)*c(n4,n1,n5);
                end
                d2(n1,n2,n3,n4)=e;
            end
      end
    end
end
x1=simplify(d1+d2);
(五)function x1=Liqi(y1)
a=length(y1);
b=Liman(y1);
for m1=1:a
    for m2=1:a
      e=0;
      for n1=1:a
            e=e+b(m1,n1,m2,n1);
      end
      d(m1,m2)=e;
    end
end
x1=simplify(d);
(六)function x1=Rmql(y1)
a=length(y1);
b=inv(y1);
c=Liqi(y1);
for c1=1:a
    for d1=1:a
      e=0;
      for c2=1:a
            e=e+b(c1,c2)*c(d1,c2);
      end
      d(c1,d1)=e;
    end
end
f=0;
for e1=1:a
    f=f+d(e1,e1) ;
end
x1=simplify(f);

[ 本帖最后由 donkeyxu 于 2007-3-15 18:19 编辑 ]

xjzuo 发表于 2007-3-13 15:22

回复

请将你的资料直接贴出来或者上传,否则有打广告的嫌疑.
另:这种资料好象在Mathworks的网页上已经有人贴过.
  当然,我本人没有看到你的代码,所以也没有否认的意思.

[ 本帖最后由 xjzuo 于 2007-3-13 15:24 编辑 ]

donkeyxu 发表于 2007-3-14 13:12

上传rar 文件,可以?

xjzuo 发表于 2007-3-14 17:02

回复

不是很大的话,可以用附件试试.
再不行,麻烦先解压,再分别贴上来.
如果是原创,更好;
不是的话,"资料应助"我们也会鼓励,并加分的.

donkeyxu 发表于 2007-3-15 18:20

源代码贴出来了

eight 发表于 2007-3-15 20:08

原帖由 donkeyxu 于 2007-3-15 18:20 发表
源代码贴出来了


最好改进一下,这么多循环看到就害怕了

xjzuo 发表于 2007-3-15 23:03

回复

能否举几个例子怎么用你给出的函数?
程序待仔细看看,不过的确循环多了一些.
另: 问个题外话:你本身搞 广义相对论的研究吗?
   我以前对这方面也稍微研究过一下,微分几何也专门学过一阵子.

[ 本帖最后由 xjzuo 于 2007-3-15 23:09 编辑 ]

donkeyxu 发表于 2007-3-16 18:01

原帖由 eight 于 2007-3-15 20:08 发表



最好改进一下,这么多循环看到就害怕了
梁的微分几何,我也看了。我做的东西和宇宙学有关联。
循环多,是因为求和多啊,所以麻烦,才编出来的用机器算。

xjzuo 发表于 2007-3-16 22:48

原帖由 donkeyxu 于 2007-3-16 18:01 发表

梁的微分几何,我也看了。我做的东西和宇宙学有关联。
循环多,是因为求和多啊,所以麻烦,才编出来的用机器算。

建议举几个例子说明一下几个函数的应用.
如果你研究宇宙学,能否讲讲爱因斯坦场方程的一些数值解法.

我们知道,几种特解已经被人研究过了(解析解).
例如:
1.真空爱因斯坦方程的 史瓦西 球对称解;
2.夫里德曼的非静态宇宙解.
3. 克尔-纽曼解 等等.

其它诸如:
体球的爱因斯坦场方程内部严格解研究,爱因斯坦场方程的严格双孤立波解,...
不知donkeyxu是否研究过,如果是, 我很想交流一下.
我本人一直对这方面有兴趣,也常常会关注一下这方面的研究进展,虽然我本身已经不专门研究这个方向了.

[ 本帖最后由 xjzuo 于 2007-3-16 22:53 编辑 ]
页: [1]
查看完整版本: 广义相对论度规计算专用!