Remaining result of displacements for the next step in UEL subroutine

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Remaining result of displacements for the next step in UEL subroutine

h_janbazi

 

 

 

Hi everyone, I would bethankful if consider my question:

I modeled vertical linearstiffness of seabed soil by UEL subroutine of Abaqus.

The pipe is hanging fromthe vessel located in a higher level, and laid on the seabed same as catenaryshape. Actually, this is a steel catenary riser (SCR) modeling.

At the first step, the verticalstiffness of seabed was equal to ky=5 kPa (defined in UEL subroutine), and thenlaid pipe moves down due to its self-weight. We assume this is static analysis,so after short time, some part of this catenary will be laid on the seabed andwe can find penetration as:

Actually, the penetrationwill be determined through UEL subroutine.

I provide simple handcalculation here which UEL can do that in a completed way.

Vertical displacement=u(2)

Self-weight of pipe=100kg/m

Force=ky*u(2) >>>>>>>>>>>>>>>>   u(2) = (100kg/m * 9.81)/5 kPa = 0.196 m (indownward direction).

 

As you know, thestiffness of seabed is not constant during long time. It may be changed.

I assume the stiffness ofsoil will be stiffer in the future. So I’m going to define new stiffness (e.g.Ky=100 kPa). Actually, when I define a new stiffness in the next step, allcalculated displacements from the previous step will be reset and will nolonger be continued for the next step.

It expected thispenetration will be continuing from the previous step, but pipe reset itsprevious displacements and start to penetrate from zero.

Do you have anysuggestions to keep remain calculated displacements from previous step, andcontinue them in the next step?

 

I try differentapproaches such as “save” statement that all previous displacements stored in aseparate matrix and then use for new step, but it did not work.

Any comments would bebeneficial for me. My project was stopped due to this problem and I’m in needof your help and consideration.

I provide UEL subroutinethat I used.

 

Many thanks

Hossein

 

 

 

     SUBROUTINE UEL(RHS,AMATRX,SVARS,ENERGY,NDOFEL,NRHS,NSVARS,

    1    PROPS,NPROPS,COORDS,MCRD,NNODE,U,DU,V,A,JTYPE,TIME,

    2    DTIME,KSTEP,KINC,JELEM,PARAMS,NDLOAD,JDLTYP,ADLMAG,

    3     PREDEF,NPREDF,LFLAGS,MLVARX,DDLMAG,MDLOAD,PNEWDT,

    4     JPROPS,NJPROP,PERIOD)

 

     INCLUDE 'ABA_PARAM.INC'

 

     DIMENSION RHS(MLVARX,*),AMATRX(NDOFEL,NDOFEL),

    1    SVARS(NSVARS),ENERGY(8),PROPS(*),COORDS(MCRD,NNODE),

    2    U(NDOFEL),DU(MLVARX,*),V(NDOFEL),A(NDOFEL),TIME(2),

    3    PARAMS(3),JDLTYP(MDLOAD,*),ADLMAG(MDLOAD,*),

    4    DDLMAG(MDLOAD,*),PREDEF(2,NPREDF,NNODE),LFLAGS(*),

    5     JPROPS(*)             

 

                 IF (kstep.EQ.1) THEN

                 if (u(2).gt.0) THEN

                               kx=0

                               ky=0

                               force(jelem)=0                

                 else                     

                               kx=0     

                               ky=5000

                               force(jelem)=ky*u(2)     

                 end if

 

                 ELSE IF (kstep.EQ.2) THEN

                 if (u(2).gt.0) THEN

                               kx=0

                               ky=0

                               force(jelem)=0                

                else                       

                               kx=0     

                               ky=100,000

                               force(jelem)=ky*u(2)     

                end if

 

                END IF

                

     AMATRX(1,1:3)=(/KX, 0.,0./)

     AMATRX(2,1:3)=(/0., KY,0./)

     AMATRX(3,1:3)=(/0., 0., KZ/)

 

     SRESID(2)=FORCE(jelem)

     RHS(2,1)=RHS(2,1)-SRESID(2)

 

     SVARS(1)=u(2)

     SVARS(2)=RHS(2,1)    

 

     RETURN

     END