PDA

View Full Version : a question about *USDFLD.



fangzhen
2005-11-30, 13:18
Dear everybody,
I am trying to input hydraulic conductivity, which is assumed to be a function of three variables, void ratio, strain, and hydaulic pressure. And I want to use *USDFLD to do it.

Now, I get a problem: how to input the data in the input file.

*permeability, dep=3, type=iso,specific=10
k, void, temperature, strain, pressure

I gave the data like this:

*permeability, dep=3, type=iso,specific=10
0., 0.891, , 0.1, 500
0., 0.315, , 0.5, 500
0., 0.363, , 0.466666667, 500
0., 0.411, , 0.433333333, 500
0., 0.459, , 0.4, 500
0., 0.507, , 0.366666667, 500
0., 0.555, , 0.333333333, 500
0., 0.603, , 0.3, 500
0., 0.651, , 0.266666667, 500
0., 0.699, , 0.233333333, 500
0., 0.747, , 0.2, 500
0., 0.795, , 0.166666667, 500
0., 0.843, , 0.133333333, 500
0., 0.939, , 0.066666667, 500
0., 0.987, , 0.033333333, 500
0., 1.035, , 0, 500

5.55556E-05, 0.318, , 0.5, 466.6666667
5.88235E-05, 0.366, , 0.466666667, 466.6666667
0.0000625, 0.414, , 0.433333333, 466.6666667
6.66667E-05, 0.462, , 0.4, 466.6666667
7.14286E-05, 0.51, , 0.366666667, 466.6666667
7.69231E-05, 0.558, , 0.333333333, 466.6666667
8.33333E-05, 0.606, , 0.3, 466.6666667
9.09091E-05, 0.654, , 0.266666667, 466.6666667
0.0001, 0.702, , 0.233333333, 466.6666667
0.000111111, 0.321, , 0.5, 433.3333333
0.000111111, 0.75 , , 0.2, 466.6666667


Always, errors occur. :( They are like

***ERROR: THE INDEPENDENT VARIABLES MUST BE ARRANGED IN ASCENDING ORDER
LINE IMAGE: 5.88235E-05, 0.366, , 0.466666667, 466.6666667
***NOTE: DUE TO AN INPUT ERROR THE ANALYSIS PRE-PROCESSOR HAS BEEN UNABLE TO
INTERPRET SOME DATA. SUBSEQUENT ERRORS MAY BE CAUSED BY THIS OMISSION


I don't know how to solve this preoblem. Anyone who gives me suggestions is appreciated much. Thank you.

Jorgen
2005-12-04, 15:27
I don't use those features of ABAQUS everyday, but your statement:

*permeability, dep=3, type=iso,specific=10
0., 0.891, , 0.1, 500
...
seems to be missing a value on each line :?:

Shouldn't each line have a value for k, a value for e, the temperature, and then 3 field variables?

- Jorgen

fangzhen
2005-12-04, 21:16
yes, you are right. But, I did it.

the second value in every line is void ratio, the first field variable. the last two values are the second and third field variable. Maybe, much time for try and error is needed.

Now, I simplify my problem. I just set up one field variable. The elastic modulus is defined as a function of equivalent plastic strain. My input is like this:

*Heading
*Part, name=Part-1
*End Part
*Assembly, name=Assembly
*Instance, name=Part-1-1, part=Part-1
*Node
1, 0., 0.
2, 0.00474999985, 0.
3, 0.00949999969, 0.
4, 0.01425, 0.
5, 0.0189999994, 0.
6, 0., 0.00949999969
7, 0.00474999985, 0.00949999969
8, 0.00949999969, 0.00949999969
9, 0.01425, 0.00949999969
10, 0.0189999994, 0.00949999969
11, 0., 0.0189999994
12, 0.00474999985, 0.0189999994
13, 0.00949999969, 0.0189999994
14, 0.01425, 0.0189999994
15, 0.0189999994, 0.0189999994
16, 0., 0.0285
17, 0.00474999985, 0.0285
18, 0.00949999969, 0.0285
19, 0.01425, 0.0285
20, 0.0189999994, 0.0285
21, 0., 0.0379999988
22, 0.00474999985, 0.0379999988
23, 0.00949999969, 0.0379999988
24, 0.01425, 0.0379999988
25, 0.0189999994, 0.0379999988
26, 0., 0.0474999994
27, 0.00474999985, 0.0474999994
28, 0.00949999969, 0.0474999994
29, 0.01425, 0.0474999994
30, 0.0189999994, 0.0474999994
31, 0., 0.057
32, 0.00474999985, 0.057
33, 0.00949999969, 0.057
34, 0.01425, 0.057
35, 0.0189999994, 0.057
36, 0., 0.0665000007
37, 0.00474999985, 0.0665000007
38, 0.00949999969, 0.0665000007
39, 0.01425, 0.0665000007
40, 0.0189999994, 0.0665000007
41, 0., 0.0759999976
42, 0.00474999985, 0.0759999976
43, 0.00949999969, 0.0759999976
44, 0.01425, 0.0759999976
45, 0.0189999994, 0.0759999976
*Element, type=CPE4
1, 1, 2, 7, 6
2, 2, 3, 8, 7
3, 3, 4, 9, 8
4, 4, 5, 10, 9
5, 6, 7, 12, 11
6, 7, 8, 13, 12
7, 8, 9, 14, 13
8, 9, 10, 15, 14
9, 11, 12, 17, 16
10, 12, 13, 18, 17
11, 13, 14, 19, 18
12, 14, 15, 20, 19
13, 16, 17, 22, 21
14, 17, 18, 23, 22
15, 18, 19, 24, 23
16, 19, 20, 25, 24
17, 21, 22, 27, 26
18, 22, 23, 28, 27
19, 23, 24, 29, 28
20, 24, 25, 30, 29
21, 26, 27, 32, 31
22, 27, 28, 33, 32
23, 28, 29, 34, 33
24, 29, 30, 35, 34
25, 31, 32, 37, 36
26, 32, 33, 38, 37
27, 33, 34, 39, 38
28, 34, 35, 40, 39
29, 36, 37, 42, 41
30, 37, 38, 43, 42
31, 38, 39, 44, 43
32, 39, 40, 45, 44
*Elset, elset=_I1, internal,GENERATE
1,32,1
*Solid Section, elset=_I1, material=CLAY
1.,
*End Instance
*ELSET,ELSET=ECLAY, instance=Part-1-1,GENERATE
1,32,1
*ELSET,ELSET=ERIGHT, instance=Part-1-1,GENERATE
4,32,4
*NSET,NSET=NCLAY,instance=Part-1-1,GENERATE
1,45,1
*NSET,NSET=TOP,instance=Part-1-1
41,42,43,44,45
*NSET,NSET=BOTTOM,instance=Part-1-1
1,2,3,4,5
*NSET,NSET=LHS,instance=Part-1-1,GENERATE
1,41,5
*End Assembly
**
*Material, name=clay
*Elastic,DEPENDENCIES=1
**Elastic modulus, Poission's ratio, temperature, and field variable
1.45E+04, 0.3, , 0.0
1.45E+03, 0.3, , 0.002
7.25E+02, 0.3, , 0.04
7.25E+01, 0.3, , 0.10
7.25, 0.3, , 0.15
*User defined field
*DEPVAR
1,
*Mohr Coulomb
36.0, 0.0
*Mohr Coulomb Hardening
100.00,0.0
**
*Boundary
BOTTOM, 2
LHS,1
TOP,1
**
*Step, INC=1000
STEP100
*STATIC
0.002, 1.0, 1.0E-50,0.01
*BOUNDARY
TOP,2,2,-0.0076
*EL PRINT
FV,
*Output, field, FREQUENCY=10
*ELEMENT OUTPUT,ELSET=ECLAY
S,E,PE,FV,SDV
*Output, history, frequency=10
*ELEMENT OUTPUT,ELSET=ECLAY
SINV,
*NODE OUTPUT,NSET=NCLAY
U,
*End Step

My subroutine is

SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,TIME,DT IME,
1 CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,KSPT,KS TEP,
2 KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
C
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TI ME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
C
C GET PEEQ FROM THE PREVIOUS INCREMENT.PASS IN AS ARRAY(7)
C
CALL GETVRM('PE',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMTYP,
1 MATLAYO,LACCFLG)
C
FIELD(1)=ARRAY(7)
STATEV(1)=FIELD(1)
C
RETURN
END


I wonder why this job can't give right results. Entirely th same subroutine is used here. I don't know why.

ozenozdemir
2010-09-17, 07:14
I know it is too late but I wanted to write so that others can benefit it :)

you have written that you used 3 variables and the number of dependencies is 3. However, the void ratio is already a default variable for permeability, so you should set the number of dependencies to 2 (strain and hydraulic pressure).