×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

How to create a vector field using output variables
2

How to create a vector field using output variables

How to create a vector field using output variables

(OP)
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  

RE: How to create a vector field using output variables

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


 

RE: How to create a vector field using output variables

(OP)
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??

RE: How to create a vector field using output variables

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.

 

RE: How to create a vector field using output variables

(OP)
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

RE: How to create a vector field using output variables

(OP)
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

RE: How to create a vector field using output variables

could you post a Quilt plot ?

RE: How to create a vector field using output variables

(OP)
Hi Xerf,

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

Thanks,

Malik

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources