About USDFLD
About USDFLD
(OP)
Hi all,
I am making an electro-thermal analysis using ABAQUS and I need to redefine the electrical conductivity of the nodes in each time increment. It is dependent on the temperature and time.
I decided to use USDFLD and here is an example of my approach.
In the main input file:
*MATERIAL,NAME=cathode
*ELECTRICAL CONDUCTIVITY, DEPENDENCIES=1
16.75E3, 30, 0.0
15.92E3, 31, 0.1
14.75E3, 32, 0.2
13.92E3, 33, 0.3
.
.
. and so on
Here;
electrical conductivity, temperature, time (user defined variable coming from subroutine)
16.75E3, 30, 0.0
In the .f file:
subroutine usdfld(field,statev,pnewdt,direct,t,celent,time,dt ime,
1 cmname,orname,nfield,nstatv,noel,npt,layer,kspt,ks tep,kinc,
2 ndi,nshr,coord,jmac,jmtyp,matlayo,laccflg)
c
include 'aba_param.inc'
c
character*80 cmname,orname
character*3 flgray(15)
dimension field(nfield),statev(nstatv),direct(3,3),t(3,3),ti me(2),
* coord(*),jmac(*),jmtyp(*)
dimension array(15),jarray(15)
c
thetime=TIME(2)
c
call getvrm('SDV',array,jarray,flgray,jrcd,
$ jmac, jmtyp, matlayo, laccflg)
field(1) = array(1)
return
end
Is this approach correct?
And another question to be able to grasp the idea:
Actually I have the equation of electrical conductivity (A) as a function of temperature (T) and time (t) such as:
A = a*T + b*t where a and b are constants.
I wrote many combinations of A-T-t by trial calculations as seen above in the material property definition. At this point, is ABAQUS able to do proper interpolations to estimate the electrical conductivity depending on the temperature and time? I am asking this, because as I know, ABAQUS makes linear interpolations but the dependency of A to T and t is not linear.
Thanks for your kindly helps,
Oezen
I am making an electro-thermal analysis using ABAQUS and I need to redefine the electrical conductivity of the nodes in each time increment. It is dependent on the temperature and time.
I decided to use USDFLD and here is an example of my approach.
In the main input file:
*MATERIAL,NAME=cathode
*ELECTRICAL CONDUCTIVITY, DEPENDENCIES=1
16.75E3, 30, 0.0
15.92E3, 31, 0.1
14.75E3, 32, 0.2
13.92E3, 33, 0.3
.
.
. and so on
Here;
electrical conductivity, temperature, time (user defined variable coming from subroutine)
16.75E3, 30, 0.0
In the .f file:
subroutine usdfld(field,statev,pnewdt,direct,t,celent,time,dt ime,
1 cmname,orname,nfield,nstatv,noel,npt,layer,kspt,ks tep,kinc,
2 ndi,nshr,coord,jmac,jmtyp,matlayo,laccflg)
c
include 'aba_param.inc'
c
character*80 cmname,orname
character*3 flgray(15)
dimension field(nfield),statev(nstatv),direct(3,3),t(3,3),ti me(2),
* coord(*),jmac(*),jmtyp(*)
dimension array(15),jarray(15)
c
thetime=TIME(2)
c
call getvrm('SDV',array,jarray,flgray,jrcd,
$ jmac, jmtyp, matlayo, laccflg)
field(1) = array(1)
return
end
Is this approach correct?
And another question to be able to grasp the idea:
Actually I have the equation of electrical conductivity (A) as a function of temperature (T) and time (t) such as:
A = a*T + b*t where a and b are constants.
I wrote many combinations of A-T-t by trial calculations as seen above in the material property definition. At this point, is ABAQUS able to do proper interpolations to estimate the electrical conductivity depending on the temperature and time? I am asking this, because as I know, ABAQUS makes linear interpolations but the dependency of A to T and t is not linear.
Thanks for your kindly helps,
Oezen





RE: About USDFLD
*MATERIAL,NAME=cathode
*ELECTRICAL CONDUCTIVITY, DEPENDENCIES=1
** set the conductivity to be equal to the (first) field variable:
0.0, 0.0, 0.0
1.0E5, 0.0, 1.0E5
....
subroutine usdfld.....
C...
C...
C enter the parameters a and b for your equation. We'll assume here that they are 500 and 900:
PARAMETER (a = 500.0, b = 900.0)
C....
C...
C Get the current time:
thetime = time(2)
C
C Get the temperature at the current integration point:
call getvrm('TEMP',array,jarray,flgray,jrcd,jmac, jmtyp, matlayo, laccflg)
C check this next statement
temp = array(1)
C
C Determine the conductivity:
econd = a*temp + b*thetime
C
C Set the field variable, which is used to set the conductivity according to the material property specification:
field(1) = econd
C
C Set the state variable, which you can print to make checks:
sdv(1) = econd
C....
RETURN
END
RE: About USDFLD
Thanks for the great idea. I will use your suggestion.
Regards,
Özen