yunlin
Structural
- Apr 26, 2012
- 10
I wrote a USDFLD subroutine to change young's modulus based on the value of strain. I had the line field(1) = strain in order to relate field(1) to stain output. Part of the subroutine is at the end.
My first question:
What if I have more than one solution dependent properties? I would have to relate more field variable to solutions. How do I know which one is field(1), field(2)....field?
for example, I want to make both specific heat and thermal expansion coefficient solution dependent. I would have to enter field variables for both of them in CAE. But in subroutine how do I know which one is field(1) and which one is field(2)? or does it work this way?
My 2nd Question:
If the young's modulus depending on the temperature history, what should I do. For example. when time is 1 the temperature is 30, and when time is 2, the temperature is 50. So now maturity is 30x1+50*1 = 80. What should I do, in order to make young's modulus depending on maturity?
c USER CODE START
c do it only for specific material
if (cmname .eq. 'MAT1') then
c get elastic strain (value EE) and save it into 'array'
call getvrm('EE',array,jarray,flgray,jrcd,jmac,jmatyp,
& matlayo,laccfla)
c EE11 output = array(1)
strain = abs(array(1))
c assign strain value to field variable
c Young modul (E) depend on field variable (FV1)
field(1) = strain
end if
c USER CODE END
My first question:
What if I have more than one solution dependent properties? I would have to relate more field variable to solutions. How do I know which one is field(1), field(2)....field?
for example, I want to make both specific heat and thermal expansion coefficient solution dependent. I would have to enter field variables for both of them in CAE. But in subroutine how do I know which one is field(1) and which one is field(2)? or does it work this way?
My 2nd Question:
If the young's modulus depending on the temperature history, what should I do. For example. when time is 1 the temperature is 30, and when time is 2, the temperature is 50. So now maturity is 30x1+50*1 = 80. What should I do, in order to make young's modulus depending on maturity?
c USER CODE START
c do it only for specific material
if (cmname .eq. 'MAT1') then
c get elastic strain (value EE) and save it into 'array'
call getvrm('EE',array,jarray,flgray,jrcd,jmac,jmatyp,
& matlayo,laccfla)
c EE11 output = array(1)
strain = abs(array(1))
c assign strain value to field variable
c Young modul (E) depend on field variable (FV1)
field(1) = strain
end if
c USER CODE END