1 # 1 "/home/damask_user/GitLabCI_Pipeline_4301/DAMASK/src/thermal_adiabatic.f90"
4 # 1 "/home/damask_user/GitLabCI_Pipeline_4301/DAMASK/src/thermal_adiabatic.f90"
24 character(len=pStringLen),
allocatable,
dimension(:) :: &
48 integer :: maxninstance,h,nofmyhomog
53 if (maxninstance == 0)
return
55 allocate(
param(maxninstance))
86 integer,
intent(in) :: &
87 ip, & !< integration point number
89 real(preal),
intent(in) :: &
92 logical,
dimension(2) :: &
100 homog = material_homogenizationat(el)
101 offset = material_homogenizationmemberat(ip,el)
103 t = thermalstate(homog)%subState0(1,offset)
108 <= err_thermal_tolabs &
109 .or. abs(t - thermalstate(homog)%state(1,offset)) &
110 <= err_thermal_tolrel*abs(thermalstate(homog)%state(1,offset)), &
113 temperature(homog)%p(thermalmapping(homog)%p(ip,el)) = t
114 temperaturerate(homog)%p(thermalmapping(homog)%p(ip,el)) = &
115 (thermalstate(homog)%state(1,offset) - thermalstate(homog)%subState0(1,offset))/(subdt+tiny(0.0_preal))
125 integer,
intent(in) :: &
126 ip, & !< integration point number
128 real(preal),
intent(in) :: &
130 real(preal),
intent(out) :: &
143 homog = material_homogenizationat(el)
144 instance = thermal_typeinstance(homog)
148 do grain = 1, homogenization_ngrains(homog)
149 phase = material_phaseat(grain,el)
150 constituent = material_phasememberat(grain,ip,el)
151 do source = 1, phase_nsources(phase)
152 select case(phase_source(source,phase))
153 case (source_thermal_dissipation_id)
154 call source_thermal_dissipation_getrateanditstangent(my_tdot, my_dtdot_dt, &
155 crystallite_s(1:3,1:3,grain,ip,el), &
156 crystallite_lp(1:3,1:3,grain,ip,el), &
159 case (source_thermal_externalheat_id)
160 call source_thermal_externalheat_getrateanditstangent(my_tdot, my_dtdot_dt, &
165 my_dtdot_dt = 0.0_preal
167 tdot = tdot + my_tdot
168 dtdot_dt = dtdot_dt + my_dtdot_dt
172 tdot = tdot/real(homogenization_ngrains(homog),preal)
173 dtdot_dt = dtdot_dt/real(homogenization_ngrains(homog),preal)
183 integer,
intent(in) :: &
184 ip, & !< integration point number
194 do grain = 1, homogenization_ngrains(material_homogenizationat(el))
196 + lattice_specificheat(material_phaseat(grain,el))
200 / real(homogenization_ngrains(material_homogenizationat(el)),preal)
210 integer,
intent(in) :: &
211 ip, & !< integration point number
220 do grain = 1, homogenization_ngrains(material_homogenizationat(el))
222 + lattice_massdensity(material_phaseat(grain,el))
226 / real(homogenization_ngrains(material_homogenizationat(el)),preal)
236 integer,
intent(in) :: homog
237 character(len=*),
intent(in) :: group
241 associate(prm =>
param(damage_typeinstance(homog)))
242 outputsloop:
do o = 1,
size(prm%output)
243 select case(trim(prm%output(o)))
245 call results_writedataset(group,temperature(homog)%p,
'T',&