User login

Navigation

You are here

Pls help regarding CoordMp

Dear all,

Pls be informed that I am using abaqus explicit to model my
pipeline that
embedded in soil. In standard, Coord 1 means x co-ordinate,
coord 2 means Y
co-ordinnate and coord 3 means Z -co-ordinate. But I can not
undestand the
meaning of CoordMP(nblock,j) in explicit. I want vertical
co-ordinates of some
elements of my model but if I put CoordMP(k,2) it shows
always a constant value
for all elements which make no sense.

Can you
please explain it(CoordMP)? It will be a great help for me.

Pls
suggest.

Thanks a lot.

Brdgs-
Sujan Dutta.

Comments

The variable coordMP has dimensions (nCoord, nblock) and not (nblock, nCoord).  So you should be using coordMP(2,k) instead of coordMP(k,2).

-- Biswajit

Hi Biswajit!

 Thanks for your reply.

I have chekced with abaqus documentation but variable coordMP has dimensions ( nblock,nCoord). Whatever u says is not similar to documentation file of 6.10-EF.

 Can you pls check and advice?

Thanks

Sujan,

I've only got version 6.8 and hope Abaqus hasn't changed everything since then becuase that will break a lot of codes.  If they have, then you'll have to contact Abaqus directly to get an answer for your problem.

The example given in my version has the following form:

 

subroutine vdisp(
c Read only variables -
1 nblock, nDof, nCoord, kstep, kinc,
2 stepTime, totalTime, dtNext, dt,
3 cbname, jBCType, jDof, jNodeUid, amp,
4 coordNp, u, v, a, rf, rmass, rotaryI,
c Write only variable -
5 rval )
c
include 'vaba_param.inc'
c
character*80 cbname
dimension jDof(nDof), jNodeUid(nblock),
1 amp(nbock), coordNp(nCoord,nblock),
2 u(nDof,nblock), v(nDof,nblock), a(nDof,nblock),
3 rf(nDof,nblock), rmass(nblock), rotaryI(3,3,nblock),
4 rval(nDof,nblock)
c
do 100 k = 1, nblock
do 100 j = 1, nDof
if( jDof(j) .gt. 0 ) then
user coding to define rval(j, k)
end if
100 continue
c
return
end

What's the equivalent example in your version?

-- Biswajit

My version is 6.10-EF

Here it is........

subroutine vusdfld(
c Read only -
* nblock, nstatev, nfieldv, nprops, ndir, nshr,
* jElem, kIntPt, kLayer, kSecPt,
* stepTime, totalTime, dt, cmname,
* coordMp, direct, T, charLength, props,
* stateOld,
c Write only -
* stateNew, field )
c
include 'vaba_param.inc'
c
dimension jElem(nblock), coordMp(nblock,*),
* direct(nblock,3,3), T(nblock,3,3),
* charLength(nblock), props(nprops),
* stateOld(nblock,nstatev),
* stateNew(nblock,nstatev),
* field(nblock,nfieldv)
character*80 cmname
c
c Local arrays from vgetvrm are dimensioned to
c maximum block size (maxblk)
c
parameter( nrData=6 )
character*3 cData(maxblk*nrData)
dimension rData(maxblk*nrData), jData(maxblk*nrData)
c
jStatus = 1
call vgetvrm( 'LE', rData, jData, cData, jStatus )
c
if( jStatus .ne. 0 ) then
call xplb_abqerr(-2,'Utility routine VGETVRM '//
* 'failed to get variable.',0,zero,' ')
call xplb_exit
end if
c
call setField( nblock, nstatev, nfieldv, nrData,
* rData, stateOld, stateNew, field)
c
return
end
subroutine setField( nblock, nstatev, nfieldv, nrData,
* strain, stateOld, stateNew, field )
c
include 'vaba_param.inc'
c
dimension stateOld(nblock,nstatev),
* stateNew(nblock,nstatev),
* field(nblock,nfieldv), strain(nblock,nrData)
c
do k = 1, nblock
c
c Absolute value of current strain:
eps = abs( strain(k,1) )
c
c Maximum value of strain up to this point in time:
epsmax = stateOld(k,1)
c
c Use the maximum strain as a field variable
field(k,1) = max( eps, epsmax )
c
c Store the maximum strain as a solution dependent state
stateNew(k,1) = field(k,1)
c
end do
c
return
end

Sujan,

My documentation agrees with yours, so (2,k) vs. (k,2) does not seem to be the problem.   However, have you tried it both ways?  In many of the other routines, the coordinates are stored using the axis index first and the element later.

The easiest check will be to print the entire array and see what it contains.

-- Biswajit

Hi!

I will try and let you know soon.

Can you pls answer the following question?

i want to vary the temperature with depth for my model ( say 0 temperature at top and 5 at bottom) and is it possible to vary the temperature without using subroutine?

If I have to use the subroutine is it possible to avoid CoordMp i.e. Is there any options or tricks?

Thanks a lot for yout help.

Thank you.

--sujan

You can run a heat transfer analysis on the part with a hot bath at one end and a cold bath at the other.  Once you have the output database from the heat trasnfer run, you can then run a structural analysis with those temperatures set as initial conditions.

-- Biswajit

Thanks a lot.

Subscribe to Comments for "Pls help regarding CoordMp"

Recent comments

More comments

Syndicate

Subscribe to Syndicate