


{"id":289327,"date":"2023-06-19T08:41:36","date_gmt":"2023-06-19T08:41:36","guid":{"rendered":"\/forum\/forums\/topic\/no-contact-penetration-of-conta178-elements-bearing-simulation\/"},"modified":"2023-06-19T08:41:36","modified_gmt":"2023-06-19T08:41:36","slug":"no-contact-penetration-of-conta178-elements-bearing-simulation","status":"closed","type":"topic","link":"https:\/\/innovationspace.ansys.com\/forum\/forums\/topic\/no-contact-penetration-of-conta178-elements-bearing-simulation\/","title":{"rendered":"No contact penetration of CONTA178 elements &#8211; Bearing simulation"},"content":{"rendered":"<p dir=\"auto\">Hello all,<\/p>\n<p dir=\"auto\">I would like to calculate the contact penetration of a tapered roller bearing by using CONTA178 elements between the raceways. So that, I&acute;ve created a model with 30 contact elements including a pre-defined gap along the surface of the raceway and applied a constant pressure around the surface of the outer ring to simulate the pre-load of the bearing. The gap should simulate the profile of the logarithmic raceways.<br \/>However, while solving the model I didn&acute;t get any connection between the outer ring and rollers. The CONTA178 elements are still open and there isn&acute;t any contact penetration. I&acute;m not sure whats the reason for that, I tired to vary the boundary conditions a bit, but that doesn&acute;t helped.<\/p>\n<p dir=\"auto\">I would be very happy if someone here can help me.<\/p>\n<p dir=\"auto\">Thank you.<\/p>\n<p>import matplotlib.pyplot as plt<br \/>import numpy as np<br \/>import math as m<br \/>import itertools<br \/>import pandas<\/p>\n<p>from ansys.mapdl.core import launch_mapdl<\/p>\n<p>mapdl = launch_mapdl()<\/p>\n<p>mapdl.prep7()<\/p>\n<p>mapdl.units(&#8220;SI&#8221;)<\/p>\n<p>mapdl.et(1, &#8220;SOLID185&#8221;)<br \/>mapdl.mp(&#8220;EX&#8221;, 1, 210e9)<br \/>mapdl.mp(&#8220;DENS&#8221;, 1, 7800)<br \/>mapdl.mp(&#8220;NUXY&#8221;, 1, 0.3)<br \/>mapdl.type(1)<br \/>mapdl.keyopt(1, 2, 3)<\/p>\n<p>mapdl.et(2, &#8220;CONTA178&#8221;)<br \/>mapdl.mp(&#8220;EX&#8221;, 2, 210e9) &nbsp; &nbsp;# Elastic moduli in Pa (kg\/(m*s**2))<br \/>mapdl.mp(&#8220;DENS&#8221;, 2, 7800) &nbsp; # Density in kg\/m3<br \/>mapdl.mp(&#8220;NUXY&#8221;, 2, 0.3) &nbsp; &nbsp;# Poisson&#8217;s Ratio<br \/>mapdl.type(2)<br \/>mapdl.keyopt(2, 3, 1)<br \/>mapdl.keyopt(2, 4, 1)<br \/>mapdl.keyopt(2, 5, 0)<br \/>mapdl.keyopt(2, 10, 0)<br \/>mapdl.keyopt(2, 12, 1)<\/p>\n<p># Slicing<br \/>anzahl_scheiben = 30<br \/>anzahl_scheiben_board = 20<\/p>\n<p># Geometry<br \/>anzahl_rollen = 16<\/p>\n<p># Inner ring<\/p>\n<p>di = 0.065 &nbsp; &nbsp; &nbsp;#Innen-Durchmesser Lagersitz<br \/>bi = 0.041 &nbsp; &nbsp; &nbsp;#Breite Lagersitz<br \/>&alpha; &nbsp;= 7.6 &nbsp; &nbsp; &nbsp; &nbsp;#Druckwinkel<br \/>&beta; &nbsp;= 9.6 &nbsp; &nbsp; &nbsp; &nbsp;#Hilfswinkel<\/p>\n<p>o = 0.009238<br \/>p = 0.008282<br \/>q = 0.003962<br \/>r = 0.000671<br \/>s = 0.02539<br \/>t = 0.003391<br \/>v = 0.005083<br \/>w = 0.00079 #0.00086<br \/>b = 0.006658<\/p>\n<p># Inner ring &#8211; Keypoints<\/p>\n<p>mapdl.k(1, 0, di\/2, 0)<br \/>mapdl.k(2, 0, di\/2+o, 0)<br \/>mapdl.k(3, 0, di\/2+o, p)<br \/>mapdl.k(4, 0, di\/2+o-q, p+r)<br \/>mapdl.k(5, 0, di\/2+o-q+t, p+r+s)<br \/>mapdl.k(6, 0, di\/2+o-q+t+v, p+r+s-w)<br \/>mapdl.k(7, 0, di\/2+o-q+t+v, p+r+s+b)<br \/>mapdl.k(8, 0, di\/2, bi)<\/p>\n<p>mapdl.k(13, 0, 0, 0)<br \/>mapdl.k(14, 0, 0, -0.005)<br \/>mapdl.k(15, 0, 0, 0.005)<\/p>\n<p># Inner ring &#8211; Lines<\/p>\n<p>li_1 = mapdl.l(1, 2)<br \/>mapdl.l(2, 3)<br \/>mapdl.l(3, 4)<br \/>l1_i = mapdl.l(4, 5)<br \/>l1_b = mapdl.l(5, 6)<br \/>mapdl.l(6, 7)<br \/>mapdl.l(7, 8)<br \/>li_8 = mapdl.l(8, 1)<\/p>\n<p># Inner ring &#8211; Surface<\/p>\n<p>a1 = mapdl.a(1, 2, 3, 4, 5, 6, 7, 8)<\/p>\n<p>mapdl.lesize(nl1=li_1, ndiv=3) #Boundary Conditions, Definition der Anzahl von Elementen<br \/>mapdl.lesize(nl1=li_8, ndiv=10)<\/p>\n<p># Outer ring<\/p>\n<p>ba = 0.032 &nbsp; &nbsp; &nbsp;#Breite Lagersitz<br \/>c = 0.00732<br \/>e = 0.010942<br \/>f1 = 0.032<br \/>g = 0.00439<br \/>da = di+2*(o+c+e) &nbsp; &nbsp; &nbsp;#Au&szlig;en-Durchmesser&nbsp;<\/p>\n<p># Outer ring &#8211; Keypoints<\/p>\n<p>mapdl.k(9, 0, di\/2+o+c, 0)<br \/>mapdl.k(10, 0, da\/2, 0)<br \/>mapdl.k(11, 0, da\/2, f1)<br \/>mapdl.k(12, 0, da\/2-g, f1)<br \/>mapdl.k(16, 0, da\/2-0.00439, f1-0.000102) # Kontaktpunkte Kegelrolle, evtl. &uuml;ber zyl. KOS bestimmen, statt &uuml;ber Winkelfunktion auszurechnen!<br \/>mapdl.k(17, 0, da\/2-0.00955, f1-0.025245) # Kontaktpunkte Kegelrolle, evtl. &uuml;ber zyl. KOS bestimmen, statt &uuml;ber Winkelfunktion auszurechnen!<\/p>\n<p># Outer ring &#8211; Lines<\/p>\n<p>mapdl.l(9, 10)<br \/>l_a_f = mapdl.l(10, 11)<br \/>mapdl.l(11, 12)<br \/>mapdl.l(12, 16)<br \/>l1_a = mapdl.l(16, 17)<br \/>mapdl.l(17, 9)<\/p>\n<p>mapdl.lesize(nl1=l1_a, ndiv=anzahl_scheiben-1) #Scheibenmodell Au&szlig;enring-Lauffl&auml;che<br \/>mapdl.lesize(nl1=l1_i, ndiv=anzahl_scheiben-1) #Scheibenmodell Innenring-Lauffl&auml;che<br \/>mapdl.lesize(nl1=l1_b, ndiv=anzahl_scheiben_board-1) #Scheibenmodell Innenring-Bordkontakt<\/p>\n<p>mapdl.lesize(nl1=l_a_f, ndiv=10)<\/p>\n<p># Outer ring &#8211; Surface<\/p>\n<p>a2 = mapdl.a(9, 10, 11, 12, 16, 17)<\/p>\n<p># Extrudieren &#8211; Innenring &amp; Au&szlig;enring<\/p>\n<p>mapdl.vrotat(a1, pax1=14, pax2=15, arc=360, nseg=anzahl_rollen) #Hier bei nseg noch Anzahl Rollen einf&uuml;gen<br \/>mapdl.vrotat(a2, pax1=14, pax2=15, arc=360, nseg=anzahl_rollen)<\/p>\n<p># Roller<\/p>\n<p>f2 = 0.044114<br \/>a1 = 0.004275<br \/>a2 = 0.00788<br \/>m1 = 0.025241<br \/>h = 0.006887<br \/>a3 = 0.005862<br \/>a4 = 0.006707<br \/>a5 = 0.001135<br \/>a6 = 0.006322<\/p>\n<p># Roller &#8211; Keypoints<\/p>\n<p>mapdl.k(2000000, 0, f2, a2)<br \/>mapdl.k(2100000, 0, f2+a1, a2+m1)<br \/>mapdl.k(3000000, 0, f2+a3, h)<br \/>mapdl.k(3100000, 0, f2+a1+a4, a2+m1-a5)<\/p>\n<p># Roller &#8211; Lines<\/p>\n<p>l1_k = mapdl.l(2000000, 3000000)<br \/>l2_k = mapdl.l(3000000, 3100000)<br \/>mapdl.l(3100000, 2100000)<br \/>l3_k = mapdl.l(2000000, 2100000)<\/p>\n<p># Roller &#8211; Surface<\/p>\n<p>f_a3 = mapdl.a(2000000, 3000000, 3100000, 2100000)<\/p>\n<p>mapdl.lesize(nl1=l2_k, ndiv=anzahl_scheiben-1)<\/p>\n<p># Extrude &#8211; Roller<\/p>\n<p>mapdl.vsel(&#8220;NONE&#8221;)<br \/>k_rot = mapdl.vrotat(f_a3, pax1=2000000, pax2=2100000, arc=360, nseg=2)<\/p>\n<p>mapdl.csys(1)<br \/>mapdl.vgen(itime=anzahl_rollen, nv1=&#8221;ALL&#8221;, dy=360\/anzahl_rollen, imove=0)<br \/>mapdl.vsel(&#8220;ALL&#8221;)<\/p>\n<p># Meshing<\/p>\n<p>mapdl.csys(0)<br \/>mapdl.vsweep(&#8220;ALL&#8221;)<\/p>\n<p># Creation of contact elements<br \/># Selection of lines<\/p>\n<p>mapdl.lsel(&#8220;S&#8221;, &#8220;NDIV&#8221;, vmin=anzahl_scheiben-1)<br \/>#print(mapdl.geometry.lnum)<br \/>mapdl.lplot(vtk=True, show_line_numbering=True, background=&#8221;white&#8221;, color_lines=&#8221;black&#8221;)<\/p>\n<p>polar_rollen = 360\/anzahl_rollen<br \/>radius_ir = di\/2+o-q+0.001<br \/>radius_ri = di\/2+o-q+0.002<br \/>radius_ra = f2+a3+0.001<br \/>radius_ar = f2+a6+0.0025<\/p>\n<p>x_ir = []<br \/>x_ri = []<br \/>x_ra = []<br \/>x_ar = []<\/p>\n<p>y_ir = []<br \/>y_ri = []<br \/>y_ra = []<br \/>y_ar = []<\/p>\n<p>for i in np.arange(0, 360+polar_rollen, polar_rollen):<br \/>&nbsp; &nbsp; x_ir.append(radius_ir*np.sin(np.radians(i)))<br \/>&nbsp; &nbsp; x_ri.append(radius_ri*np.sin(np.radians(i)))<br \/>&nbsp; &nbsp; x_ra.append(radius_ra*np.sin(np.radians(i)))<br \/>&nbsp; &nbsp; x_ar.append(radius_ar*np.sin(np.radians(i)))<br \/>&nbsp; &nbsp; y_ir.append(radius_ir*np.cos(np.radians(i)))<br \/>&nbsp; &nbsp; y_ri.append(radius_ri*np.cos(np.radians(i)))<br \/>&nbsp; &nbsp; y_ra.append(radius_ra*np.cos(np.radians(i)))<br \/>&nbsp; &nbsp; y_ar.append(radius_ar*np.cos(np.radians(i)))<br \/>&nbsp;&nbsp;<\/p>\n<p>### Selection of Nodes on selected Lines between future contact (Not shown in this post) ###<\/p>\n<p># Contact definition<br \/>mapdl.vsel(&#8220;ALL&#8221;)<\/p>\n<p># Inner ring &#8211; Roller<\/p>\n<p>profil_ir = [0.000012544, &nbsp; &nbsp;0.000010816, &nbsp; &nbsp;0.000009216, &nbsp; &nbsp;0.000007744, &nbsp; &nbsp;0.0000064, &nbsp; &nbsp;0.000005184, &nbsp; &nbsp;0.000004096, &nbsp; &nbsp;0.000003136, &nbsp; &nbsp;0.000002304, &nbsp; &nbsp;0.0000016, &nbsp; &nbsp;0.000001024, &nbsp; &nbsp;0.000000576, &nbsp; &nbsp;2.56E-07, &nbsp; &nbsp;6.4E-08, &nbsp; &nbsp;0, &nbsp; &nbsp;6.4E-08, &nbsp; &nbsp;2.56E-07, &nbsp; &nbsp;5.76E-07, &nbsp; &nbsp;0.000001024, &nbsp; &nbsp;0.0000016, &nbsp; &nbsp;2.304E-06, &nbsp; &nbsp;3.136E-06, &nbsp; &nbsp;0.000004096, &nbsp; &nbsp;0.000005184, &nbsp; &nbsp;0.0000064, &nbsp; &nbsp;0.000007744, &nbsp; &nbsp;9.216E-06, &nbsp; &nbsp;0.000010816, &nbsp; &nbsp;0.000012544, &nbsp; &nbsp;0.0000144]<\/p>\n<p>ri_nnum_flip = np.roll(ri_nnum, anzahl_scheiben-1, axis=1)<\/p>\n<p>mapdl.et(2, &#8220;CONTA178&#8221;)<br \/>mapdl.type(2)<br \/>for a in range(0, anzahl_rollen, 1):<br \/>&nbsp; &nbsp; for i in range(2, anzahl_scheiben+2, 1):<br \/>&nbsp; &nbsp; &nbsp; &nbsp; mapdl.r(i, r1=-210000, r2=profil_ir[i-2])<br \/>&nbsp; &nbsp; &nbsp; &nbsp; mapdl.real(i)<br \/>&nbsp; &nbsp; &nbsp; &nbsp; mapdl.e(ir_nnum[a][i-2], ri_nnum_flip[a][i-2])<\/p>\n<p># Outer ring &#8211; Roller<\/p>\n<p>profil_ar = [0.000012544, &nbsp; &nbsp;0.000010816, &nbsp; &nbsp;0.000009216, &nbsp; &nbsp;0.000007744, &nbsp; &nbsp;0.0000064, &nbsp; &nbsp;0.000005184, &nbsp; &nbsp;0.000004096, &nbsp; &nbsp;0.000003136, &nbsp; &nbsp;0.000002304, &nbsp; &nbsp;0.0000016, &nbsp; &nbsp;0.000001024, &nbsp; &nbsp;0.000000576, &nbsp; &nbsp;2.56E-07, &nbsp; &nbsp;6.4E-08, &nbsp; &nbsp;0, &nbsp; &nbsp;6.4E-08, &nbsp; &nbsp;2.56E-07, &nbsp; &nbsp;5.76E-07, &nbsp; &nbsp;0.000001024, &nbsp; &nbsp;0.0000016, &nbsp; &nbsp;2.304E-06, &nbsp; &nbsp;3.136E-06, &nbsp; &nbsp;0.000004096, &nbsp; &nbsp;0.000005184, &nbsp; &nbsp;0.0000064, &nbsp; &nbsp;0.000007744, &nbsp; &nbsp;9.216E-06, &nbsp; &nbsp;0.000010816, &nbsp; &nbsp;0.000012544, &nbsp; &nbsp;0.0000144]<\/p>\n<p>ar_nnum_flip = np.flip(ar_nnum, axis=1)<br \/>ra_nnum_roll = np.roll(ra_nnum, anzahl_scheiben-1, axis=1)<\/p>\n<p>mapdl.et(2, &#8220;CONTA178&#8221;)<br \/>mapdl.type(2)<br \/>for a in range(0, anzahl_rollen, 1):<br \/>&nbsp; &nbsp; for i in range(2, anzahl_scheiben+2, 1):<br \/>&nbsp; &nbsp; &nbsp; &nbsp; mapdl.r(i, r1=-210000, r2=profil_ar[i-2])<br \/>&nbsp; &nbsp; &nbsp; &nbsp; mapdl.real(i)<br \/>&nbsp; &nbsp; &nbsp; &nbsp; mapdl.e(ar_nnum_flip[a][i-2], ra_nnum_roll[a][i-2])<\/p>\n<p>mapdl.eplot(vtk=True, show_edges=True, show_axes=True, line_width=1, show_node_numbering=False)<\/p>\n<p># Boundary conditions<br \/># Innenring<br \/># radial<br \/>mapdl.allsel()<br \/>mapdl.csys(1)<br \/>mapdl.nsel(&#8220;S&#8221;, &#8220;LOC&#8221;, &#8220;X&#8221;, vmin=di\/2-0.001, vmax=di\/2+0.001)<br \/>mapdl.d(&#8220;ALL&#8221;, &#8220;UX&#8221;)<br \/>mapdl.d(&#8220;ALL&#8221;, &#8220;UY&#8221;)<\/p>\n<p># axial<br \/>mapdl.allsel()<br \/>mapdl.csys(0)<br \/>mapdl.asel(&#8220;S&#8221;, &#8220;LOC&#8221;, &#8220;Z&#8221;, vmin=p+r+s+b-0.001, vmax=p+r+s+b+0.001)<br \/>mapdl.nsla(&#8220;S&#8221;, 1)<br \/>mapdl.d(&#8220;ALL&#8221;, &#8220;UZ&#8221;)<\/p>\n<p># Outer ring<br \/># axial<br \/>mapdl.allsel()<br \/>mapdl.csys(0)<br \/>mapdl.asel(&#8220;S&#8221;, &#8220;LOC&#8221;, &#8220;Z&#8221;, vmin=0, vmax=0.001)<br \/>mapdl.csys(1)<br \/>mapdl.asel(&#8220;R&#8221;, &#8220;LOC&#8221;, &#8220;X&#8221;, vmin=di\/2+o+c, vmax=di\/2+o+c+e)<br \/>mapdl.nsla(&#8220;S&#8221;, 1)<br \/>mapdl.csys(0)<br \/>mapdl.d(&#8220;ALL&#8221;, &#8220;UZ&#8221;)<\/p>\n<p># Roller<br \/>mapdl.allsel()<br \/>mapdl.csys(0)<br \/>mapdl.vsel(&#8220;S&#8221;, &#8220;LOC&#8221;, &#8220;Z&#8221;, vmin=p+r+s\/2-0.0015, vmax=p+r+s\/2+0.0015)<br \/>mapdl.csys(1)<br \/>mapdl.vsel(&#8220;S&#8221;, &#8220;LOC&#8221;, &#8220;X&#8221;, vmin=f2, vmax=f2+0.005)<br \/>mapdl.nslv(&#8220;S&#8221;, 1)<br \/>mapdl.csys(1)<br \/>mapdl.d(&#8220;ALL&#8221;, &#8220;UX&#8221;)<br \/>mapdl.d(&#8220;ALL&#8221;, &#8220;UZ&#8221;)<\/p>\n<p># Forces<br \/>mapdl.allsel()<br \/>mapdl.csys(1)<br \/>mapdl.asel(&#8220;S&#8221;, &#8220;LOC&#8221;, &#8220;X&#8221;, vmin=di\/2+o+c+e-0.001, vmax=di\/2+o+c+e+0.001)<br \/>mapdl.sfa(&#8220;ALL&#8221;, 1, &#8220;PRES&#8221;, value=2000)<\/p>\n<p># Solve<br \/>mapdl.run(&#8220;\/SOL&#8221;)<br \/>mapdl.antype(0)<br \/>mapdl.outres(&#8220;ALL&#8221;, &#8220;ALL&#8221;)<br \/>mapdl.run(&#8220;\/STATUS,SOLU&#8221;)<br \/>sol_output = mapdl.solve()<br \/>mapdl.finish()<br \/>print(sol_output)<\/p>\n<p># Plot results<br \/>result = mapdl.result<br \/>result.plot_principal_nodal_stress(<br \/>&nbsp; &nbsp; 0,<br \/>&nbsp; &nbsp; &#8220;SEQV&#8221;,<br \/>&nbsp; &nbsp; lighting=False,<br \/>&nbsp; &nbsp; background=&#8221;w&#8221;,<br \/>&nbsp; &nbsp; show_edges=True,<br \/>&nbsp; &nbsp; text_color=&#8221;k&#8221;,<br \/>&nbsp; &nbsp; add_text=False,)<\/p>\n<p>nnum, stress = result.principal_nodal_stress(0)<br \/>von_mises = stress[:, -1] &nbsp;<\/p>\n<p>max_stress = np.nanmax(von_mises)<\/p>\n<p># Contact Penetration<br \/>mapdl.allsel()<br \/>mapdl.lsel(&#8220;S&#8221;, &#8220;LINE&#8221;, vmin=4)<br \/>mapdl.nsll(&#8220;S&#8221;, 1)<br \/>mapdl.esln(&#8220;S&#8221;, 0)<br \/>mapdl.esel(&#8220;R&#8221;, &#8220;ENAM&#8221;, &#8220;&#8221;, 178)<br \/>mapdl.eplot(vtk=True)<br \/>contact_penetration_r = mapdl.post_processing.element_values(item=&#8217;nmisc&#8217;, comp=3)<br \/>print(contact_penetration_r)<\/p>\n<p>mapdl.post1()<br \/>mapdl.set(&#8220;last&#8221;)<br \/>mapdl.allsel()<\/p>\n<p>mapdl.post_processing.plot_nodal_principal_stress(&#8220;1&#8221;, smooth_shading=False)<\/p>\n<p>mapdl.exit()<\/p>\n<p dir=\"auto\"><img decoding=\"async\" style=\"font-size: 18.6667px\" title=\"v.Mises Stress \" src=\"\/forum\/wp-content\/uploads\/sites\/2\/2023\/06\/19-06-2023-1687164023-PyMAPDL_Bearing.PNG\" alt=\"v.Mises Stress Bearing\"><\/p>\n","protected":false},"template":"","class_list":["post-289327","topic","type-topic","status-closed","hentry","topic-tag-bearing","topic-tag-CONTA-1","topic-tag-contact","topic-tag-contact-method","topic-tag-mapdl","topic-tag-mechanical-apdl","topic-tag-PyMAPDL-1","topic-tag-python"],"aioseo_notices":[],"acf":[],"custom_fields":[{"0":{"_bbp_subscription":["255882","88","18229"],"_bbp_author_ip":["96.7.74.173"]," _bbp_last_reply_id":["0"]," _bbp_likes_count":["0"],"_btv_view_count":["913"],"_bbp_topic_status":["unanswered"],"_bbp_status":["publish"],"_bbp_topic_id":["289327"],"_bbp_forum_id":["27791"],"_bbp_engagement":["88","18229","255882"],"_bbp_voice_count":["3"],"_bbp_reply_count":["5"],"_bbp_last_reply_id":["290364"],"_bbp_last_active_id":["290364"],"_bbp_last_active_time":["2023-06-26 13:42:29"]},"test":"tim-hertingersafholland-de"}],"_links":{"self":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics\/289327","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":0,"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics\/289327\/revisions"}],"wp:attachment":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/media?parent=289327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}