54 rho,numnp,numcstet,numat_vol,disp,nstart,nend,totalmass,totalgeomvolp,totalgeomundefvolp,&
75 REAL*8,
DIMENSION(1:numat_vol) :: rho
77 INTEGER,
DIMENSION(1:numcstet) :: matcstet
79 INTEGER,
DIMENSION(1:NumVertx,1:numcstet) :: lmcstet
81 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
83 REAL*8,
DIMENSION(1:3*numnp) :: disp
87 INTEGER :: n1,n2,n3,n4,n5,n6
88 INTEGER :: n7,n8,n9,n10
89 INTEGER ::
i,nstart,nend
91 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
93 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
95 REAL*8 :: c11, c21, c31
97 REAL*8 :: vx6,
volume,vx6def
98 REAL*8 :: totalmass,totalgeomvolp,totalgeomundefvolp
101 totalgeomundefvolp = 0.
134 c11 = y24*z34 - z24*y34
135 c21 = -( x24*z34 - z24*x34 )
136 c31 = x24*y34 - y24*x34
138 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
146 totalgeomundefvolp = totalgeomundefvolp + vx6/6.d0
159 x1 = coor(1,n1) + disp(3*n1-2)
160 x2 = coor(1,n2) + disp(3*n2-2)
161 x3 = coor(1,n3) + disp(3*n3-2)
162 x4 = coor(1,n4) + disp(3*n4-2)
163 y1 = coor(2,n1) + disp(3*n1-1)
164 y2 = coor(2,n2) + disp(3*n2-1)
165 y3 = coor(2,n3) + disp(3*n3-1)
166 y4 = coor(2,n4) + disp(3*n4-1)
167 z1 = coor(3,n1) + disp(3*n1)
168 z2 = coor(3,n2) + disp(3*n2)
169 z3 = coor(3,n3) + disp(3*n3)
170 z4 = coor(3,n4) + disp(3*n4)
182 c11 = y24*z34 - z24*y34
183 c21 = -( x24*z34 - z24*x34 )
184 c31 = x24*y34 - y24*x34
186 vx6def = -( x14*c11 + y14*c21 + z14*c31 )
190 totalgeomvolp = totalgeomvolp + vx6def/6.d0
194 totalmass = rho(1) * totalgeomundefvolp
228 CALL
cross_3d( x2 - x1, y2 - y1, z2 - z1, x3 - x1, y3 - y1, z3 - z1, &
239 SUBROUTINE cross_3d ( x1, y1, z1, x2, y2, z2, x3, y3, z3 )
285 x3 = y1 * z2 - z1 * y2
286 y3 = z1 * x2 - x1 * z2
287 z3 = x1 * y2 - y1 * x2
int volume(const block *b)
real *8 function enorm_3d(x1, y1, z1)
subroutine triangle_area_3d(x1, y1, z1, x2, y2, z2, x3, y3, z3, area)
subroutine cross_3d(x1, y1, z1, x2, y2, z2, x3, y3, z3)
subroutine v3d4_volume(coor, lmcstet, matcstet, rho, numnp, numcstet, numat_vol, Disp, nstart, nend, TotalMass, TotalGeomVolp, TotalGeomUndefVolp, NumVertx)