struct.shell.plastic.ipstate

Syntax

i := struct.shell.plastic.ipstate(p,ipnum)

Get plasticity state indicators at integration point of an element with a plastic material model. Each shell element with a plastic material model has a number of integration points distributed throughout its volume, and each of them tracks its plasticity state. The integration point locations are shown here (see also the struct.shell.plastic.idata function).

Returns:

i - plasticity state indicators, encoded as bits (shear-n: bit 1, tension-n: bit 2, shear-p: bit 3, tension-p: bit 4). The math.and and math.or functions can be used to check against a specific bit or bit pattern. If no bits are set (the integer value is zero), then the element has never yielded.

Arguments:

p - pointer to a shell-type element

ipnum - integration point number as shown here

The following code fragment uses the plasticity state indicators for integration point 5 of the shell element with component id of 115 to print out the plasticity states of this element.

fish define getState( state )
  if ( state == 0 ) then
    io.out('never yielded')
  end_if
  if ( math.and( 1, state ) == 1 ) then
    io.out('shear-n')
  end_if
  if ( math.and( 2, state ) == 2 ) then
    io.out('tension-n')
  end_if
  if ( math.and( 4, state ) == 4 ) then
    io.out('shear-p')
  end_if
  if ( math.and( 8, state ) == 8 ) then
    io.out('tension-p')
  end_if
end
[ getState( struct.shell.plastic.ipstate( struct.find(115), 5 )) ]