|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
On DLOAD and user subroutinesDear all,
I need to creat a distributed load which is a function of time and current position through analysis. Sure, I can use subroutine DLOAD, but I dont yet have enough knowledge. Going throuh the documentation, I have found the following DLOAD subroutine; SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) C C EXPONENTIAL PRESSURE LOAD C INCLUDE 'ABA_PARAM.INC' C DIMENSION COORDS(3),TIME(2) CHARACTER*80 SNAME DATA TEN,ONE,CONST /10.,1.,-230.3/ F=TEN*(ONE-(EXP(CONST*TIME(1)))) IF(NPT.EQ.1) WRITE(6,*) ' LOAD APPLIED',F,'AT TIME=',TIME(1) RETURN END which creats an exponentially time-varying pressure load. My questions are a lot, though the example above seems quite clear :) 1) DIMENSION COORDS(3), TIME (2) Does this mean the dimension of coordinates is three ( x,y,z, right?) and the dimension of time is 2? ( if two, what is the second?) 2) What does "CHARACTER*80 SNAME" stand for? 2) IF(NPT.EQ.1) WRITE(6,*) ' LOAD APPLIED',F,'AT TIME=',TIME(1) RETURN what is this if statement used for? And also, I wonder the required level of knowledge of fortran to be able to write user subroutines, and if possible, the required literature to reach to this level of perfection. Regards and thank you a lot. faith |
|
|
Re: On DLOAD and user subroutinesfortran is quite simple. Id recommend picking up a f77 textbook and going
through a few examples outside of abaqus first however because debugging is relatively difficult within abaqus. Beyond that it really is essential to read the manual entry for the user routine, that will tell you the meaning of time(2). On Tue, Nov 3, 2009 at 9:33 AM, fatih aruk <aruk77500@...> wrote: > > > Dear all, > > I need to creat a distributed load which is a function of time and current > position through analysis. Sure, I can use subroutine DLOAD, but I dont yet > have enough knowledge. > > Going throuh the documentation, I have found the following DLOAD > subroutine; > > SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, > 1 JLTYP,SNAME) > C > C EXPONENTIAL PRESSURE LOAD > C > INCLUDE 'ABA_PARAM.INC' > C > DIMENSION COORDS(3),TIME(2) > CHARACTER*80 SNAME > DATA TEN,ONE,CONST /10.,1.,-230.3/ > F=TEN*(ONE-(EXP(CONST*TIME(1)))) > IF(NPT.EQ.1) WRITE(6,*) ' LOAD APPLIED',F,'AT TIME=',TIME(1) > RETURN > END > > which creats an exponentially time-varying pressure load. > > My questions are a lot, though the example above seems quite clear :) > > 1) DIMENSION COORDS(3), TIME (2) > Does this mean the dimension of coordinates is three ( x,y,z, right?) and > the dimension of time is 2? ( if two, what is the second?) > > 2) What does "CHARACTER*80 SNAME" stand for? > > 2) IF(NPT.EQ.1) WRITE(6,*) ' LOAD APPLIED',F,'AT TIME=',TIME(1) > RETURN > what is this if statement used for? > > And also, I wonder the required level of knowledge of fortran to be able to > write user subroutines, and if possible, the required literature to reach to > this level of perfection. > > Regards and thank you a lot. > > faith > > > [Non-text portions of this message have been removed] |
|
|
Re: On DLOAD and user subroutines1) Yes, [x,y,z] = COORDS[1,2,3]. Step time vs. total time.
2) SNAME is an 80 character long string variable containing the name of the surface on which the load was applied (if applicable) 3) The IF statement is simply restricting the output of the WRITE statement so that it occurs only when the first load integration point of an element is being processed. Regards, Dave ------------------------- Dave Lindeman Lead Research Specialist 3M Company 3M Center 235-3F-08 St. Paul, MN 55144 651-733-6383 fatih aruk wrote: > > > Dear all, > > I need to creat a distributed load which is a function of time and > current position through analysis. Sure, I can use subroutine DLOAD, but > I dont yet have enough knowledge. > > Going throuh the documentation, I have found the following DLOAD subroutine; > > SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, > 1 JLTYP,SNAME) > C > C EXPONENTIAL PRESSURE LOAD > C > INCLUDE 'ABA_PARAM.INC' > C > DIMENSION COORDS(3),TIME(2) > CHARACTER*80 SNAME > DATA TEN,ONE,CONST /10.,1.,-230.3/ > F=TEN*(ONE-(EXP(CONST*TIME(1)))) > IF(NPT.EQ.1) WRITE(6,*) ' LOAD APPLIED',F,'AT TIME=',TIME(1) > RETURN > END > > which creats an exponentially time-varying pressure load. > > My questions are a lot, though the example above seems quite clear :) > > 1) DIMENSION COORDS(3), TIME (2) > Does this mean the dimension of coordinates is three ( x,y,z, right?) > and the dimension of time is 2? ( if two, what is the second?) > > 2) What does "CHARACTER*80 SNAME" stand for? > > 2) IF(NPT.EQ.1) WRITE(6,*) ' LOAD APPLIED',F,'AT TIME=',TIME(1) > RETURN > what is this if statement used for? > > And also, I wonder the required level of knowledge of fortran to be able > to write user subroutines, and if possible, the required literature to > reach to this level of perfection. > > Regards and thank you a lot. > > faith > > |
| Free embeddable forum powered by Nabble | Forum Help |