Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations IDS on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to create a vector field using output variables 2

Status
Not open for further replies.

eispiata

Materials
Feb 18, 2008
48
Hi,

I created a UVARM subroutine to create some output variables. I would like to use some of these output variables to define a vector field at "each node" for my 2D planar model.

Indeed, i would like to use, let's say UVAR(10) and UVAR(11), as the components of a vector in the plane so that UVAR(10) is the X-component of this vector and UVAR(11) its Y-component. Thus i could get a vector field that i could plot on the deformed configuration.

Best regards,

Malik
 
Replies continue below

Recommended for you

I do not see any advantage in converting the components of a vector (which can be seen as individual scalar fields) into a vector field, unless you need a "symbol plot".

For creating a new vector field output you probably need to use the ABAQUS Scripting Interface. There is an example in ABAQUS Scripting Interface Manual -> 8.6.4 Writing field output data.

If you are only interested in contour plots of the magnitude of the vector field, you can use the built-in capabilities of the CAE: see Visualization->Tools Menu->Create Field Output->From Fields

There, you can create a new scalar field representing the magnitude of the vector field by direct computation using, for example, the common Euclidian norm formula: sqrt(UVAR(10)*UVAR(10)+UVAR(11)*UVAR(11)). (I assumed you have requested the output of UVAR before submitting the job - I don't think they are output by default.)

The user variables are output at integration points, not at nodes. However, for contour plots ABAQUS implicitly extrapolates the values from the integration points to the nodes (which might lead to some misleading plots for regions with high field gradients).


 
Hi Xerf,

I did exactly what you said in your reply. Indeed i created a new scalar field representing the square euclidean norm and i was really surprised to get negative values.

I am using Quad elements with quadratic interpolation and it looks like when i ask Abaqus to calculate UVAR(10)*UVAR(10)+UVAR(11)*UVAR(11) it does not use the UVAR(10) value at the same points. What i mean is that when i ask Abaqus to compute UVAR(10)*UVAR(10) it should use the value at the same point to compute the product but it looks like it uses a UVAR(10) value at a node in the element and multiplies it by the UVAR(10) value at an other node in the same element which leads to a negative euclidean norm.
Indeed in the elements that have got a negative euclidean norm value, i noticed that some nodes have a negative value and the other nodes have a positive value of the quantity in the same element...

I am still really surprised by the result that i got when i tried to compute the euclidean norm of the vector.

Do you have any explanation for that surprising result??
 
1. I think you cannot get a negative value. Because sqrt(x) assumes x>0. If x<0 => sqrt(x) is a complex number.

2. I suspect you are looking at (banded) contour plots. As I mentioned, in my previous reply :

"The user variables are output at integration points, not at nodes. However, for contour plots ABAQUS implicitly extrapolates the values from the integration points to the nodes (which might lead to some misleading plots for regions with high field gradients)."

This extrapolation does not take into consideration the physical meaning of the quantity being plotted and you may get negative values of for quantity which can take only positive values, e.g. Mises stress, equivalent plastic strain, vector magnitudes etc.

This happens only in the case of (banded) contour plots (not with quilt plots) and only for the quantities computed at integration points (e.g., stress, strain, STATEV, UVAR) and not for the quantities computed at nodes (e.g., displacements, temperature).

To get the real value you should use the Query->Probe values or create a report.

I don't think you'll get a negative value of a vector magnitude unless you did something wrong when created the new field output.

 
Hi Xerf,

Please take a look at the part of my subroutine where i define the euclidean norm of the vector (actually its square).

First of all as you can see on the .odb file it looks like the extrapolation is not good (cf. jpeg file). But i don't see why the norm (UVAR(138)) is negative whereas it should be positive by definition...???

PS: to help you understand the situation, i let you know that SIGMA is the Eshelby tensor = W*I-C*S
where W is the strain energy density; S, the 2nd Piola-Kirchhoff stress tensor and C, the Green-Lagrange tensor. So its components can be either positive or negative...


ccccccccccccccccccccccccccccccccccccc
...

do i=1,3
do j=1,3
SIGMA(i,j)=Senerg*Id(i,j)-SIGMAD(i,j)
enddo
enddo
c
c
UVAR(123) = SIGMA(1,1)
UVAR(124) = SIGMA(1,2)
UVAR(125) = SIGMA(1,3)
UVAR(126) = SIGMA(2,1)
UVAR(127) = SIGMA(2,2)
UVAR(128) = SIGMA(2,3)
UVAR(129) = SIGMA(3,1)
UVAR(130) = SIGMA(3,2)
UVAR(131) = SIGMA(3,3)

..... and then

Norm=SIGMA(1,2)*SIGMA(1,2)+SIGMA(2,2)*SIGMA(2,2)
UVAR(138)=Norm
cccccccccccccccccccccccccccccccccccccccc
 
 http://files.engineering.com/getfile.aspx?folder=66257554-39f5-4848-80eb-675ea71e876f&file=negativenorm.JPG
Actually I tried with a very simple model and i got the same negative euclidean norm.

What i did is that i put a crack into a 2D planar model subjected to uniaxial tension. Then i compared the S12 stress component with the UVARM59 components. Indeed in my UVARM subroutine, i called the stress tensor S and UVAR59 is assigned the S12 component. As you can see on the picture they completely match.

Then i created a Field output in the Visualization module. Actually i asked Abaqus to compute S12*S12 (cf. picture). As you can see the value is negative in some regions.

How is this possible?

Thanks,

Malik
 
 http://files.engineering.com/getfile.aspx?folder=99f3fb18-4092-4041-9722-2ce10268ab90&file=FieldoutputS12timesS12.JPG
Hi Xerf,

Actually i solved the "problem". I read up on how Abaqus computes the results etc and i found the solution.

Thanks,

Malik
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor