CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
inversewavspd.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine inversewavspd (xi, et, c, rho, a)
 

Function/Subroutine Documentation

◆ inversewavspd()

subroutine inversewavspd ( real*8, intent(in)  xi,
real*8, intent(in)  et,
real*8, dimension(3,3,3,3), intent(in)  c,
real*8, intent(in)  rho,
real*8, intent(inout)  a 
)
20 !
21 ! Calculates the propagation wave speed in a material, up to its 21
22 ! constants. Subroutine for calcmatwavsps.f
23 
24 ! Based on the procedure in:
25 ! C. Lane. The Development of a 2D Ultrasonic Array Inspection
26 ! for Single Crystal Turbine Blades.
27 ! Switzerland: Springer International Publishing, 2014.
28 !
29 ! CARLO MONJARAZ TEC (CMT)
30 !
31 ! INPUT:
32 !
33 ! xi,et: values within a square domain between -1 and 1.
34 ! correlate in a unique way with 0<=phi<=pi and
35 ! -pi<=theta<=pi
36 !
37 ! elas: c(3,3,3,3) - The elasticity vector
38 !
39 ! rho: double - Density of the material
40 !
41 !
42 ! OUTPUT:
43 !
44 ! a: inverse of the wave speed
45 !
46  implicit none
47 !
48  integer i,j,k,l,ier,matz,ndim
49 !
50  real*8 c(3,3,3,3),rho,xn(3),cm(3,3,3),a,xi,et,
51  & cmm(3,3),dd,al(3),alz(3,3),fv1(3),fv2(3),
52  & theta,phi,pi,p3(3),v(3),
53  & speed
54 !
55  intent(in) xi,et,c,rho
56 !
57  intent(inout) a
58 !
59  pi=4.d0*datan(1.d0)
60 !
61  theta=xi*pi
62  phi=(et+1.d0)*pi/2.d0
63 !
64  do l=1,3
65  v(l)=0.
66  do k=1,3
67  cmm(k,l)=0.
68  do j=1,3
69  cm(j,l,k)=0.
70  enddo
71  enddo
72  enddo
73 !
74  xn(1)=dcos(theta)*dsin(phi)
75  xn(2)=dsin(theta)*dsin(phi)
76  xn(3)=dcos(phi)
77 !
78 ! c ------------ PER EAcH DIREcTION find wave speed-----------------------
79 !
80  do l=1,3
81  do k=1,3
82  do i=1,3
83  do j=1,3
84  cm(l,k,i)=cm(l,k,i)+c(l,k,j,i)*xn(j)
85  enddo
86  enddo
87  enddo
88  enddo
89 !
90  do k=1,3
91  do i=1,3
92  do l=1,3
93  cmm(k,i)=cmm(k,i)+cm(l,k,i)*xn(l)
94  enddo
95  enddo
96  enddo
97 !
98  ndim=3
99  matz=1
100  ier=0
101 !
102 ! ---------reset vars for EIGvALUES
103 !
104  do j=1,3
105  al(j)=0.
106  fv1(j)=0.
107  fv2(j)=0.
108  do i=1,3
109  alz(j,i)=0.
110  enddo
111  enddo
112 !
113  call rs(ndim,ndim,cmm,al,matz,alz,fv1,fv2,ier)
114 !
115 ! ------normalizing eigenvectors to P vectors----------
116 !
117  dd=dsqrt(alz(1,3)**2+alz(2,3)**2+alz(3,3)**2)
118  p3(1)=alz(1,3)/dd
119  p3(2)=alz(2,3)/dd
120  p3(3)=alz(3,3)/dd
121 !
122  do l=1,3
123  do k=1,3
124  cmm(k,l)=0.
125  do j=1,3
126  cm(j,l,k)=0.
127  enddo
128  enddo
129  enddo
130 !
131  do l=1,3
132  do j=1,3
133  do i=1,3
134  do k=1,3
135  cm(l,j,i)=cm(l,j,i)+c(l,k,j,i)*xn(k);
136  enddo
137  enddo
138  enddo
139  enddo
140 !
141  do l=1,3
142  do j=1,3
143  do i=1,3
144  cmm(l,j)=cmm(l,j)+cm(l,j,i)*p3(i);
145  enddo
146  enddo
147  enddo
148 !
149  do j=1,3
150  do l=1,3
151  v(j)=v(j)+cmm(l,j)*p3(l)
152  enddo
153  enddo
154 !
155  dd=dsqrt(v(1)**2+v(2)**2+v(3)**2)
156  speed=dd/dsqrt(rho*al(3))
157 c speed=dsqrt(dd/rho)
158 !
159 ! inverse wave speed
160 !
161  a=1.d0/speed
162 !
163  return
subroutine rs(nm, n, a, w, matz, z, fv1, fv2, ierr)
Definition: rs.f:27
Hosted by OpenAircraft.com, (Michigan UAV, LLC)