Composite material failure criteria processing in random vibration

T
tomrules99@gmail.com
Sun, Mar 2, 2025 4:21 PM

My fellow Ansys Users,

This is a little Lengthy and I apologize in advance. I am currently using v2024r2.

I created a huge model with both layered composites and isotopic materials. The composite bodies were setup using ACP and fed into a structural mechanical static analysis system. The isotropic bodies were added by merging in different mechanical system ‘using’ the mechanical assembly procedure. Follow-on downstream modal, random, and spectrum analyses were added and I performed a pre-tensioned modal followed by psd and SRS analyses.

When I went to post process the random vibration stress/strain/Tsai-wu/puck margins in the random vibration system, I discovered that the built in ACP post-processing functionality only works in static and transient analyses systems, not dynamics!!!

I mean really, why would anyone want to post process safety margins in a dynamic analysis system? What is wrong with me?

Anyway, I turned to trusty apdl, and wrote a macro that works in apdl. I even got some pointers and help from one of Ansys best support engineers, Chandra. The problem is, the macro is too slow for me. My model has 500,000 composite elements and a total of 1,000,000+ distinct layers that I need to evaluate first ply failure on. I estimate, that as written, the macro will take approximately 1.8 days/analysis x 6 systems ≈ 11 days of post processing time. So I need something faster. I’m thinking UPF (User Programmable Feature) in Fortran, but I’ve never done that before. I am also working with Chandra (Ansys) on trying to find a way to get the Etable into an array/table so that I can use apdl vector operations to speed up macro execution. I am also going to try running the analysis from a Ram Disk instead of from my m.2 SSD. From what I'm reading online, that may help improve macro execution time.

So finally, I come to my questions for this group:

  1. Has anyone successfully found a way to efficiently post-process composite failure criteria in mechanical or apdl for random vibration/spectrum analyses?
  2. Can anyone offer any pointers/suggestions for successfully implementing a post-processing UPF?
  3. Does anyone know how to take ETABLE and put I in an array/table for further post-processing?
  4. Does anyone know how to grab the max values from the pretab output? Curiously, I cannot find a documented function or *GET to obtain ETABLE max values. That would actually easily solve my problem without forcing to go through a massive do loop.

For what it’s worth, I’m willing to share my macro code. However, it is slow for large models with sparse SEC and ETYPE numbering.

Best regards everyone, and thank-you in advance for any and all suggestions.

Sincerely,
Thomas Caltabellotta
Senior Mechanical Engineer
CACI inc.

My fellow Ansys Users, This is a little Lengthy and I apologize in advance. I am currently using v2024r2. I created a huge model with both layered composites and isotopic materials. The composite bodies were setup using ACP and fed into a structural mechanical static analysis system. The isotropic bodies were added by merging in different mechanical system ‘using’ the mechanical assembly procedure. Follow-on downstream modal, random, and spectrum analyses were added and I performed a pre-tensioned modal followed by psd and SRS analyses. When I went to post process the random vibration stress/strain/Tsai-wu/puck margins in the random vibration system, I discovered that the built in ACP post-processing functionality only works in static and transient analyses systems, not dynamics!!! I mean really, why would anyone want to post process safety margins in a dynamic analysis system? What is wrong with me? Anyway, I turned to trusty apdl, and wrote a macro that works in apdl. I even got some pointers and help from one of Ansys best support engineers, Chandra. The problem is, the macro is too slow for me. My model has 500,000 composite elements and a total of 1,000,000+ distinct layers that I need to evaluate first ply failure on. I estimate, that as written, the macro will take approximately 1.8 days/analysis x 6 systems ≈ 11 days of post processing time. So I need something faster. I’m thinking UPF (User Programmable Feature) in Fortran, but I’ve never done that before. I am also working with Chandra (Ansys) on trying to find a way to get the Etable into an array/table so that I can use apdl vector operations to speed up macro execution. I am also going to try running the analysis from a Ram Disk instead of from my m.2 SSD. From what I'm reading online, that may help improve macro execution time. So finally, I come to my questions for this group: 1. Has anyone successfully found a way to efficiently post-process composite failure criteria in mechanical or apdl for random vibration/spectrum analyses? 2. Can anyone offer any pointers/suggestions for successfully implementing a post-processing UPF? 3. Does anyone know how to take ETABLE and put I in an array/table for further post-processing? 4. Does anyone know how to grab the max values from the pretab output? Curiously, I cannot find a documented function or *GET to obtain ETABLE max values. That would actually easily solve my problem without forcing to go through a massive do loop. For what it’s worth, I’m willing to share my macro code. However, it is slow for large models with sparse SEC and ETYPE numbering. Best regards everyone, and thank-you in advance for any and all suggestions. Sincerely, Thomas Caltabellotta Senior Mechanical Engineer CACI inc.
MV
Mitch Voehl
Mon, Mar 3, 2025 8:41 AM

See below.

--
Mitch Voehl
CEO and Engineering Consultant

Summit Analysis, Inc.
78748 410th Ave
Lakefield, MN 56150

651-287-2360
www.summitanalysis.com

Specializing in the use of ANSYS (R) finite element analysis software

On 03/02/2025 10:21 AM CST tomrules99--- via Xansys xansys-temp@list.xansys.org wrote:

So finally, I come to my questions for this group:

  1. Does anyone know how to take ETABLE and put it in an array/table for further post-processing?

*VGET,array_name,ELEM,n,ETAB,label
*VSCFUN,etab_max,MAX,array_name

https://www.padtinc.com/wp-content/uploads/2024/03/Get_Summary_2018_09_10-2.pdf

  1. Does anyone know how to grab the max values from the pretab output? Curiously, I cannot find a documented function or *GET to obtain ETABLE max values. That would actually easily solve my problem without forcing to go through a massive do loop.

Look at the command ESORT.  This will sort the ETABLE in ascending or descending order, then just retrieve/print the first or last position.

*GET,etable_max,SORT,0,MAX

Best regards everyone, and thank-you in advance for any and all suggestions.

Sincerely,
Thomas Caltabellotta
Senior Mechanical Engineer
CACI inc.


See below. -- Mitch Voehl CEO and Engineering Consultant Summit Analysis, Inc. 78748 410th Ave Lakefield, MN 56150 651-287-2360 www.summitanalysis.com Specializing in the use of ANSYS (R) finite element analysis software > On 03/02/2025 10:21 AM CST tomrules99--- via Xansys <xansys-temp@list.xansys.org> wrote: > > > > So finally, I come to my questions for this group: > > 3. Does anyone know how to take ETABLE and put it in an array/table for further post-processing? *VGET,array_name,ELEM,n,ETAB,label *VSCFUN,etab_max,MAX,array_name https://www.padtinc.com/wp-content/uploads/2024/03/Get_Summary_2018_09_10-2.pdf > 4. Does anyone know how to grab the max values from the pretab output? Curiously, I cannot find a documented function or *GET to obtain ETABLE max values. That would actually easily solve my problem without forcing to go through a massive do loop. Look at the command ESORT. This will sort the ETABLE in ascending or descending order, then just retrieve/print the first or last position. *GET,etable_max,SORT,0,MAX > Best regards everyone, and thank-you in advance for any and all suggestions. > > Sincerely, > Thomas Caltabellotta > Senior Mechanical Engineer > CACI inc. > _______________________________________________ >
T
Tom
Mon, Mar 3, 2025 12:33 PM

Thank-you very much Mitch!!

Tom Caltabellotta
Senior Mechanical Engineer
CACI Inc.

Sent from my iPhone

On Mar 3, 2025, at 3:44 AM, Mitch Voehl via Xansys xansys-temp@list.xansys.org wrote:

See below.

--
Mitch Voehl
CEO and Engineering Consultant

Summit Analysis, Inc.
78748 410th Ave
Lakefield, MN 56150

651-287-2360
www.summitanalysis.com

Specializing in the use of ANSYS (R) finite element analysis software

On 03/02/2025 10:21 AM CST tomrules99--- via Xansys xansys-temp@list.xansys.org wrote:

So finally, I come to my questions for this group:

  1. Does anyone know how to take ETABLE and put it in an array/table for further post-processing?

*VGET,array_name,ELEM,n,ETAB,label
*VSCFUN,etab_max,MAX,array_name

https://www.padtinc.com/wp-content/uploads/2024/03/Get_Summary_2018_09_10-2.pdf

  1. Does anyone know how to grab the max values from the pretab output? Curiously, I cannot find a documented function or *GET to obtain ETABLE max values. That would actually easily solve my problem without forcing to go through a massive do loop.

Look at the command ESORT.  This will sort the ETABLE in ascending or descending order, then just retrieve/print the first or last position.

*GET,etable_max,SORT,0,MAX

Best regards everyone, and thank-you in advance for any and all suggestions.

Sincerely,
Thomas Caltabellotta
Senior Mechanical Engineer
CACI inc.



Xansys mailing list -- xansys-temp@list.xansys.org
To unsubscribe send an email to xansys-temp-leave@list.xansys.org
If you are receiving too many emails from XANSYS please consider changing account settings to Digest mode which will send a single email per day.

Please send administrative requests such as deletion from XANSYS to xansys-mod@tynecomp.co.uk and not to the list

Thank-you very much Mitch!! Tom Caltabellotta Senior Mechanical Engineer CACI Inc. Sent from my iPhone On Mar 3, 2025, at 3:44 AM, Mitch Voehl via Xansys <xansys-temp@list.xansys.org> wrote: See below. -- Mitch Voehl CEO and Engineering Consultant Summit Analysis, Inc. 78748 410th Ave Lakefield, MN 56150 651-287-2360 www.summitanalysis.com Specializing in the use of ANSYS (R) finite element analysis software > On 03/02/2025 10:21 AM CST tomrules99--- via Xansys <xansys-temp@list.xansys.org> wrote: > > > > So finally, I come to my questions for this group: > > 3. Does anyone know how to take ETABLE and put it in an array/table for further post-processing? *VGET,array_name,ELEM,n,ETAB,label *VSCFUN,etab_max,MAX,array_name https://www.padtinc.com/wp-content/uploads/2024/03/Get_Summary_2018_09_10-2.pdf > 4. Does anyone know how to grab the max values from the pretab output? Curiously, I cannot find a documented function or *GET to obtain ETABLE max values. That would actually easily solve my problem without forcing to go through a massive do loop. Look at the command ESORT. This will sort the ETABLE in ascending or descending order, then just retrieve/print the first or last position. *GET,etable_max,SORT,0,MAX > Best regards everyone, and thank-you in advance for any and all suggestions. > > Sincerely, > Thomas Caltabellotta > Senior Mechanical Engineer > CACI inc. > _______________________________________________ > _______________________________________________ Xansys mailing list -- xansys-temp@list.xansys.org To unsubscribe send an email to xansys-temp-leave@list.xansys.org If you are receiving too many emails from XANSYS please consider changing account settings to Digest mode which will send a single email per day. Please send administrative requests such as deletion from XANSYS to xansys-mod@tynecomp.co.uk and not to the list