yunlin
Structural
- Apr 26, 2012
- 10
I am using DFLUX for concrete heat generation. Flux(1) is depending on eqvage. My code is below. This subroutine is working perfectly when there is only one concrete part. If I add some insulation, It will not work right. The eqvage is not adding up correctly for some reason if there is more than one part? I cant figure out what is the difference. Heat source is never changed.
subroutine dflux(flux,sol,kstep,kinc,time,noel,npt,coords,
1 jltyp,temp,press,sname)
c
include 'aba_param.inc'
c
dimension flux(2), time(2), coords(3)
character*80 sname
c
common xys(100000)
xys(time(1)) = exp(4070.3D0*(1/296D0-1/(273D0+(sol-32D0)/1.8D0)))
eqvage = 0
c
c
do 100 n = 1,time(1),1
100 eqvage = eqvage+xys
c
if (eqvage<=7.61) then
flux(1) = 70D0 + 15.11D0*eqvage
else if (eqvage<=17) then
flux(1) = 185D0 - 11.82D0*(eqvage-7.61)
else if (eqvage<=100) then
flux(1) = 74D0 - 0.651D0*(eqvage - 17)
else if (eqvage<=300) then
flux(1) = 20D0 - 0.1D0*(eqvage - 100)
else
flux(1) = 0
end if
c
write(7,*) '!!!',time(1),xys(time(1)), eqvage,sol
return
end
subroutine dflux(flux,sol,kstep,kinc,time,noel,npt,coords,
1 jltyp,temp,press,sname)
c
include 'aba_param.inc'
c
dimension flux(2), time(2), coords(3)
character*80 sname
c
common xys(100000)
xys(time(1)) = exp(4070.3D0*(1/296D0-1/(273D0+(sol-32D0)/1.8D0)))
eqvage = 0
c
c
do 100 n = 1,time(1),1
100 eqvage = eqvage+xys
c
if (eqvage<=7.61) then
flux(1) = 70D0 + 15.11D0*eqvage
else if (eqvage<=17) then
flux(1) = 185D0 - 11.82D0*(eqvage-7.61)
else if (eqvage<=100) then
flux(1) = 74D0 - 0.651D0*(eqvage - 17)
else if (eqvage<=300) then
flux(1) = 20D0 - 0.1D0*(eqvage - 100)
else
flux(1) = 0
end if
c
write(7,*) '!!!',time(1),xys(time(1)), eqvage,sol
return
end