This example problem demonstrates the use of FLUID221 to predict the acoustic scattering of a planar incident wave of an infinite cylindrical shell (radius = 1 m, thickness = 0.02 m).
The FSI between the acoustic incident wave and the structural shell is taken into account.
The coupled harmonic problem uses the symmetric formulation, requiring fewer computational resources than other formulations.
The incident plane wave is defined by the magnitude p0 = 1, the incident angle θ = 90° and φ = 180°.
PML is used for the truncation of the open space. For more information, see Perfectly Matched Layers (PML) in the Mechanical APDL Theory Reference.
/batch,list /com,Plane wave FSI scattering from a cylindrical shell /title,FSI Scattering of Cylindrical Shell /nopr /prep7 pi=3.1415926535 ! material properties rho=1025 ! water mass density c0=1520 ! sound speed ra=1 ! radius of cylindrical shell thick=0.02 ! thickness of cylindrical shell ka=2 ! product of wavenumber and radius k0=ka/ra freq=k0*c0/(2.*pi) ! frequency wavel=c0/freq ! wavelength h=wavel/10 ! nwsh size ! define element properties et,11,200,7 ! mesh element et,1,220,2,0 ! 20-node element using symmetric formula et,2,220,2,1,,1 ! pml element using symmetric formula et,3,281 ! shell element mp,dens,1,rho ! water density mp,sonc,1,c0 ! water sound speed mp,ex,2,2.1e11 ! solid young module mp,dens,2,7840 ! solid density mp,nuxy,2,0.3 ! solid Minor Poisson's ratios ! define the model rb=ra+0.5*wavel rc=rb+0.5*wavel nz=2 zl=nz*h cyl4,0,0,0,0,ra,180,0 *dim,a,array,4 *dim,b,array,3 a(1)=-rc a(2)=-rb a(3)=rb a(4)=rc b(1)=0 b(2)=rb b(3)=rc *do,i,1,3 *do,j,1,2 rect,a(i),a(i+1),b(j),b(j+1) *enddo *enddo asba,4,1,,dele,dele aglue,all asel,s,loc,x,a(2),a(3) asel,r,loc,y,b(1),b(2) cm,aa,area alls ! mesh the model esize,h type,11 amesh,all ! mesh 2d surface asel,s,,,aa type,1 ! extrude 2d element to 3d mat,1 esize,,nz vext,all,,,0,0,zl alls asel,s,loc,z,0 asel,u,,,aa type,2 mat,1 esize,,nz vext,all,,,0,0,zl ! extrude 2d element to 3d pml alls ! clean up 2d element asel,s,loc,z,0 aclear,all etdel,11 nummgr,all ! flag fsi interface csys,1, nsel,s,loc,x,ra sf,all,fsi alls csys,0 ! define shell element sectype,,shell secdata,thick,2 ! shell with thickness=0.02 and material 2 csys,1 nsel,s,loc,x,ra type,3 mat,2 esurf ! generate shell element alls csys,0 ! define boundary condition nsel,all d,all,uz,0 nsel,s,loc,y,b(1) d,all,uy,0 alls ! incident plane wave p0=1 phi=180 theta=90 awave,1,plan,pres,ext,p0,0,phi,theta,,rho,c0 fini ! perform solution /solu asol,scat,on ! activate scattered field formula ascres,total ! output total field eqslv,sparse ! sparse direct solver antype,harmic ! harmonic analysis harfrq,freq ! define working frequency solve fini /post1 ! calculate the plane wave value on the shell surface dtorad=3.1415926535/180. kx=-k0*sin(theta*dtorad)*cos(phi*dtorad) csys,1 nsel,s,loc,z,0 nsel,r,loc,x,ra ! nodes on shell csys *get,ndmax,NODE,0,COUNT *dim,ang1,array,ndmax *dim,psr,array,ndmax *dim,psi,array,ndmax *dim,pang,array,ndmax node=0 *do,i,1,ndmax node=ndnext(node) xx=nx(node) yy=ny(node) pang(i)=kx*xx ! plane wave phase angle ang1(i)=atan2(yy,xx)/dtorad ! nodal angle in polar coordinate *enddo ! real solution of the pressure set,1,1 node=0 *do,i,1,ndmax node=ndnext(node) pr0=p0*cos(pang(i)) ! real part of incident plane wave *get,pp,NODE,node,pres ! real part of total pressure solution psr(i)=pp-pr0 ! real part of scattered wave *enddo ! imaginary solution of the pressure set,1,1,,1 node=0 *do,i,1,ndmax node=ndnext(node) pi0=-p0*sin(pang(i)) ! imaginary part of incident plane wave *get,pp,NODE,node,pres ! imaginary part of total pressure solution psi(i)=pp-pi0 ! imaginary part of scattered wave *enddo ! sort results in terms of angles *do,i,1,ndmax-1 *do,j,i,ndmax *if,ang1(j),lt,ang1(i),then tmp=ang1(i) ang1(i)=ang1(j) ang1(j)=tmp tmp=psr(i) psr(i)=psr(j) psr(j)=tmp tmp=psi(i) psi(i)=psi(j) psi(j)=tmp *endif *enddo *enddo /com,****************************************************************** /com,* Mechanical APDL results: scattered pressure on the shell surface * /com,****************************************************************** /com, Angle (Deg) P_REAL P_IMAG /com, *do,i,1,ndmax ang0=ang1(i) p0r=psr(i) p0i=psi(i) *vwrite,ang0,p0r,p0i (2x,f7.2,17x,g12.5,6x,g12.5) *enddo fini