50#include "implicit_f.inc"
54#include "vect01_c.inc"
59 INTEGER,
INTENT(IN) :: IXS(NIXS,NUMELS)
60 my_real,
INTENT(IN) :: x(3,numnod)
61 INTEGER,
INTENT(IN) :: ITRIMAT
66 INTEGER :: I, II, KK, IAD2, LGTH
67 my_real :: xk, yk, zk, xl, yl, zl, xf, yf, zf
69 my_real :: mat(3, 3), rhs(3), sol(3)
71 INTEGER :: FACE_TO_NODE_LOCAL_ID(6, 4)
72 my_real ::
norm(3), a(3), b(3), c(3), surf, surf1, surf2
79 face_to_node_local_id(1, 1) = 1 ; face_to_node_local_id(1, 2) = 4
80 face_to_node_local_id(1, 3) = 3 ; face_to_node_local_id(1, 4) = 2
82 face_to_node_local_id(2, 1) = 3 ; face_to_node_local_id(2, 2) = 4
83 face_to_node_local_id(2, 3) = 8 ; face_to_node_local_id(2, 4) = 7
85 face_to_node_local_id(3, 1) = 5 ; face_to_node_local_id(3, 2) = 6
86 face_to_node_local_id(3, 3) = 7 ; face_to_node_local_id(3, 4) = 8
88 face_to_node_local_id(4, 1) = 1 ; face_to_node_local_id(4, 2) = 2
89 face_to_node_local_id(4, 3) = 6 ; face_to_node_local_id(4, 4) = 5
91 face_to_node_local_id(5, 1) = 2 ; face_to_node_local_id(5, 2) = 3
92 face_to_node_local_id(5, 3) = 7 ; face_to_node_local_id(5, 4) = 6
94 face_to_node_local_id(6, 1) = 1 ; face_to_node_local_id(6, 2) = 5
95 face_to_node_local_id(6, 3) = 8 ; face_to_node_local_id(6, 4) = 4
100 mat(1:3, 1:3) = zero ; rhs(1:3) = zero
107 iad2 = ale_connect%ee_connect%iad_connect(ii)
108 lgth = ale_connect%ee_connect%iad_connect(ii+1)-iad2
110 vois_id = ale_connect%ee_connect%connected(iad2 + kk - 1)
112 IF (vois_id > 0)
THEN
119 IF(vois_id == 0)
THEN
123 vall = segvar%PHASE_ALPHA(itrimat,-vois_id)
129 a(1:3) = x(1:3, ixs(face_to_node_local_id(kk, 1) + 1, ii))
130 b(1:3) = x(1:3, ixs(face_to_node_local_id(kk, 2) + 1, ii))
131 c(1:3) = x(1:3, ixs(face_to_node_local_id(kk, 3) + 1, ii))
133 norm(1) = (b(2) - a(2)) * (c(3) - a(3)) - (b(3) - a(3)) * (c(2) - a(2))
134 norm(2) = (b(3) - a(3)) * (c(1) - a(1)) - (b(1) - a(1)) * (c(3) - a(3))
135 norm(3) = (b(1) - a(1)) * (c(2) - a(2)) - (b(2) - a(2)) * (c(1) - a(1))
138 xf = surf1 * third * (a(1) + b(1) + c(1))
139 yf = surf1 * third * (a(2) + b(2) + c(2))
140 zf = surf1 * third * (a(3) + b(3) + c(3))
142 a(1:3) = x(1:3, ixs(face_to_node_local_id(kk, 1) + 1, ii))
143 b(1:3) = x(1:3, ixs(face_to_node_local_id(kk, 3)
144 c(1:3) = x(1:3, ixs(face_to_node_local_id(kk, 4) + 1, ii))
146 norm(1) = (b(2) - a(2)) * (c(3) - a(3)) - (b(3) - a(3)) * (c(2) - a(2))
147 norm(2) = (b(3) - a(3)) * (c(1) - a(1)) - (b(1)
148 norm(3) = (b(1) - a(1)) * (c(2) - a(2)) - (b
151 xf = xf + surf2 * third * (a(1) + b
152 yf = yf + surf2 * third * (a(2) + b(2) + c(2))
153 zf = zf + surf2 * third * (a(3) + b(3) + c(3))
172 rhs(1) = rhs(1) + (valk - vall) * (xl - xk)
173 rhs(2) = rhs(2) + (valk - vall) * (yl - yk)
174 rhs(3) = rhs(3) + (valk - vall) * (zl - zk)
175 mat(1, 1) = mat(1, 1) + (xl - xk) * (xl - xk)
176 mat(1, 2) = mat(1, 2) + (xl - xk) * (yl - yk)
177 mat(1, 3) = mat(1, 3) + (xl - xk) * (zl - zk)
178 mat(2, 1) = mat(2, 1) + (yl - yk) * (xl - xk)
179 mat(2, 2) = mat(2, 2) + (yl - yk) * (yl - yk)
180 mat(2, 3) = mat(2, 3) + (yl - yk) * (zl - zk)
181 mat(3, 1) = mat(3, 1) + (zl - zk) * (xl - xk)
182 mat(3, 2) = mat(3, 2) + (zl - zk) * (yl - yk)
183 mat(3, 3) = mat(3, 3) + (zl - zk) * (zl - zk)
186 CALL cg(3, mat, rhs, sol, 3, em10)