21 integer(kind=kint) :: k, icel, isuf, iam1, iam2, ic_type, isect, nn, is, j, mm, m, ic, ip
22 integer(kind=kint) :: inod, jp, jnod, isU, ieU, ik, isL, ieL
23 real(kind=kreal) :: ctime, dtime, qq, hh, sink, thick, beta
26 type(hecmwst_matrix) :: hecMAT
27 type(hecmwst_local_mesh) :: hecMESH
29 real(kind=kreal) :: xx(20), yy(20), zz(20)
30 real(kind=kreal) :: term1(64), term2(20), stiff(8,8)
31 integer(kind=kint) :: nodLocal(20), nsuf(8), nodSurf(8)
39 do k = 1, fstrheat%H_SUF_tot
40 icel = fstrheat%H_SUF_elem(k)
41 if( fstrsolid%elements(icel)%elemact_flag == kelact_inactive ) cycle
43 isuf = fstrheat%H_SUF_surf(k)
44 iam1 = fstrheat%H_SUF_ampl(k,1)
45 iam2 = fstrheat%H_SUF_ampl(k,2)
47 hh = fstrheat%H_SUF_val (k,1) * qq
48 if( dabs(hh) < 1.d-16 ) cycle
50 sink = fstrheat%H_SUF_val (k,2) * qq
51 ic_type = hecmesh%elem_type(icel)
52 isect = hecmesh%section_ID(icel)
54 nn = hecmw_get_max_node(ic_type)
56 is = hecmesh%elem_node_index(icel-1)
58 nodlocal(j) = hecmesh%elem_node_item(is+j)
59 xx(j) = hecmesh%node( 3*nodlocal(j)-2 )
60 yy(j) = hecmesh%node( 3*nodlocal(j)-1 )
61 zz(j) = hecmesh%node( 3*nodlocal(j) )
64 if ( ic_type.eq.231 )
then
65 is = hecmesh%section%sect_R_index(isect)
66 thick = hecmesh%section%sect_R_item(is)
68 call heat_film_231(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
69 elseif( ic_type.eq.232 )
then
70 is = hecmesh%section%sect_R_index(isect)
71 thick = hecmesh%section%sect_R_item(is)
73 call heat_film_232(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
74 elseif( ic_type.eq.241 )
then
75 is = hecmesh%section%sect_R_index(isect)
76 thick = hecmesh%section%sect_R_item(is)
78 call heat_film_241(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
79 elseif( ic_type.eq.242 )
then
80 is = hecmesh%section%sect_R_index(isect)
81 thick = hecmesh%section%sect_R_item(is)
83 call heat_film_242(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
84 elseif( ic_type.eq.341 )
then
86 call heat_film_341(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
87 elseif( ic_type.eq.342 )
then
89 call heat_film_342(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
90 elseif( ic_type.eq.351 )
then
92 if( isuf.eq.1 .or. isuf.eq.2 ) mm = 3
93 call heat_film_351(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
94 elseif( ic_type.eq.352 )
then
96 if( isuf.eq.1 .or. isuf.eq.2 ) mm = 6
97 call heat_film_352(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
98 elseif( ic_type.eq.361 )
then
100 call heat_film_361(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
101 elseif( ic_type.eq.362 )
then
103 call heat_film_362(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
104 elseif( ic_type.eq.731 )
then
111 elseif( ic_type.eq.741 )
then
122 nodsurf(ip) = nodlocal(nsuf(ip))
130 stiff(ip,jp) = -term1(ic)
134 call hecmw_mat_ass_elem(hecmat, mm, nodsurf, stiff)
138 hecmat%B(nodsurf(ip)) = hecmat%B(nodsurf(ip)) - term2(ip)
This module defines common data and basic structures for analysis.
This module provide a function to get amplitude definition.
subroutine heat_get_amplitude(fstrHEAT, id, TT, QQ, OutOfRange)
This module provides subroutines to generate heat transfer boundary.
subroutine heat_film_242(NN, XX, YY, ZZ, THICK, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_232(NN, XX, YY, ZZ, THICK, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_342(NN, XX, YY, ZZ, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_352(NN, XX, YY, ZZ, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_341(NN, XX, YY, ZZ, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_731(NN, XX, YY, ZZ, HH, SINK, TERM1, TERM2)
subroutine heat_film_241(NN, XX, YY, ZZ, THICK, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_231(NN, XX, YY, ZZ, THICK, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_351(NN, XX, YY, ZZ, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_741(NN, XX, YY, ZZ, HH, SINK, TERM1, TERM2)
subroutine heat_film_362(NN, XX, YY, ZZ, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
subroutine heat_film_361(NN, XX, YY, ZZ, LTYPE, HH, SINK, MM, TERM1, TERM2, NOD)
This module provides a subroutine for setting heat transfer boundary conditions.
subroutine heat_mat_ass_bc_film(hecMESH, hecMAT, fstrSOLID, fstrHEAT, CTIME, DTIME, beta)
Data for HEAT ANSLYSIS (fstrHEAT)