Sina-M
Civil/Environmental
- Apr 20, 2017
- 1
Hello,
I am a beginner in simulation with Abaqus. So far I have been working with Abaqus/CAE for a few months.
Now I need to modell a load (body force) witch varys depending on the position (of the force) in the part. I am using 3D elements. The load should be either 1 or 0 depending on the z coordinate. If z is bigger the a logarithmic funktion depending on x then the force should be zero otherwise it should be 1.
I have thought of a Dload Subroutine looking like this:
SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
X= COORDS(1)
Z= COORDS(3)
if(Z>0.5*ln(X)+3) then f=1
else f=0
RETURN
END
I tried to run the modell but I got an error with "Problem during compilation" and I have never written a subroutine before. Is it possible for the subroutine to generate an output where in the model which load is applied?
Also I need to change the load in the next step. For step 2 the argument should change to
if(Z>0.3*ln(X)+5) then f=1
else f=0
I think i can reach this by
if(kstep=2 and Z>0.3*ln(X)+5) then f=1
else f=0
But will this change the load of the previos step oder a new load?
Could anyone give me an advice how to modify this kind of subroutine so it will work?
Thanks in Advance!
I am a beginner in simulation with Abaqus. So far I have been working with Abaqus/CAE for a few months.
Now I need to modell a load (body force) witch varys depending on the position (of the force) in the part. I am using 3D elements. The load should be either 1 or 0 depending on the z coordinate. If z is bigger the a logarithmic funktion depending on x then the force should be zero otherwise it should be 1.
I have thought of a Dload Subroutine looking like this:
SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
X= COORDS(1)
Z= COORDS(3)
if(Z>0.5*ln(X)+3) then f=1
else f=0
RETURN
END
I tried to run the modell but I got an error with "Problem during compilation" and I have never written a subroutine before. Is it possible for the subroutine to generate an output where in the model which load is applied?
Also I need to change the load in the next step. For step 2 the argument should change to
if(Z>0.3*ln(X)+5) then f=1
else f=0
I think i can reach this by
if(kstep=2 and Z>0.3*ln(X)+5) then f=1
else f=0
But will this change the load of the previos step oder a new load?
Could anyone give me an advice how to modify this kind of subroutine so it will work?
Thanks in Advance!