SPEED
MAKE_DAMPING_MATRIX.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine make_damping_matrix (nn, ct, ww, dd, rho, gamma, a11, a12, a13, a21, a22, a23, a31, a32, a33, b11, b12, b13, b21, b22, b23, b31, b32, b33, gg1, gg2, gg3, dd1, dd2, dd3, mc_el, mck_el)
 Make damping matrices.
 

Function/Subroutine Documentation

◆ make_damping_matrix()

subroutine make_damping_matrix ( integer*4  nn,
real*8, dimension(nn)  ct,
real*8, dimension(nn)  ww,
real*8, dimension(nn,nn)  dd,
real*8, dimension(nn,nn,nn)  rho,
real*8, dimension(nn,nn,nn)  gamma,
real*8  a11,
real*8  a12,
real*8  a13,
real*8  a21,
real*8  a22,
real*8  a23,
real*8  a31,
real*8  a32,
real*8  a33,
real*8  b11,
real*8  b12,
real*8  b13,
real*8  b21,
real*8  b22,
real*8  b23,
real*8  b31,
real*8  b32,
real*8  b33,
real*8  gg1,
real*8  gg2,
real*8  gg3,
real*8  dd1,
real*8  dd2,
real*8  dd3,
real*8, dimension(nn,nn,nn)  mc_el,
real*8, dimension(nn,nn,nn)  mck_el 
)

Make damping matrices.

Author
Ilario Mazzieri
Date
September, 2013
Version
1.0
Parameters
[in]nnnumber of 1-D GLL nodes
[in]xqGLL nodes
[in]wqGLL weights
[in]ddspectral derivatives matrix
[in]rhomass density
[in]gammadamping coefficient
[in]A11costant values for the bilinear map
[in]A12costant values for the bilinear map
[in]A13costant values for the bilinear map
[in]A21costant values for the bilinear map
[in]A22costant values for the bilinear map
[in]A23costant values for the bilinear map
[in]A31costant values for the bilinear map
[in]A32costant values for the bilinear map
[in]A33costant values for the bilinear map
[in]B11costant values for the bilinear map
[in]B12costant values for the bilinear map
[in]B13costant values for the bilinear map
[in]B21costant values for the bilinear map
[in]B22costant values for the bilinear map
[in]B23costant values for the bilinear map
[in]B31costant values for the bilinear map
[in]B32costant values for the bilinear map
[in]B33costant values for the bilinear map
[in]GG1costant values for the bilinear map
[in]GG2costant values for the bilinear map
[in]GG3costant values for the bilinear map
[in]DD1costant values for the bilinear map
[in]DD2costant values for the bilinear map
[in]DD3costant values for the bilinear map
[out]mc_elviscous forces proportional to the velocity field
[out]mck_elviscous forces proportional to the displacement field

Definition at line 57 of file MAKE_DAMPING_MATRIX.f90.

63
64
65 implicit none
66
67 integer*4 :: nn
68 integer*4 :: i,j,k
69
70 real*8 :: a11,a12,a13,a21,a22,a23,a31,a32,a33
71 real*8 :: b11,b12,b13,b21,b22,b23,b31,b32,b33
72 real*8 :: gg1,gg2,gg3,dd1,dd2,dd3
73 real*8 :: dxdx,dxdy,dxdz,dydx,dydy,dydz,dzdx,dzdy,dzdz,det_j
74
75 real*8, dimension(nn) :: ct,ww
76
77 real*8, dimension(nn,nn) :: dd
78
79 real*8, dimension(nn,nn,nn) :: rho,gamma
80 real*8, dimension(nn,nn,nn) :: mc_el,mck_el
81
82
83
84 do k = 1,nn
85 do j = 1,nn
86 do i = 1,nn
87 dxdx = a11 +b12*ct(k) +b13*ct(j) &
88 + gg1*ct(j)*ct(k)
89 dydx = a21 +b22*ct(k) +b23*ct(j) &
90 + gg2*ct(j)*ct(k)
91 dzdx = a31 +b32*ct(k) +b33*ct(j) &
92 + gg3*ct(j)*ct(k)
93
94 dxdy = a12 +b11*ct(k) +b13*ct(i) &
95 + gg1*ct(k)*ct(i)
96 dydy = a22 +b21*ct(k) +b23*ct(i) &
97 + gg2*ct(k)*ct(i)
98 dzdy = a32 +b31*ct(k) +b33*ct(i) &
99 + gg3*ct(k)*ct(i)
100
101 dxdz = a13 +b11*ct(j) +b12*ct(i) &
102 + gg1*ct(i)*ct(j)
103 dydz = a23 +b21*ct(j) +b22*ct(i) &
104 + gg2*ct(i)*ct(j)
105 dzdz = a33 +b31*ct(j) +b32*ct(i) &
106 + gg3*ct(i)*ct(j)
107
108 det_j = dxdz * (dydx*dzdy - dzdx*dydy) &
109 - dydz * (dxdx*dzdy - dzdx*dxdy) &
110 + dzdz * (dxdx*dydy - dydx*dxdy)
111
112
113
114 mc_el(i,j,k) = 2 * gamma(i,j,k) * rho(i,j,k) &
115 * det_j * ww(i) * ww(j) * ww(k)
116
117 mck_el(i,j,k) = (gamma(i,j,k)**2) * rho(i,j,k) &
118 * det_j * ww(i) * ww(j) * ww(k)
119
120
121 enddo
122 enddo
123 enddo
124
125 return
126