Author |
Message |
gqzhang (zgqfem)
Member Username: zgqfem
Post Number: 4 Registered: 07-2003
| Posted on Wednesday, August 27, 2003 - 08:45 pm: | |
I am badly interested in the multi-field problems, which FLEXPDE claimed to be able to solve. I modified one example from the help demo, just add one equation, the problem is when the added equation(the pressure equation)is time independent(without the right item), the solution can be obtained; but when the problem is time-dependent(with the right item), it seems impossible. The following is the script, hope any one could help me. Thanks very much. title "pressure-Elastic Stress" select errlim = 1.0e-2 nodelimit=2000 ngrid=6 variables Pp { declare the system variables to be Tp, Up and Vp } Up Vp definitions kx { declare thermal conductivity - values come later } ky E { declare Young's Modulus - values come later } nu { declare Poisson's Ratio - values come later } { define the constitutive relations } G = E/((1.+nu)*(1.-2.*nu)) C11 = G*(1-nu) C12 = G*nu C22 = G*(1-nu) C33 = G*(1-2*nu)/2 b=0.8e1 { define some utility functions } ex = dx(Up) ey = dy(Vp) gxy = dy(Up) + dx(Vp) Sx = C11*ex + C12*ey - b*Pp Sy = C12*ex + C22*ey - b*Pp Txy = C33*gxy initial values Pp = 0.0 { give FlexPDE an estimate of variable range } Up = 1.e-5 Vp = 1.e-5 equations 1/0.006* (dx[kx*dx(Pp)] + dy[ky*dy(Pp)]) =2.0*dt(ex+ey) {pressure equation} dx[Sx] { the U-displacement equation } + dy[txy] = 0. dx[txy] { the V-displacement equation } + dy[sy] = 0. boundaries region 1 { region one defines the problem domain as all copper and sets the boundary conditions for the problem } kx = 1e-3 ky= 1e-3 E = 5e9 nu = 0.23 start(0,0) {bottom} natural(Up)=0 natural(Vp)=0 natural(Pp)=0 line to (2.5,0) {bottom} natural(Up)=0 natural(Vp)=0 value(Pp)=10 line to (5,0) {right} value(Up)=0. natural(Vp)=0 natural(Pp)=0 line to(5,1.5) {up} natural(Up)=0 value(Vp)=0. natural(Pp)=0. line to(0,1.5) {left} value(Up)=0 natural(Vp)=0 value(Pp)=0 line to finish time from 0 to 800 plots for t=0,10,100,800 contour(Pp) as "pressure" contour(Up) as "X-displacement" contour(Vp) as "Y-displacement" contour(Sx) as "X-Stress" contour(Sy) as "Y-Stress" contour(Txy) as "Shear Stress" vector(Up,Vp) as "displacement" tecplot(Pp,up,vp,sx,sy,txy) end 48691 |
Patricio A. Greco (pagreco)
Member Username: pagreco
Post Number: 7 Registered: 08-2003
| Posted on Thursday, August 28, 2003 - 12:00 am: | |
I'm not expert in this matter , but reading the equations looks like an excitation source (time dependent) are needed. I replaced : 1/0.006* (dx[kx*dx(Pp)] + dy[ky*dy(Pp)]) =2.0*dt(ex+ey) For:1/0.006* (dx[kx*dx(Pp)] + dy[ky*dy(Pp)])+ Excitation =2.0*dt(ex+ey) Where: Excitation= 100*ustep(t-1e-3) And the system gives a result. |
gqzhang (zgqfem)
Member Username: zgqfem
Post Number: 5 Registered: 07-2003
| Posted on Thursday, August 28, 2003 - 04:50 am: | |
thanks for your reply, but I think your modification is not equivalent to the original. for example in the following: EQUATIONS div(fluxd)+rcp*dt( pressure)=0 if I put an exitation source in it, you will find the two solutions are totally different. And I am not so familiar with the excitation source, such as in what conditions the excitation source should be added, and the reason for that. I hope you can explain further for me, please, if needed. TITLE 'TRANSIENT PRESSURE' SELECT errlim=1e-3 nodelimit=900 ngrid=7 VARIABLES pressure(RANGE=10000) DEFINITIONS mu= 1e-9 kper= 0.3e-15 comp= 1.7e-3 fai= 0.15 Q= 1e-5 Pai= 3.1415926 R1=0.1143/2 R2=R1*50 k=kper rcp=fai*comp pressurei=0 fluxd_x=-k/mu*dx(pressure) fluxd_y=-k/mu*dy(pressure) fluxd=vector( fluxd_x, fluxd_y) fluxdm=magnitude( fluxd) q0=Q/(2*Pai*R1) INITIAL VALUES pressure=pressurei EQUATIONS div(fluxd)+rcp*dt( pressure)=0 BOUNDARIES region 'domain' { k=0.15 rcp=1} START (R1,0) NATURAL(PRESSURE)=0 LINE TO (R2,0) VALUE(PRESSURE)=0 ARC (RADIUS=R2) TO (0,R2) NATURAL(PRESSURE)=0 LINE TO (0,R1) value(PRESSURE)=60 ARC (CENTER=0,0) TO (R1,0) TIME from 0 to 800 PLOTS for t=0.3,5,15,30,50,70,90,120,130,500,800 contour( pressure) Histories history (pressure) at (r1,0) (2*r1,0) (3*r1,0) (4*r1,0) (5*r1,0) (6*r1,0) (7*r1,0) (8*r1,0) (9*r1,0) (10*r1,0) history ( FLUXDM) at (r1*1.1,0) {(0,r1) (r1/sqrt(2),r1/sqrt(2))} range=(0,4e-12) history(fluxdm*2*pai*r1) at (r1,0) end
|
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 23 Registered: 06-2003
| Posted on Thursday, August 28, 2003 - 07:08 pm: | |
I ran the problem as you initially posted it on FlexPDE verison 3.10a, and it ran to completion in 50 time steps. It showed no signs of unhappiness. So I don't know what it was that you interpreted as failure. What version of FlexPDE are you running?
|
gqzhang (zgqfem)
Member Username: zgqfem
Post Number: 6 Registered: 07-2003
| Posted on Thursday, August 28, 2003 - 08:40 pm: | |
I run flexpde 2.20. I want to know the difference between them are large? thansk |
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 24 Registered: 06-2003
| Posted on Sunday, August 31, 2003 - 02:33 pm: | |
The "Revision Log" button on our website will show a list of changes made throughout the version 3 series. Most importantly for your problem, the time integration method was changed in version 3 from a one-step method with sliding centering to a two-step implicit quadratic. This can make a significant difference in some problems. In version 2, you can select TCENTER=1 to choose an implicit backward difference form that is unconditionally stable, but somewhat inaccurate. If you also specify a smaller ERRLIM, it might satisfy your needs.
|
|