## 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.

- sujan's blog
- Log in or register to post comments
- 7762 reads

## Comments

## Re: coordMP common block variable in Abaqus

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

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

## Red: CoordMP

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 definerval(j, k)end if

100 continue

c

return

end

What's the equivalent example in your version?

-- Biswajit

## My version is

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

## Re; coordMP

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

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

## Re: Initial temperature field

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.

Thanks a lot.