thanks for your sharing, sir. I'm using your script but I'm having trouble getting it to run., can you help find where errors are? subroutine vdload ( C Read only (unmodifiable)variables - 1 nblock, ndim, stepTime, totalTime, 2 amplitude, curCoords, velocity, dirCos, jltyp, sname, C Write only (modifiable) variable - 1 value ) C include 'vaba_param.inc' C dimension curCoords(nblock,ndim), velocity(nblock,ndim), 1 dirCos(nblock,ndim,ndim), value(nblock) character*80 sname C real*8 a,b real*8 LA,LB real*8 p !real*8 slabW,v a=0.35 b=0.2 LA=5 LB=2.5 p=1000 slabW=10 v=20 disp=v*stepTime
do km = 1, nblock if(curCoords(km,1)(slabW-LB)/2.-b) then if(curCoords(km,3)disp) then value(km)=p else if(curCoords(km,3)disp+LA) then value(km)=p else value(km)=0.0 end if
thanks for your sharing, sir. I write the subroutine script, I met a problem that I want introduce an initial stress field with a legendre polynomil. how can I do it. my script like this, can you help find where errors are? subroutine sigini(sigma,coords,ntens,ncrds,noel,npt,layer, $ kspt,lrebar,rebarn) C include 'aba_param.inc' C dimension sigma(ntens),coords(ncrds) character*80 rebarn C integer i double precision x,y, Pnx x=coords(1) y=coords(2) z=coords(3) Pnx=legendreP(3,y/38) C if (n.eq.3.and.abs(x).lt.60.0d0) then sigma(1)=Pnx end if return end C function legendreP(n,y) result(Pn) integer, intent(in) n double precision, intent(in) y double precision Pn
if (n==0) then Pn=1.0d0 else if (n==1) then Pn=y else Pn=((2*n-1)*y*legendreP(n-1,y) $ -(n-1) * legendreP(n-2,y)/n end if end function legendreP
thanks for your sharing, sir. I'm using your script but I'm having trouble getting it to run., can you help find where errors are?
subroutine vdload (
C Read only (unmodifiable)variables -
1 nblock, ndim, stepTime, totalTime,
2 amplitude, curCoords, velocity, dirCos, jltyp, sname,
C Write only (modifiable) variable -
1 value )
C
include 'vaba_param.inc'
C
dimension curCoords(nblock,ndim), velocity(nblock,ndim),
1 dirCos(nblock,ndim,ndim), value(nblock)
character*80 sname
C
real*8 a,b
real*8 LA,LB
real*8 p
!real*8 slabW,v
a=0.35
b=0.2
LA=5
LB=2.5
p=1000
slabW=10
v=20
disp=v*stepTime
do km = 1, nblock
if(curCoords(km,1)(slabW-LB)/2.-b) then
if(curCoords(km,3)disp) then
value(km)=p
else if(curCoords(km,3)disp+LA) then
value(km)=p
else
value(km)=0.0
end if
else if(curCoords(km,1)>(slabW+LB)/2. .and. curCoords(km,1)
Hi.Check your *.log file.
Hi, I found my problem because of the version, I'm using version 2022.@@kianaghani
Hello sir i have an error i try to open your file in abaqus 2021 the database converted to 2021 it has an error when i try to run it
Hello bro. Please, how can I contact you. The vdload subroutine file is not compiling. Guess may be an error somewhere.
Hi. The subroutine works fine. If you have compiling issues, there must be a problem with your ABAQUS not linked with the compiler.
Hi sir! Can I get your email?
Hi. kian.aghani@gmail.com
Thank you for sharing sir
thanks for your sharing, sir. I write the subroutine script, I met a problem that I want introduce an initial stress field with a legendre polynomil. how can I do it. my script like this, can you help find where errors are? subroutine sigini(sigma,coords,ntens,ncrds,noel,npt,layer,
$ kspt,lrebar,rebarn)
C
include 'aba_param.inc'
C
dimension sigma(ntens),coords(ncrds)
character*80 rebarn
C
integer i
double precision x,y, Pnx
x=coords(1)
y=coords(2)
z=coords(3)
Pnx=legendreP(3,y/38)
C
if (n.eq.3.and.abs(x).lt.60.0d0) then
sigma(1)=Pnx
end if
return
end
C
function legendreP(n,y) result(Pn)
integer, intent(in) n
double precision, intent(in) y
double precision Pn
if (n==0) then
Pn=1.0d0
else if (n==1) then
Pn=y
else
Pn=((2*n-1)*y*legendreP(n-1,y)
$ -(n-1) * legendreP(n-2,y)/n
end if
end function legendreP
I think the problem is related to “n”. Introduce “n” before the if condition instead of 3.
Thanks Ill try.@@kianaghani