×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Calling SDV Calculated in a Previous Increment

Calling SDV Calculated in a Previous Increment

Calling SDV Calculated in a Previous Increment

(OP)
Folks,

I am working on HETVAL subroutine to calculate degree of cure/decomposition based on temperature history. Below code seperately calculate STATEV(1) during heating (DTEMP0 > 0) and cooling (DTEMP0 < 0). My goal is to permantenly update STATEV(1) based upon the highest temperature. Thus, if temperature decreases, STATEV(1) should not decrease. Am I missing something in my subroutine? I need your professional comments. Thank you.

J. Lee

-------------------------------------------------------------------------
SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,STATEV,FLUX,PREDEF,DPRED)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
REAL(8) TEMP(2),STATEV(*),PREDEF(*),TIME(2),FLUX(2),DPRED(*),
1 DECOMP,TEMP0,DTEMP0,

C STATEV(1) = DEGREE OF LINEAR THERMAL DECOMPOISTION
C DEFINED IN THE RANGE OF 350~600C
DECOMP = STATEV(1)

C SAVE TEMPEATURE TO TEMP0
TEMP0 = TEMP(1)

C SAVE TEMPEATURE INCREASE TO DTEMP0
DTEMP0 = TEMP(2)

C RESIN BEGINS TO DECOMPOSE FROM 350-600C DURING HEATING
C FLUX(1) = HEAT FLUX
C FLUX(2) = RATE OF CHANGE OF HEAT FLUX PER TEMPERATURE

IF (DTEMP0 > 0.0) THEN
C UNDAMAGED RANGE
IF (TEMP0 < 350.0) THEN
STATEV(1) = 0.0
FLUX(1) = 0.0
FLUX(2) = 0.0

C PARTIALLY DAMAGED RANGE
ELSEIF (TEMP0 >= 350.0 .and. TEMP0 <= 600.0) THEN
STATEV(1) = (TEMP0-350.0)/250.0
FLUX(1) = 0.0
FLUX(2) = 0.0

C FULLY DAMAGED RANGE
ELSEIF (TEMP0 > 600.0) THEN
STATEV(1) = 1.0
FLUX(1) = 0.0
FLUX(2) = 0.0
END IF

C DURING COOLING
C DEGREE OF THE MATRIX DECOMPOSITION REMAINS CONSTANT
ELSEIF (DTEMP0 <= 0.0) THEN
STATEV(1) = DECOMP
FLUX(1) = 0.0
FLUX(2) = 0.0
END IF

C LIMIT UPPER BOUNDARY
C DEGREE OF THE MATRIX DECOMPOSITION NEVER EXCEED 1
IF (STATEV(1) > 1.0 ) THEN
STATEV(1) = 1.0
END IF

RETURN
END

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources