Hi,
i want to know that rData(1) is for which element
First you have to understand how Abaqus call VUSDFLD subroutine.
It can be more than once and depends on number of elements and element types in your model.
Number of the subroutine calls depends on element type and equals number of section points:
1) membrane with reduced integration (M3D4R)
- has one material point
- one section point per material point
- Abaqus calls VUSDFLD only once (1x1) per increment
2) shell with reduced integration (S4R)
- has one material point
- 5 section points per material point (depends on shell section parameters)
- Abaqus calls VUSDFLD five times (1x5)
3) shell with fully integration (S4)
- has four material point
- 5 section points per material point (depends on shell section parameters)
- Abaqus calls VUSDFLD twenty times (4x5)
In VUSDLFD you have variables to check which material point (kIntPt) and which section point (kSecPt) is used in current call.
Now we need to find element number. Id of elements is in jElem variable.
So if read rData(1) and jElem=1000, kIntPt=3 and kSectPt=2 you got output for 2nd section point of 3rd material point of element 1000.
This is true for one element model. When you have more than one element things are a little bit more complicated.
First you have to understand that Abaqus/Explicit does not call the subroutine for each element separately.
But instead he takes group of elements and pass into VUSDFLD. nblock variable has information how many elements is in the group.
So if you have two S4 elements you do not call the subroutine 40 times but still 20 (total number of section points for one element in the group).
jElem is array with id of all elements, so it can be like this [10, 33, 55] if nblock=3.
In one call you read 1st section point (kSecPt=1) of 1st material point (kIntPt=1) of three elements (jElem=[10, 33, 55]).
In next call you can read 5th section point (kSecPt=5) of 3rd material point (kIntPt=3) of these elements (jElem=[10, 33, 55]).
As you can see in one call you always read the same section point and material point but for many elements.
GETVRM gives you one rData array with all outputs. It's clear what section/material point because of kSectPt and kIntPt variables.
To know which element we need to know relations between rData and jElem array:
rData=[S11_jElem[1], S11_jElem[2], S11_jElem[3], ..., S11_jElem[nblock], S22_jElem[1], S22_jElem[2], S22_jElem[3], ... , S22_jElem[nblock], ...]
where:
jElem[x] - element id on x position on jElem array
Please read this:
i mean how can i present (for example) (rData(1)+rData(2)) in the visualization window??
Values of field variable you store with field(nblock,nfieldv) variable can be save as field output (FV).
You can also save state dependent variables with stateNew(nblock,nstatev) and use SDV field output.
Regards,
Bartosz