OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
write_buf_law51.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| write_buf_law51 ../engine/source/materials/mat/mat051/write_buf_law51.F
25!||--- uses -----------------------------------------------------
26!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
27!|| element_mod ../common_source/modules/elements/element_mod.F90
28!|| i22bufbric_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
29!|| multimat_param_mod ../common_source/modules/multimat_param_mod.F90
30!||====================================================================
31 SUBROUTINE write_buf_law51 (
32 1 IXS , NFT , NUVAR , NEL , UVAR ,
33 2 I , UNEPHASE, DD , dbVOLD , dbVOLD_f,
34 3 VOLUME, VOLD , EPSPXX , EPSPYY , EPSPZZ,
35 4 TAG22 , BFRAC ,RHO01 ,RHO02 , RHO03 ,
36 5 RHO04)
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE elbufdef_mod
42 USE multimat_param_mod , ONLY : m51_n0phas, m51_nvphas
43 use element_mod , only : nixs
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48#include "comlock.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "com01_c.inc"
53#include "mvsiz_p.inc"
54#include "inter22.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER :: NEL, NUVAR, IXS(NIXS, *)
59 INTEGER :: NFT, UNEPHASE
60 my_real :: UVAR(NEL,NUVAR), DD, dbVOLD(4),dbVOLD_f(4),TAG22(MVSIZ),VOLUME(MVSIZ),VOLD, VAR
61 my_real :: EPSPXX(MVSIZ), EPSPYY(MVSIZ), EPSPZZ(MVSIZ),BFRAC
62 my_real :: RHO01, RHO02, RHO03, RHO04, RHO0(4)
63
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER :: I,II, ITRIMAT, IPRESENT(4), Q, KK
68
69C-----------------------------------------------
70C S o u r c e L i n e s
71C-----------------------------------------------
72
73 rho0 = ( / rho01, rho02, rho03, rho04 / )
74
75 ii = i+ nft
76 write (*,fmt='(A16,I10)' ) "LAW51- brick ID=",ixs(nixs,i+nft)
77
78 var=zero
79 DO itrimat = 1,trimat
80 kk = m51_n0phas + (itrimat-1)*m51_nvphas
81 var = var + uvar(i,11+kk)
82 ENDDO
83
84 IF(int22>0)THEN
85 IF(tag22(i)>zero)THEN
86 write (*,fmt='(A)')
87 ." +---------SuperCell-----------+---------ELEMENT-----------+-------SUM(submat)-----------+-------SUM(submat
88 .)+flux-----+"
89 write (*,fmt='(A16,4F30.16)') " Vold=",brick_list(1,nint(tag22(i)))%Vold_SCell,vold ,sum(dbvold(1:4)),
90 . sum(dbvold_f(1:4))
91 write (*,fmt='(A16,3F30.16)') " Vnew=",brick_list(1,nint(tag22(i)))%Vnew_SCell,volume(i) ,var
92 ELSE
93 write (*,fmt='(A)')
94 ." +-----------ELEMENT-----------+"
95 write (*,fmt='(A16,1F30.16)') " Vold=",vold
96 write (*,fmt='(A16,1F30.16)') " Vnew=",volume(i)
97 ENDIF
98 ELSE
99 write (*,fmt='(A)')
100 ." +-----------ELEMENT-----------+"
101 write (*,fmt='(A16,1F30.16)') " Vold=",vold
102 write (*,fmt='(A16,1F30.16)') " Vnew=",volume(i)
103 ENDIF
104 write (*,fmt='(A16,3F30.16)') " EPSii=",epspxx(i),epspyy(i), epspzz(i)
105 write (*,fmt='(A16,1F30.16)') " DD=", dd
106 write (*,fmt='(A16,1F30.16)') " bfrac=", BFRAC
107
108 !submat4
109 Q = UNEPHASE / 8
110 IPRESENT(4) = Q
111 UNEPHASE = UNEPHASE - Q*8
112 !submat3
113 Q = UNEPHASE / 4
114 IPRESENT(3) = Q
115 UNEPHASE = UNEPHASE - Q*4
116 !submat2
117 Q = UNEPHASE / 2
118 IPRESENT(2) = Q
119 UNEPHASE = UNEPHASE - Q*2
120 !submat1
121 IPRESENT(1) = UNEPHASE
122
123 VAR = ZERO
124
125 DO ITRIMAT = 1,TRIMAT
126 !=====================!
127 ! submat_id = ITRIMAT !
128 !=====================!
129 KK = M51_N0PHAS + (ITRIMAT-1)*M51_NVPHAS
130 write (*,FMT='(A16,I1)') " +-----submat=",ITRIMAT
131 IF(IPRESENT(ITRIMAT)==0)THEN
132 write (*,FMT='(A16 )') " empty"
133 CYCLE
134 ENDIF
135 write (*,FMT='(A16,E30.16)') " 1. vfrac=", UVAR(I,1+KK)
136 write (*,FMT='(A16,E30.16)') " 2. sd_xx=", UVAR(I,2+KK)
137 write (*,FMT='(A16,E30.16)') " 3. sd_yy=", UVAR(I,3+KK)
138 write (*,FMT='(A16,E30.16)') " 4. sd_zz=", UVAR(I,4+KK)
139 write (*,FMT='(A16,E30.16)') " 5. sd_xy=", UVAR(I,5+KK)
140 write (*,FMT='(A16,E30.16)') " 6. sd_yz=", UVAR(I,6+KK)
141 write (*,FMT='(A16,E30.16)') " 7. sd_zx=", UVAR(I,7+KK)
142 write (*,FMT='(A16,E30.16)') " 8. e=", UVAR(I,8+KK)
143 write (*,FMT='(A16,E30.16)') " 9. rho=", UVAR(I,9+KK)
144 write (*,FMT='(A16,E30.16)') " 8*11 eint=", UVAR(I,8+KK)*UVAR(I,11+KK)
145 write (*,FMT='(A16,E30.16)') " 9*11 mass=", UVAR(I,9+KK)*UVAR(I,11+KK)
146 write (*,FMT='(A16,E30.16)') " 10. q=", UVAR(I,10+KK)
147 write (*,FMT='(A16,E30.16)') " 11. vnew=", UVAR(I,11+KK)
148 write (*,FMT='(A16,E30.16)') " vold=", dbVOLD(ITRIMAT)
149 write (*,FMT='(A16,E30.16)') " 12. rho=", UVAR(I,12+KK)
150 write (*,FMT='(A16,E30.16)') " 13. ddvol=", UVAR(I,13+KK)
151 write (*,FMT='(A16,E30.16)') " 14. ssp=", UVAR(I,14+KK)
152 write (*,FMT='(A16,E30.16)') " 15. plas=", UVAR(I,15+KK)
153 write (*,FMT='(A16,E30.16)') " 16. t=", UVAR(I,16+KK)
154 write (*,FMT='(A16,E30.16)') " 17. edif/v=", UVAR(I,17+KK)
155 write (*,FMT='(A16,E30.16)') " 18. p=", UVAR(I,18+KK)
156 write (*,FMT='(A16,E30.16)') " 19. epx=", uvar(i,19+kk)
157 write (*,fmt='(A16,E30.16)') " . MU=", uvar(i,9+kk)/rho0(itrimat) - one
158 var = var + uvar(i,11+kk)
159 ENDDO
160
161 RETURN
162 END
163
164
type(brick_entity), dimension(:,:), allocatable, target brick_list
subroutine write_buf_law51(ixs, nft, nuvar, nel, uvar, i, unephase, dd, dbvold, dbvold_f, volume, vold, epspxx, epspyy, epspzz, tag22, bfrac, rho01, rho02, rho03, rho04)