有限元求解2维和3维亥姆霍兹方程,是用fortran matlab等编程语言,还是 Ansys、Ansoft、FLUX等专业软件

有限元求解2维和3维亥姆霍兹方程,是用fortran matlab等编程语言,还是 Ansys、Ansoft、FLUX等专业软件,第1张

ansys、flux之类的功能比较正规点, 设置一下就可以做分析, 但是你有什么新奇点的想法大概是很难实现的了

matlab有个FEM函数包, 也许做这方面能容易些吧。

如果你是公司里要做事情, 用ansys flux这种现成的就好了。 如果是搞研究要琢磨算法或者写论文的话也许matlab好一些。 如果研究完了要实用的话, 可以等matlab做通了转fortran, 速度能快一些

写代码比较省心, 要是能设置好分布式计算的话, 算几天什么数据都有了 。 而且用ansys的话论文里对算法、精度、开销、细节之类的也不太好分析吧

我是说ansys, flux之类的东西方法都是固定的, 不是用来研究的, 如果就具体某类问题你选了一个比较适合的方法,做了一些适当的改进的话, 自己写个程序就要比用这些更实用点。

是的

第一种方法:

1 建立工作目录/ ]"

2 将ABAQUS安装目录\64-pr11\site下的aba_param_dpinc 或 aba_param_spinc拷贝到工作目录,并改名为aba_paraminc;

3 将编译的fortran程序拷贝到工作目录;

4 将obj文件拷贝到工作目录;

5 建立好输入文件inp;

6 运行abaqus job=inp_name user=fortran name即可。

第二种方法:

在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从d出对话框中选择你要调用的子程序文件(后缀为for或f)。

像是fortran77的程序,又不完全是。改为fortran77的程序如下,编译、连接均通过。

PROGRAM JOURNAL

DIMENSION H(61,21),P(61,21)

DATA B,R,C0,AN,EDA,EPSON,aSUM1/6E-2,25E-3,5E-5,6E4,005,07,0/

OPEN(9,FILE='PRESSUREDAT',STATUS='new')

OPEN(8,FILE='FILMDAT',STATUS='new')

PI=31415926

N=61

M=21

DX=20PI/FLOAT(N-1)

DY=1/FLOAT(M-1)

OMEGA=AN20PI/600

U=OMEGAR

ALFA=(R/BDX/DY)2

CALL SUBH(N,M,DX,EPSON,H)

CALL SUBP(N,M,DX,EPSON,ALFA,H,P)

CALL SUBM(N,M,DX,DY,aSUM1,PI,P)

CALL OUTPUT(N,M,DX,DY,H,P)

STOP

END

SUBROUTINE SUBH(N,M,DX,EPSON,H)

DIMENSION H(N,M)

DO 1 I=1,N

SETA=(I-10)DX

DO 2 J=1,M

H(I,J)=10+EPSONCOS(SETA)

2 continue

1 continue

RETURN

END

SUBROUTINE SUBP(N,M,DX,EPSON,ALFA,H,P)

DIMENSION H(N,M),P(N,M)

DO 3 I=1,N

DO 4 J=2,M-1

P(I,J)=05

4 continue

3 continue

DO 5 J=1,M

P(1,J)=00

P(N,J)=00

5 continue

DO 6 I=1,N

P(I,1)=00

P(I,M)=00

6 continue

IK=0

10 C1=00

ALOAD=00

DO 12 I=2,N-1

I1=I-1

I2=I+1

DO 13 J=2,M-1

PD=P(I,J)

J1=J-1

J2=J+1

A1=(05(H(I2,J)+H(I,J)))3

A2=(05(H(I,J)+H(I1,J)))3

A3=ALFA(05(H(I,J2)+H(I,J)))3

A4=ALFA(05(H(I,J)+H(I,J1)))3

P(I,J)=(-DX(H(I2,J)-H(I1,J))+A1P(I2,J)+A2P(I1,J)+A3P(I,J2)+

1 A4P(I,J1))/(A1+A2+A3+A4)

P(I,J)=07PD+03P(I,J)

IF(P(I,J)LT00)P(I,J)=00

C1=C1+ABS(P(I,J)-PD)

ALOAD=ALOAD+P(I,J)

20 CONTINUE

13 continue

12 continue

IK=IK+1

C1=C1/ALOAD

WRITE(,)IK,C1,ALOAD

IF(C1GT1E-7)GOTO 10

RETURN

END

SUBROUTINE SUBM(N,M,DX,DY,aSUM1,PI,P)

DIMENSION P(N,M)

PX=0

PY=0

TEMP=PI/60

DO 30 I=1,N

AI=(I-1)TEMP

DO 35 J=1,M

PX=PX-P(I,J)COS(AI)DXDY

PY=PY+P(I,J)SIN(AI)DXDY

35 continue

30 continue

aSUM1=SQRT(PXPX+PYPY)

WRITE(,)aSUM1

RETURN

END

SUBROUTINE OUTPUT(N,M,DX,DY,H,P)

DIMENSION Y(21),H(N,M),P(N,M)

DO 36 J=1,M

Y(J)=(J-1)DY-05

36 continue

WRITE(8,40)Y(1),(Y(J),J=1,M)

WRITE(9,40)Y(1),(Y(J),J=1,M)

DO 37 I=1,N

AX=(I-10)3600/(N-10)

WRITE(8,40)AX,(H(I,J),J=1,M)

WRITE(9,40)AX,(P(I,J),J=1,M)

37 continue

40 FORMAT(22(E126,1X))

STOP

END

以上就是关于有限元求解2维和3维亥姆霍兹方程,是用fortran matlab等编程语言,还是 Ansys、Ansoft、FLUX等专业软件全部的内容,包括:有限元求解2维和3维亥姆霍兹方程,是用fortran matlab等编程语言,还是 Ansys、Ansoft、FLUX等专业软件、用Fortran 如何编这个程序、请教Fortran问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9346936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存