Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

How to evalute stress on gauss point with MATLAB?

Please login with a confirmed email address before reporting spam

The below post is related to an archived discussion


[start here] Difference B/W Von Mises Stress And Von Mises Stress Gauss Point Evaluation.

Does any one know what is the difference between simple von Mises stresses and von Mises stresses Gauss point evaluation. Also what is the difference b/w the effective plastic strain and simply strains in x and y directions.

How to evalute stress on gauss point with MATLAB?


4 Replies Last Post Jul 25, 2019, 7:58 a.m. EDT
Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 5 years ago Jul 18, 2019, 8:35 a.m. EDT
Updated: 5 years ago Jul 18, 2019, 8:32 a.m. EDT

Hi,

A variable like solid.mises is evaluated where requested, typically at the element nodes.

A variable like solid.misesGp is evaluated in the Gauss points, and then extrapolated as a smooth field over the element. For variables that depend on results which fundamentally reside at Gauss points, like plastic strains, this is more accurate.

See also https://www.comsol.com/blogs/introduction-to-numerical-integration-and-gauss-points (towads the end).

Essentially the built in Gauss Point variables are defined similar to solid.misesGp = gpeval(4,solid.mises).

For the defintion of effective plastic strain, please refer to the documentation. It is related to the indicidual components of plastic strain in a way similar to how the von Mises stress is related to the individual stress tensor components.

Regards,
Henrik

-------------------
Henrik Sönnerlind
COMSOL
Hi, A variable like solid.mises is evaluated where requested, typically at the element nodes. A variable like solid.misesGp is evaluated in the Gauss points, and then extrapolated as a smooth field over the element. For variables that depend on results which fundamentally reside at Gauss points, like plastic strains, this is more accurate. See also (towads the end). Essentially the built in Gauss Point variables are defined similar to solid.misesGp = gpeval(4,solid.mises). For the defintion of effective plastic strain, please refer to the documentation. It is related to the indicidual components of plastic strain in a way similar to how the von Mises stress is related to the individual stress tensor components. Regards, Henrik

Please login with a confirmed email address before reporting spam

Posted: 5 years ago Jul 24, 2019, 2:06 a.m. EDT
Updated: 5 years ago Jul 24, 2019, 2:07 a.m. EDT

Hi,

A variable like solid.mises is evaluated where requested, typically at the element nodes.

A variable like solid.misesGp is evaluated in the Gauss points, and then extrapolated as a smooth field over the element. For variables that depend on results which fundamentally reside at Gauss points, like plastic strains, this is more accurate.

See also (towads the end).

Essentially the built in Gauss Point variables are defined similar to solid.misesGp = gpeval(4,solid.mises).

For the defintion of effective plastic strain, please refer to the documentation. It is related to the indicidual components of plastic strain in a way similar to how the von Mises stress is related to the individual stress tensor components.

Regards,
Henrik

Hi, Henrik,

Thank you for your reply.

I have read the link you introduced. While I still have some problems. If the data evaluated by the operator "gpeval(4,expre)" is interpolated at Gauss Points near the input coordinate, what's the meaning of gpeval(4,expre,-1), gpeval(4,expre,0), gpeval(4,expre,1) respectively? I am facing the problem of stress concentration when plotting the energy flow (solid.IX, solid.IY) in a 3D vector field (The reason why use Arrow Volume to plot plane vector field is that the coordinate of evaluation points can be controlled in Arrow Volume). I found gpeval(4,expre,-1) and gpeval(4,expre,1 and above) can have almost same vector field that is chaotic near the stress concentration place (-1, 1 and above exorder all can be convergent but chaotic). Only gpeval(4,expre,0) can give a smooth result (I don't understand why the expre 0 that is between -1 and 1 can have a smooth result), but still different from the result of Arrow Surface Uniform Placement (Select evaluation points by COMSOL itself).

I found when I plot the vector field with Arrow Surface and only set the uniform total arrows number to let COMSOL select evaluate points placement automatically, the result vector field is smooth, reasonable and satisfactory. So I gauss maybe COMSOL internally conduct some smooth and average algorithm (Maybe average the data at many Gauss Points near stress concentration place? )? Or another possible situation is that COMSOL just simply evaluate solid.IX (or solid.SX) at Gauss Points near input coordinate and interpolate, then the reason why the "COMSOL Arrow Surface automatically selected points" can be smooth is that COMSOL avoids the stress concentration place when it select arrow placement automatically? Which one is COMSOL's internal automatical evaluating method?

And if I just simply plot solid.IX at mesh nodes, the resulting pattern can be reasonable (But the arrows is not dense enough if I don't add unnecessary denser mesh). Consequently, I gauss the chaotic vectors at stress concentration place may be caused by the COMSOL interpolation. How can I solve this problem? The stress concentration place is near the 90 [deg] joint angle of two layers of stairs.

Do you have any suggestion to solve the problem of stress concentration? Or just avoid inputting the coordinate near stress concentration place and avoid evaluating mesh nodes data near stress concentration place when I analyze the energy flux?

Thank you very much! Look forward to your reply.

>Hi, > >A variable like solid.mises is evaluated where requested, typically at the element nodes. > >A variable like solid.misesGp is evaluated in the Gauss points, and then extrapolated as a smooth field over the element. For variables that depend on results which fundamentally reside at Gauss points, like plastic strains, this is more accurate. > >See also (towads the end). > >Essentially the built in Gauss Point variables are defined similar to solid.misesGp = gpeval(4,solid.mises). > >For the defintion of effective plastic strain, please refer to the documentation. It is related to the indicidual components of plastic strain in a way similar to how the von Mises stress is related to the individual stress tensor components. > > Regards, > Henrik Hi, Henrik, Thank you for your reply. I have read the link you introduced. While I still have some problems. If the data evaluated by the operator "gpeval(4,*expre*)" is interpolated at Gauss Points near the input coordinate, what's the meaning of gpeval(4,*expre*,**-1**), gpeval(4,*expre*,**0**), gpeval(4,*expre*,**1**) respectively? I am facing the problem of stress concentration when plotting the energy flow (solid.IX, solid.IY) in a 3D vector field (The reason why use **Arrow Volume** to plot plane vector field is that the coordinate of evaluation points can be controlled in Arrow Volume). I found gpeval(4,expre,-1) and gpeval(4,expre,*1 and above*) can have almost same vector field that is chaotic near the stress concentration place (-1, 1 and above *exorder* all can be convergent but chaotic). Only gpeval(4,*expre*,**0**) can give a smooth result (I don't understand why the *expre* 0 that is between -1 and 1 can have a smooth result), but still different from the result of **Arrow Surface** Uniform Placement (Select evaluation points by COMSOL itself). I found when I plot the vector field with **Arrow Surface** and only set the uniform total **arrows number** to let COMSOL select evaluate points placement automatically, the result vector field is smooth, reasonable and satisfactory. So I gauss maybe COMSOL internally conduct some smooth and average algorithm (Maybe average the data at many Gauss Points near stress concentration place? )? Or another possible situation is that COMSOL just simply evaluate **solid.IX** (or **solid.SX**) at Gauss Points near input coordinate and interpolate, then the reason why the "COMSOL Arrow Surface automatically selected points" can be smooth is that COMSOL avoids the stress concentration place when it select arrow placement automatically? Which one is COMSOL's internal automatical evaluating method? And if I just simply plot solid.IX at mesh nodes, the resulting pattern can be reasonable (But the arrows is not dense enough if I don't add unnecessary denser mesh). Consequently, I gauss the chaotic vectors at stress concentration place may be caused by the COMSOL interpolation. How can I solve this problem? The stress concentration place is near the 90 [deg] joint angle of two layers of stairs. Do you have any suggestion to solve the problem of stress concentration? Or just avoid inputting the coordinate near stress concentration place and avoid evaluating mesh nodes data near stress concentration place when I analyze the energy flux? Thank you very much! Look forward to your reply.

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 5 years ago Jul 24, 2019, 3:11 p.m. EDT
Updated: 5 years ago Jul 24, 2019, 3:07 p.m. EDT

Hi,

gpeval(*,expre,0) will produce a 0:th order field over each element, that is a constant value. This will for obvious reasons be very stable.

gpeval(4,expre,*) means that we do the interpolation from 3x3 Gauss points in a 2D quad. These 9 values can at most be fitted to a full 2:nd order polynomial in 2D (it has 6 terms, and we need 10 for a 3:rd order polynomial).

Thus, gpeval(4, expre,-1) = gpeval(4,expre,2) since '-1' means 'take largest possible order'.

Also gpeval(4,expre,value > 2) = gpeval(4,expre,2).

The automatic arrow placement for surface arrows does not all look at the values. It places the arrows at a number of mesh nodes which are chosen by some heuristics to get a pseudo-uniform distribution.

Using gpeval() in a boundary plot is not at all the same as using it in a volume plot. For the boundary plot, all evaluations are done on the boundary. So if we have brick elements, gpeval(4,,) creates a 3D interpolation over the volume from 3x3x3 Gauss points if it is a volume plot, but a 2D interpolation from 3x3 Gauss points on the surface of the element if the evaluation is on a boundary. For fields with strong gradients this can make a large difference.

If you want to do a boundary plot of Gauss point values from inside the domain, you must have a variable defined in the domain, similar to the built-in solid.misesGp. You can create such a variable by using a gpeval() expression under Definitions->Variables.

Maybe you can you share some plots?

Regards,
Henrik

-------------------
Henrik Sönnerlind
COMSOL
Hi, gpeval(\*,expre,0) will produce a 0:th order field over each element, that is a constant value. This will for obvious reasons be very stable. gpeval(4,expre,\*) means that we do the interpolation from 3x3 Gauss points in a 2D quad. These 9 values can at most be fitted to a full 2:nd order polynomial in 2D (it has 6 terms, and we need 10 for a 3:rd order polynomial). Thus, gpeval(4, expre,-1) = gpeval(4,expre,2) since '-1' means 'take largest possible order'. Also gpeval(4,expre,value > 2) = gpeval(4,expre,2). The automatic arrow placement for surface arrows does not all look at the values. It places the arrows at a number of mesh nodes which are chosen by some heuristics to get a pseudo-uniform distribution. Using gpeval() in a boundary plot is not at all the same as using it in a volume plot. For the boundary plot, all evaluations are done on the boundary. So if we have brick elements, gpeval(4,*,*) creates a 3D interpolation over the volume from 3x3x3 Gauss points if it is a volume plot, but a 2D interpolation from 3x3 Gauss points on the surface of the element if the evaluation is on a boundary. For fields with strong gradients this can make a large difference. If you want to do a boundary plot of Gauss point values from inside the domain, you must have a variable defined in the domain, similar to the built-in solid.misesGp. You can create such a variable by using a gpeval() expression under Definitions->Variables. Maybe you can you share some plots? Regards, Henrik

Please login with a confirmed email address before reporting spam

Posted: 5 years ago Jul 25, 2019, 7:58 a.m. EDT
Updated: 5 years ago Jul 25, 2019, 7:58 a.m. EDT

Hi,

gpeval(*,expre,0) will produce a 0:th order field over each element, that is a constant value. This will for obvious reasons be very stable.

gpeval(4,expre,*) means that we do the interpolation from 3x3 Gauss points in a 2D quad. These 9 values can at most be fitted to a full 2:nd order polynomial in 2D (it has 6 terms, and we need 10 for a 3:rd order polynomial).

Thus, gpeval(4, expre,-1) = gpeval(4,expre,2) since '-1' means 'take largest possible order'.

Also gpeval(4,expre,value > 2) = gpeval(4,expre,2).

The automatic arrow placement for surface arrows does not all look at the values. It places the arrows at a number of mesh nodes which are chosen by some heuristics to get a pseudo-uniform distribution.

Using gpeval() in a boundary plot is not at all the same as using it in a volume plot. For the boundary plot, all evaluations are done on the boundary. So if we have brick elements, gpeval(4,,) creates a 3D interpolation over the volume from 3x3x3 Gauss points if it is a volume plot, but a 2D interpolation from 3x3 Gauss points on the surface of the element if the evaluation is on a boundary. For fields with strong gradients this can make a large difference.

If you want to do a boundary plot of Gauss point values from inside the domain, you must have a variable defined in the domain, similar to the built-in solid.misesGp. You can create such a variable by using a gpeval() expression under Definitions->Variables.

Maybe you can you share some plots?

Regards,
Henrik

Dear Mr. Henrik,

Thank you very much for your explanation! Your reply helps me have a deeper understanding of the COMSOL physical variable evaluation.

My problem is caused by the interpolation error on the stress concentration region, so gpeval(4,expre,0) should be more suitable for me (Just evaluate the data on Gauss Points and do not interplate). I tried to use "mphinterp" operator to extract calculated data and conduct more optimization work in MATLAB, while the extracted interpolated data is also chaotic because of the interpolation error on the stress concentration region. Therefore, it seems that the only choice for me is to evaluate the original data at mesh nodes and delete the data on the stress concentration region.

In my model, the stress concentration region is the joint part of two steps, as shown in the first two figures in the attachment. The third figure shows the chaotic energy flux vector field in the stress concentration region, and the vectors marked with red "x" are incorrect ones (Amplitude and direction are all incorrect). The model is consist of two layers of panels that are stuck together and under excitation. So stress concentration phenomenon will happen near the margin of the smaller block on the bigger block. Do you have any suggestions to solve this kind of stress concentration problem?

Thank you very much! Look forward to your reply.

>Hi, > >gpeval(\*,expre,0) will produce a 0:th order field over each element, that is a constant value. This will for obvious reasons be very stable. > >gpeval(4,expre,\*) means that we do the interpolation from 3x3 Gauss points in a 2D quad. These 9 values can at most be fitted to a full 2:nd order polynomial in 2D (it has 6 terms, and we need 10 for a 3:rd order polynomial). > >Thus, gpeval(4, expre,-1) = gpeval(4,expre,2) since '-1' means 'take largest possible order'. > >Also gpeval(4,expre,value > 2) = gpeval(4,expre,2). > >The automatic arrow placement for surface arrows does not all look at the values. It places the arrows at a number of mesh nodes which are chosen by some heuristics to get a pseudo-uniform distribution. > >Using gpeval() in a boundary plot is not at all the same as using it in a volume plot. For the boundary plot, all evaluations are done on the boundary. So if we have brick elements, gpeval(4,*,*) creates a 3D interpolation over the volume from 3x3x3 Gauss points if it is a volume plot, but a 2D interpolation from 3x3 Gauss points on the surface of the element if the evaluation is on a boundary. For fields with strong gradients this can make a large difference. > >If you want to do a boundary plot of Gauss point values from inside the domain, you must have a variable defined in the domain, similar to the built-in solid.misesGp. You can create such a variable by using a gpeval() expression under Definitions->Variables. > >Maybe you can you share some plots? > >Regards, >Henrik Dear Mr. Henrik, Thank you very much for your explanation! Your reply helps me have a deeper understanding of the COMSOL physical variable evaluation. My problem is caused by the interpolation error on the stress concentration region, so gpeval(4,*expre*,0) should be more suitable for me (Just evaluate the data on Gauss Points and do not interplate). I tried to use "mphinterp" operator to extract calculated data and conduct more optimization work in MATLAB, while the extracted interpolated data is also chaotic because of the interpolation error on the stress concentration region. Therefore, it seems that the only choice for me is to evaluate the original data at mesh nodes and delete the data on the stress concentration region. In my model, the stress concentration region is the joint part of two steps, as shown in the first two figures in the attachment. The third figure shows the chaotic energy flux vector field in the stress concentration region, and the vectors marked with red "x" are incorrect ones (Amplitude and direction are all incorrect). The model is consist of two layers of panels that are stuck together and under excitation. So stress concentration phenomenon will happen near the margin of the smaller block on the bigger block. Do you have any suggestions to solve this kind of stress concentration problem? Thank you very much! Look forward to your reply.

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.