


{"id":440151,"date":"2025-08-27T08:04:56","date_gmt":"2025-08-27T08:04:56","guid":{"rendered":"https:\/\/innovationspace.ansys.com\/forum\/forums\/topic\/thermomechanical-analysis\/"},"modified":"2025-08-28T13:04:21","modified_gmt":"2025-08-28T13:04:21","slug":"thermomechanical-analysis","status":"answered","type":"topic","link":"https:\/\/innovationspace.ansys.com\/forum\/forums\/topic\/thermomechanical-analysis\/","title":{"rendered":"Thermomechanical Analysis"},"content":{"rendered":"<p>&lt;p&gt;&lt;p&gt;&lt;p class=&#8221;my-0&#8243;&gt;Hi,&lt;\/p&gt;&lt;p class=&#8221;my-0&#8243;&gt;I am working on a 3D thermomechanical analysis using ANSYS APDL. I have completed the transient thermal analysis and am now coupling the thermal results with the mechanical model using load-teansfer coupling method, where the temperature distribution from the thermal analysis acts as a thermal load in the structural model. The body starts at an initial temperature above 2000&deg;C and cools down to below 1800&deg;C.&lt;\/p&gt;&lt;p class=&#8221;my-0&#8243;&gt;I have two questions regarding the structural analysis setup:&lt;\/p&gt;&lt;\/p&gt;&lt;\/p&gt;<\/p>\n<ol>\n<li>&lt;p class=&#8221;my-0&#8243;&gt;What should be used as the reference temperature for thermal strain calculations? Should it be 20&deg;C, representing a no-thermal-strain baseline, or the initial temperature of 2000&deg;C, given that the body contracts during cooling?&lt;\/p&gt;<\/li>\n<li>&lt;p class=&#8221;my-0&#8243;&gt;Should the structural analysis be run as a transient or a static analysis? Considering that the thermal analysis is transient, is it necessary for the structural solution to also be transient to capture thermal stresses accurately?&lt;\/p&gt;<\/li>\n<\/ol>\n<p>&lt;p&gt;&lt;p&gt;&lt;p class=&#8221;my-0&#8243;&gt;Additionally, does the structural solution need transient time steps to properly capture the effects of the cooling rate on thermal stresses?&lt;\/p&gt;&lt;p class=&#8221;my-0&#8243;&gt;Any guidance on best practices or examples for modeling this type of thermomechanical cooling scenario in APDL would be highly appreciated.&lt;\/p&gt;&lt;\/p&gt;&lt;p&gt;&nbsp;&lt;\/p&gt;&lt;p&gt;Here is the first version of the code I am using, but it does not work (only the first step&#8217;s temperature profile is read through out the time):&lt;\/p&gt;&lt;div&gt;fini&lt;\/div&gt;&lt;div&gt;\/clear&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! Lire le resultat de la thermique&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\/div&gt;&lt;div&gt;RESUME,&#8217;Thermal_Analysis&#8217;,&#8217;db&#8217;,,0,0&lt;\/div&gt;&lt;div&gt;\/reset&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\/div&gt;&lt;div&gt;\/filname,Mechanical_Analysis,1&lt;\/div&gt;&lt;div&gt;save&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! Delete unused elements et nodes&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&lt;\/div&gt;&lt;div&gt;\/prep7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Enters the model creation preprocessor.&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;allsel&lt;\/div&gt;&lt;div&gt;esel,s,type,,10,110,1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Selects a subset of elements.&lt;\/div&gt;&lt;div&gt;nsle,s,1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Selects those nodes attached to the selected elements.&lt;\/div&gt;&lt;div&gt;edele,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Deletes selected elements from the model.&lt;\/div&gt;&lt;div&gt;ndele,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Deletes selected nodes from the model.&lt;\/div&gt;&lt;div&gt;etdele,10,110,1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Deletes element types.&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;allsel&lt;\/div&gt;&lt;div&gt;cmsel,u,vol_b1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Unselect vol 1&lt;\/div&gt;&lt;div&gt;vclear,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Deletes nodes and volume elements associated with selected volumes.&lt;\/div&gt;&lt;div&gt;aslv,s&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Selects those areas contained in the selected volumes&lt;\/div&gt;&lt;div&gt;lsla,s&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Selects those lines contained in the selected areas&lt;\/div&gt;&lt;div&gt;ksll,s&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Selects those keypoints contained in the selected lines&lt;\/div&gt;&lt;div&gt;vdele,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Deletes unmeshed volumes.&lt;\/div&gt;&lt;div&gt;adele,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Deletes unmeshed areas.&lt;\/div&gt;&lt;div&gt;ldele,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Deletes unmeshed lines.&lt;\/div&gt;&lt;div&gt;kdele,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Deletes unmeshed keypoints.&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;esel,s,type,,2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Selects a subset of elements&lt;\/div&gt;&lt;div&gt;edele,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Deletes selected elements from the model&lt;\/div&gt;&lt;div&gt;etdele,2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Deletes element types&lt;\/div&gt;&lt;div&gt;allsel&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! Suppression des conditions aux limites thermiques&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&lt;\/div&gt;&lt;div&gt;lsclear,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Clears loads and load step options from the database&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! Switch Element type&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&lt;\/div&gt;&lt;div&gt;ETCHG,TTS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Converts the Thermal elements to Structural elements (70 &gt; 185)&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! Proprietes des materiaux&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\/div&gt;&lt;div&gt;\/input,Material_Properties,inp&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! Components definition&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&lt;\/div&gt;&lt;div&gt;&#8230;&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\/div&gt;&lt;div&gt;! Boundary Conditions&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&lt;\/div&gt;&lt;div&gt;FINISH&lt;\/div&gt;&lt;div&gt;\/SOLU&lt;\/div&gt;&lt;div&gt;! Zero displacement defined at some surfaces&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&lt;\/div&gt;&lt;div&gt;cmsel,s,nsurf_1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Selects a subset of components and assemblies&lt;\/div&gt;&lt;div&gt;cmsel,a,nsurf_2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Selects a subset of components and assemblies&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;D,all,ux,0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Zero displacements in the x-axis&lt;\/div&gt;&lt;div&gt;D,all,uy,0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Zero displacements in the y-axis&lt;\/div&gt;&lt;div&gt;D,all,uz,0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Zero displacements in the z-axis&lt;\/div&gt;&lt;div&gt;allsel&lt;\/div&gt;&lt;div&gt;save&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\/div&gt;&lt;div&gt;! Solution of thermal-stress problem&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&lt;\/div&gt;&lt;div&gt;\/solu&lt;\/div&gt;&lt;div&gt;ANTYPE,trans,new&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Specifies the analysis type and restart status&lt;\/div&gt;&lt;div&gt;rescontrol,define,all,last&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! creation des restart files pour tous les loadstep et dernier substep Dispose d&#8217;un menu contextuel&lt;\/div&gt;&lt;div&gt;TREF,2000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Defines the reference temperature for thermal strain calculations&lt;\/div&gt;&lt;div&gt;allsel&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! Initial condition&lt;\/div&gt;&lt;div&gt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&lt;\/div&gt;&lt;div&gt;ldread,temp,1,,,2,&#8221;Thermal_Analysis&#8221;,rth&lt;\/div&gt;&lt;div&gt;time,time_array(1,1)&lt;\/div&gt;&lt;div&gt;kbc,1&lt;\/div&gt;&lt;div&gt;autots,on&lt;\/div&gt;&lt;div&gt;solve&lt;\/div&gt;&lt;div&gt;&nbsp;&lt;\/div&gt;&lt;div&gt;! *do,i,1,n_time_step,1&lt;\/div&gt;&lt;div&gt;*do,i,2,10,1&lt;\/div&gt;&lt;div&gt;\/solu&lt;\/div&gt;&lt;div&gt;time,time_array(i,1)&lt;\/div&gt;&lt;div&gt;autots,on&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Specifies whether to use automatic time stepping or load stepping&lt;\/div&gt;&lt;div&gt;lnsrch,on&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Activates a line search to be used with Newton-Raphson&lt;\/div&gt;&lt;div&gt;outres,all,all&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;! Controls the solution-result data written to the database&lt;\/div&gt;&lt;div&gt;ldread,temp,i,,,1,&#8221;Thermal_Analysis&#8221;,rth&lt;\/div&gt;&lt;div&gt;solve&lt;\/div&gt;&lt;div&gt;save&lt;\/div&gt;&lt;div&gt;*enddo&lt;\/div&gt;&lt;p&gt;&lt;br&gt;&nbsp;&lt;\/p&gt;&lt;\/p&gt;<\/p>\n","protected":false},"template":"","class_list":["post-440151","topic","type-topic","status-answered","hentry","topic-tag-ansys-mapdl-1","topic-tag-ansys-structural","topic-tag-apdl","topic-tag-coupled-simulation","topic-tag-thermomechancial"],"aioseo_notices":[],"acf":[],"custom_fields":[{"0":{"_bbp_forum_id":["27791"],"_bbp_topic_id":["440151"],"_bbp_subscription":["478016","9935","589822"],"_bbp_author_ip":["147.161.153.18"],"_bbp_last_reply_id":["440453"],"_bbp_last_active_id":["440453"],"_bbp_last_active_time":["2025-09-01 07:46:02"],"_bbp_reply_count":["4"],"_bbp_reply_count_hidden":["0"],"_bbp_voice_count":["2"],"_bbp_engagement":["478016","9935"],"_btv_view_count":["525"],"_bbp_topic_status":["answered"],"_bbp_likes_count":["1"],"_edit_last":["478016"],"_bbp_revision_log":["a:2:{i:440196;a:2:{s:6:\"author\";i:478016;s:6:\"reason\";s:16:\"Adding APDL code\";}i:440249;a:2:{s:6:\"author\";i:478016;s:6:\"reason\";s:26:\"correcting coupling method\";}}"],"_edit_lock":["1756470177:478016"]},"test":"ad03686f05bc30ed78712674d85add55df38955f"}],"_links":{"self":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics\/440151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics"}],"about":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":2,"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics\/440151\/revisions"}],"predecessor-version":[{"id":440249,"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics\/440151\/revisions\/440249"}],"wp:attachment":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/media?parent=440151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}