This example uses the FLUID220 element to simulate transient line source radiation in free space truncated by perfectly matched layers (PML).
The infinite line source located at the center of the domain launches the transient sound wave into free space. The simulation domain is truncated by PML to absorb outgoing sound waves. The transient pressure of the line source is defined as:
The time increment is calculated in terms of the working frequency: f0 = 100 Hz, Δt = 1/(2f0). The mass density and speed of sound are defined for air:
Mass density: ρ0 = 1.21 kg/m3 |
Speed of sound: c0 = 342 m/s |
The air domain is modeled as L×L×H (L = 10×c0×Δt, H = wavelength/8). The PML thickness is assigned to 6 elements with reflection coefficient = 1×10-3. The solution period is 30×Δt.
Command Input - PML Truncation
/batch /nopr /prep7 et,1,220,,1 ! acoustic element et,2,220,,1,,3 ! transient acoustic PML element rho=1.21 ! mass density of air c0=342 ! speed of sound f0=100. ! working frequency delt=1/(2*f0) ! time increment waveL=c0/f0 ! wavelength ! define material mp,sonc,1,c0 mp,dens,1,rho ! define solution domain h=waveL/8 ! mesh size dL=10*c0*delt ! air domain dpml=6*h ! PML thickness *dim,a,array,5 a(1)=-dpml-dL a(2)=a(1)+dpml a(3)=a(2)+dL a(4)=a(3)+dL a(5)=a(4)+dpml *do,i,1,4 *do,j,1,4 block,a(i),a(i+1),a(j),a(j+1),0,h *enddo *enddo vglue,all ! mesh domain vsel,s,loc,x,-dL,dL vsel,r,loc,y,-dL,dL cm,v1,volu esize,h type,1 mat,1 vmesh,all allsel vsel,u,,,v1 type,2 mat,1 vmesh,all allsel ! define loads over solution period t1=4*delt t2=5*delt t3=8*delt t4=9*delt t5=30*delt *dim,tload,table,6,1,1,time tload(1,0)=0 tload(1,1)=0 tload(2,0)=t1 tload(2,1)=0 tload(3,0)=t2 tload(3,1)=1.0 tload(4,0)=t3 tload(4,1)=1.0 tload(5,0)=t4 tload(5,1)=0.0 tload(6,0)=t5 tload(6,1)=0.0 nsel,s,loc,x,0 nsel,r,loc,y,0 d,all,pres,%tload% allsel ! define PML reflection coefficients pmlopt,,,1.e-3,1.e-3,1.e-3,1.e-3,1.e-3,1.e-3 finish ! solution /solu antype,trans kbc,1 trnopt,full,,,,,NMK autots,off eqslv,sparse time,t5 deltim,delt outres,nsol,all solve finish
In the second solution, the transient sound wave propagation is solved in a much larger domain (L = 50×c0×Δt) without PML as a reference to verify the absorption of the PML. The same mesh size is used. The time duration is controlled to avoid the reflected sound wave from the boundary.
Command Input - Reference Case (No PML)
/batch /nopr /prep7 et,1,220,,1 ! acoustic element et,2,220,,1 c0=342 ! speed of sound f0=100. ! working frequency delt=1/(2*f0) ! time increment waveL=c0/f0 ! wavelength ! define material mp,sonc,1,c0 mp,dens,1,rho ! define solution domain h=waveL/8 ! mesh size dL=10*c0*delt ! air domain dD=40*c0*delt ! large propagating domain *dim,a,array,5 a(1)=-dD-dL a(2)=a(1)+dD a(3)=a(2)+dL a(4)=a(3)+dL a(5)=a(4)+dD *do,i,1,4 *do,j,1,4 block,a(i),a(i+1),a(j),a(j+1),0,h *enddo *enddo vglue,all ! mesh domain vsel,s,loc,x,-dL,dL vsel,r,loc,y,-dL,dL cm,v1,volu esize,h type,1 mat,1 vmesh,all allsel vsel,u,,,v1 type,2 mat,1 vmesh,all allsel ! define loads over solution period t1=4*delt t2=5*delt t3=8*delt t4=9*delt t5=30*delt *dim,tload,table,6,1,1,time tload(1,0)=0 tload(1,1)=0 tload(2,0)=t1 tload(2,1)=0 tload(3,0)=t2 tload(3,1)=1.0 tload(4,0)=t3 tload(4,1)=1.0 tload(5,0)=t4 tload(5,1)=0.0 tload(6,0)=t5 tload(6,1)=0.0 nsel,s,loc,x,0 nsel,r,loc,y,0 d,all,pres,%tload% allsel finish ! solution /solu antype,trans kbc,1 trnopt,full,,,,,NMK autots,off eqslv,sparse time,t5 deltim,delt outres,nsol,all solve finish