53 SUBROUTINE cal_shdx(shdx,meshpos,ndim,nnode,nintk,surf_elem, &
80 INTEGER ndim, nnode, nintk
81 DOUBLE PRECISION shdx(ndim,nnode,nintk), &
83 DOUBLE PRECISION xi, eta
84 DOUBLE PRECISION eighth,one,
zero
85 INTEGER igauss, knode,
i,
j, iface, surf_elem(3,4)
87 DOUBLE PRECISION shape(3), dshape(2,3),
jacobian(2,3)
103 shape(3) = one - xi -eta
112 n1 = surf_elem(1,iface)
113 n2 = surf_elem(2,iface)
114 n3 = surf_elem(3,iface)
117 jacobian(1,1) = 1.d0/(meshpos(1,n1)-meshpos(1,n3))
118 jacobian(1,2) = 1.d0/(meshpos(2,n1)-meshpos(2,n3))
119 jacobian(1,3) = 1.d0/(meshpos(3,n1)-meshpos(3,n3))
120 jacobian(2,1) = 1.d0/(meshpos(1,n2)-meshpos(1,n3))
121 jacobian(2,2) = 1.d0/(meshpos(2,n2)-meshpos(2,n3))
122 jacobian(2,3) = 1.d0/(meshpos(3,n2)-meshpos(3,n3))
130 shdx(
i,knode,igauss) =
zero
136 shdx(
i,surf_elem(knode,iface),igauss) =
zero
138 shdx(
i,surf_elem(knode,iface),igauss) = &
139 shdx(
i,surf_elem(knode,iface),igauss) + &
void zero()
Sets all entries to zero (more efficient than assignement).
subroutine cal_shdx(shdx, meshpos, ndim, nnode, nintk, surf_elem, iface)
void jacobian(const GeoPrim::CPoint p[], const GeoPrim::CVector &, GeoPrim::CVector J[]) const