<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>COMSOL Blog</title>
	<atom:link href="https://www.comsol.com/blogs/feed/" rel="self" type="application/rss+xml"/>
	<link>https://www.comsol.com/blogs</link>
	<description></description>
	<lastBuildDate>Tue, 23 Jun 2026 12:30:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
<atom:link href="https://pubsubhubbub.appspot.com" rel="hub"/><atom:link href="https://pubsubhubbub.superfeedr.com" rel="hub"/>	<xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item>
		<title>The Sound of the Giant: Modeling the Acoustics of Estadio Azteca</title>
		<link>https://www.comsol.com/blogs/the-sound-of-the-giant-modeling-the-acoustics-of-estadio-azteca</link>
					<comments>https://www.comsol.com/blogs/the-sound-of-the-giant-modeling-the-acoustics-of-estadio-azteca#respond</comments>
		
		<dc:creator><![CDATA[Ed Fontes]]></dc:creator>
		<pubDate>Tue, 23 Jun 2026 12:22:19 +0000</pubDate>
				<category><![CDATA[Acoustics & Vibrations]]></category>
		<category><![CDATA[Structural & Acoustics]]></category>
		<category><![CDATA[Physics of Sports]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=501851</guid>

					<description><![CDATA[The legendary Estadio Azteca is one of only two stadiums to have hosted the Fifa World Cup<sup>®</sup> finals. For fun, we simulate the acoustics of this one-of-a-kind stadium. ]]></description>
										<content:encoded><![CDATA[<p>In my previous two blog posts about the 2026 FIFA World Cup<sup>®</sup>, I discussed the official match ball, the Adidas Trionda<sup>®</sup>, and the aerodynamics of the iconic <em>trivela</em>, the outside-of-the-foot shot perfected by players such as Éder and Roberto Carlos. I ended the <a href = "/blogs/tracking-performance-in-the-beautiful-game">second blog post about the sensor technology being used this year</a> with a short animation from an acoustics simulation of Mexico City&#8217;s Banorte Stadium, better known as Estadio Azteca.</p>
<p>Ahead of Mexico&#8217;s home-turf match against Czechia tomorrow at this legendary stadium, let&#8217;s look at its acoustics in detail.</p>
<p><span id="more-501851"></span></p>
<h3>Sacred Football Ground</h3>
<p>Together with Rio de Janeiro&#8217;s Maracanã Stadium, Estadio Azteca (dubbed &#8220;Mexico City Stadium&#8221; by FIFA<sup>®</sup> for the 2026 tournament) is one of only two stadiums to have hosted two World Cup finals. But the Maracanã of the 2014 World Cup final is essentially a different stadium from the one where Uruguay defeated Brazil in front of nearly 200,000 fans in the <em>Maracanazo</em> of 1950. The Azteca that hosted Pelé in 1970, on the other hand, is still recognizably the same stadium that&#8217;s hosting the World Cup today.</p>
<p>No stadium has witnessed more historic World Cup moments. Pelé won his third World Cup here. In 1986, Maradona scored both the &#8220;Hand of God&#8221; and the &#8220;Goal of the Century&#8221; here, arguably the most controversial goal and the greatest goal in football history, separated by only four minutes.</p>
<p>When it hosted the 2026 opening match between Mexico and South Africa, Estadio Azteca became the first stadium in history to host matches in three FIFA World Cups. Reverently referred to by fans as <em>el gigante</em> (&#8220;the giant&#8221;, as it was immortalized in song by Andrés Calamaro) and <em>El Coloso de Santa Úrsula</em> for its massive capacity, the Azteca is sacred ground for football.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/estadio-azteca-model.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;representation&#x20;of&#x20;the&#x20;famous&#x20;Estadio&#x20;Azteca&#x20;built&#x20;in&#x20;COMSOL&#x20;Multiphysics."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;estadio-azteca-model.png" alt="A&#x20;representation&#x20;of&#x20;the&#x20;famous&#x20;Estadio&#x20;Azteca&#x20;built&#x20;in&#x20;COMSOL&#x20;Multiphysics." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 1. A COMSOL&nbsp;Multiphysics<sup>&reg;</sup> representation of Estadio Azteca. Note that this is not an exact representation of the stadium, but it&#8217;s good enough for our investigation, which is mainly for fun.</em></p>
<h3>The Acoustics of a Football Stadium</h3>
<p>The sound of a football stadium is about much more than acoustics. Every supporter knows that their home stadium sounds better than any other stadium in the world when their team scores. This is one of the great experiences of football fandom.</p>
<p>As engineers, however, we need to quantify the sound of a stadium. FIFA specifies requirements for quantities such as the speech transmission index, reverberation time, and the uniformity of the sound field in the stands (Ref. 1). These quantities can be measured objectively and are used when designing the stadium sound system to ensure that spectators can clearly hear announcements and other information provided through the PA system. </p>
<p>FIFA specifies the following design targets for these quantities:</p>
<ul>
<li>Reverberation time should be no more than 4 s in the frequency range 125–4000 Hz.</li>
<li>Speech transmission index should exceed 0.55 for a full stadium. (The recommendation is 0.75.)</li>
<li>Nonuniformity of the sound field should be no more than ±3 dB.</li>
</ul>
<p>These quantities can also be simulated, which is what our team did to estimate the quality of the sound from Estadio Azteca&#8217;s brand new PA system. We started by focusing on the sound from a single loudspeaker cluster, simulating how it propagates through the stadium.</p>
<h3>Can You Hear the Giant?</h3>
<p>The new sound system of Estadio Azteca was installed in 2026 and <a href="https://www.tudn.com/mundial-2026/asi-modernizacion-estadio-azteca-mundial-2026" target="blank">appears to comprise roughly 340 loudspeakers</a>. Based on photographs from the renovation and information published on social media, the system appears to be supplied by d&#038;b audiotechnik<sup>®</sup>. The loudspeaker clusters hanging from the roof appear to consist of four loudspeaker cabinets and two subwoofers. Based on <a href="https://www.facebook.com/Futmex/posts/el-estadio-banorte-en-lo-m%C3%A1s-avanzado-en-sonido-%EF%B8%8F-estas-son-las-nuevas-bocinas-d/1337830371704887" target="blank">their appearance</a>, I believe the loudspeakers may belong to the <a href="https://www.dbaudio.com/global/en/applications/sports-venues/wembley-is-ready-to-turn-it-up-with-a-two-for-one-audio-solution-from-db/" target="blank">d&#038;b audiotechnik Vi or Yi series</a>.</p>
<p>For our simulations, we took one of these loudspeaker clusters and placed it just below the roof, as shown in Figure 1. Figure 2 shows a close-up of the loudspeaker cluster and the resulting total acoustic pressure in the stands below.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/azteca-loudspeaker-cluster.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;representation&#x20;of&#x20;the&#x20;acoustic&#x20;pressure&#x20;created&#x20;by&#x20;a&#x20;loudspeaker&#x20;cluster&#x20;hanging&#x20;from&#x20;the&#x20;roof&#x20;of&#x20;Estadio&#x20;Azteca."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;azteca-loudspeaker-cluster.png" alt="A&#x20;model&#x20;representation&#x20;of&#x20;the&#x20;acoustic&#x20;pressure&#x20;created&#x20;by&#x20;a&#x20;loudspeaker&#x20;cluster&#x20;hanging&#x20;from&#x20;the&#x20;roof&#x20;of&#x20;Estadio&#x20;Azteca." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 2. The loudspeaker cluster hanging from the roof of Estadio Azteca and the resulting total acoustic pressure in the stands below.</em></p>
<p>We created the geometry using the built-in geometry tools in COMSOL&nbsp;Multiphysics<sup>&reg;</sup> and used the <em>Pressure Acoustics, Time Explicit</em> interface to model the acoustics in the low frequency range and the <em>Ray Acoustics</em> interface for the high frequency range.</p>
<p>The <em>Pressure Acoustics, Time Explicit</em> interface automatically defined the numerical model using fourth-order discontinuous-Galerkin-based functions, which for a representative frequency of 100 Hz required the mesh shown in Figure 3. The mesh consisted of grid elements (a feature that will be available in the upcoming release) in the bulk, with pyramids and tetrahedrons close to the stands, the pitch, and the roof. The resulting system of equations contained 99 million degrees of freedom and was solved in 1 hr 55 min on two NVIDIA RTX<sup>™</sup> 6000 Ada Generation GPUs.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/estadio-azteca-cross-section.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross&#x20;section&#x20;of&#x20;the&#x20;volume&#x20;mesh&#x20;and&#x20;surface&#x20;mesh&#x20;used&#x20;in&#x20;the&#x20;numerical&#x20;model&#x20;of&#x20;Estadio&#x20;Azteca.&#x20;The&#x20;mesh&#x20;appears&#x20;as&#x20;a&#x20;large&#x20;green&#x20;box&#x20;covering&#x20;a&#x20;quarter&#x20;of&#x20;the&#x20;stadium."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;estadio-azteca-cross-section.png" alt="A&#x20;cross&#x20;section&#x20;of&#x20;the&#x20;volume&#x20;mesh&#x20;and&#x20;surface&#x20;mesh&#x20;used&#x20;in&#x20;the&#x20;numerical&#x20;model&#x20;of&#x20;Estadio&#x20;Azteca.&#x20;The&#x20;mesh&#x20;appears&#x20;as&#x20;a&#x20;large&#x20;green&#x20;box&#x20;covering&#x20;a&#x20;quarter&#x20;of&#x20;the&#x20;stadium." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 3. A cross section of the volume mesh and the surface mesh used in the numerical model of Estadio Azteca.</em></p>
<p>Figure 4 shows an animation of the total acoustic pressure (visualized on surfaces) during 0.4 s in the stands that are reached by the output of the central loudspeaker cluster. Based on available photographs of Estadio Azteca, there appear to be roughly 30–40 such clusters hanging from the roof and additional clusters located in the stands and along the sides of the pitch. If we placed all of these loudspeaker clusters around the stadium in the model, we could estimate diffraction effects and the combined contribution from all sound sources at low frequencies throughout the stands.  </p>
<p><script src="https://fast.wistia.com/assets/external/E-v1.js" async></script></p>
<div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;">
<div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;">
<div class="wistia_embed wistia_async_tcnaxxmroe dnt=1 videoFoam=true" style="height:100%;position:relative;width:100%">
<div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"><img decoding="async" src="https://fast.wistia.com/embed/medias/tcnaxxmroe/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" /></div>
</div>
</div>
</div>
<p><em>Figure 4. Animation of the total acoustic pressure generated by the central loudspeaker cluster hanging from the roof.</em></p>
<p>In the low frequency range, effects such as diffraction are important and are best captured using a wave-based method, as illustrated above. As the analyzed frequency increases, the computational cost also increases and it is common practice to switch to a high-frequency method such as ray tracing.</p>
<p>In the <em>Ray Acoustics</em> interface, we can easily define a source with a given spatial directivity. The source data can be imported from a file or created in a model, as in this case, where we used the model of the loudspeakers and subwoofers. A simplified model representation of the loudspeaker cluster at the Azteca is shown in Figure 5. The sound radiation pattern is computed using the <em>Pressure Acoustics, Boundary Elements</em> interface (based on the boundary element method, or BEM).</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/loudspeaker-bubble-plot.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;radiation&#x20;plot&#x20;of&#x20;a&#x20;simplified&#x20;loudspeaker&#x20;cluster.&#x20;The&#x20;gray&#x20;speaker&#x20;sits&#x20;in&#x20;the&#x20;middle,&#x20;and&#x20;the&#x20;relative&#x20;sound&#x20;level&#x20;is&#x20;shown&#x20;on&#x20;a&#x20;surrounding&#x20;sphere&#x20;in&#x20;a&#x20;rainbow&#x20;color&#x20;table."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;loudspeaker-bubble-plot.png" alt="A&#x20;radiation&#x20;plot&#x20;of&#x20;a&#x20;simplified&#x20;loudspeaker&#x20;cluster.&#x20;The&#x20;gray&#x20;speaker&#x20;sits&#x20;in&#x20;the&#x20;middle,&#x20;and&#x20;the&#x20;relative&#x20;sound&#x20;level&#x20;is&#x20;shown&#x20;on&#x20;a&#x20;surrounding&#x20;sphere&#x20;in&#x20;a&#x20;rainbow&#x20;color&#x20;table." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 5. Radiation plot (bubble plot) of the simplified loudspeaker cluster used at Estadio Azteca at 1000 Hz, computed using the BEM. Note that the level shown is relative.</em></p>
<p>The propagation of rays from the speaker cluster, with the source characteristics shown in Figure 5, is illustrated in the animation in Figure 6. The animation includes just 10,000 rays, but a practical simulation could easily be performed using many more. The model equations solved in minutes.</p>
<p><script src="https://fast.wistia.com/assets/external/E-v1.js" async></script></p>
<div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;">
<div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;">
<div class="wistia_embed wistia_async_ztt4vo959x dnt=1 videoFoam=true" style="height:100%;position:relative;width:100%">
<div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"><img decoding="async" src="https://fast.wistia.com/embed/medias/ztt4vo959x/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" /></div>
</div>
</div>
</div>
<p><em>Figure 6: Ray propagation from the speaker array.</em></p>
<p>The resulting sound pressure level map in a plane just above the seating area is shown in Figures 7 and 8, for one and two speakers, respectively. You can see in both plots that the nonuniformity is much larger than FIFA&#8217;s target of ±3 dB. However, adding just one additional speaker improves the coverage. In a real stadium design, additional loudspeaker clusters would likely be used to improve the coverage of the central part of the stands. From <a href="https://www.instagram.com/reel/DZdHiBaipn8/" target="blank">fan footage of Estadio Azteca</a>, you can tell that at least 4–5 of the loudspeaker clusters hanging from the roof would likely cover the plot area in Figures 7 and 8. </p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/azteca-pressure-map-1.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Planar&#x20;sound&#x20;pressure&#x20;level&#x20;map&#x20;above&#x20;a&#x20;section&#x20;of&#x20;the&#x20;stands&#x20;of&#x20;a&#x20;stadium,&#x20;with&#x20;the&#x20;highest&#x20;dB&#x20;areas&#x20;marked&#x20;in&#x20;red,&#x20;and&#x20;one&#x20;speaker&#x27;s&#x20;output."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;azteca-pressure-map-1.png" alt="Planar&#x20;sound&#x20;pressure&#x20;level&#x20;map&#x20;above&#x20;a&#x20;section&#x20;of&#x20;the&#x20;stands&#x20;of&#x20;a&#x20;stadium,&#x20;with&#x20;the&#x20;highest&#x20;dB&#x20;areas&#x20;marked&#x20;in&#x20;red,&#x20;and&#x20;one&#x20;speaker&#x27;s&#x20;output." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
<em>Figure 7. Sound pressure level map just above parts of the seating area below the location of one speaker.</em></p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/azteca-pressure-map-2.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Planar&#x20;sound&#x20;pressure&#x20;level&#x20;map&#x20;above&#x20;a&#x20;section&#x20;of&#x20;the&#x20;stands&#x20;of&#x20;a&#x20;stadium,&#x20;with&#x20;the&#x20;highest&#x20;dB&#x20;areas&#x20;marked&#x20;in&#x20;red,&#x20;and&#x20;the&#x20;output&#x20;of&#x20;two&#x20;speakers."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;azteca-pressure-map-2.png" alt="Planar&#x20;sound&#x20;pressure&#x20;level&#x20;map&#x20;above&#x20;a&#x20;section&#x20;of&#x20;the&#x20;stands&#x20;of&#x20;a&#x20;stadium,&#x20;with&#x20;the&#x20;highest&#x20;dB&#x20;areas&#x20;marked&#x20;in&#x20;red,&#x20;and&#x20;the&#x20;output&#x20;of&#x20;two&#x20;speakers." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
</p>
<p><em>Figure 8. Sound pressure level map just above parts of the seating area below the locations of two speakers. </em></p>
<p>The impulse response, reverberation time, and speech transmission index could also be computed using this model. And to estimate the full acoustic coverage in Estadio Azteca, we could place all of the loudspeaker clusters throughout the model. </p>
<h3>The Sound of the Beautiful Game</h3>
<p>Several different types of models are needed to design the sound system of a stadium. In our case, we used a pressure acoustics model in the time domain for diffraction effects and the low frequencies, a BEM model to characterize the sound radiation from the loudspeaker cluster at higher frequencies, and a ray acoustics model to estimate the resulting sound pressure levels at higher frequencies. Together, these models can provide an accurate picture of the quality of the sound from the PA system.</p>
<p>One aspect of stadium acoustics that we didn&#8217;t consider? The roar of the crowd. That is the real sound of the giant.</p>
<p>More than 80,000 people experienced this thunderous wall of sound during the opening match between Mexico and South Africa. Some of them may have felt the same rush that Andrés Calamaro sings about in &#8220;Estadio Azteca&#8221;, where he describes the stadium as a giant that has &#8220;crushed&#8221; him. This feeling is not fear but awe. Anyone who grew up loving football recognizes that feeling when entering a huge stadium for the first time. In my case, it was walking into Estadio Centenario in Montevideo holding my father&#8217;s hand.</p>
<p>The sound of the crowd may very well be the subject of my next blog post.</p>
<h3>For the Love of the Game (Only!)</h3>
<p>Although the simulations presented here are based on established acoustics modeling techniques, they were created primarily for fun. A professional acoustics study of Estadio Azteca would require significantly more detailed information about the stadium geometry, loudspeaker system, materials, crowd distribution, and operating conditions than is publicly available.</p>
<p>The loudspeaker system used in the simulations was reconstructed from publicly available photographs and information from media reports and social media. We therefore make no claim that the model accurately represents the actual sound system installed in Estadio Azteca for the 2026 FIFA World Cup.</p>
<p>These investigations were performed independently of FIFA, Estadio Azteca, and d&#038;b audiotechnik, and we do not claim any cooperation with these organizations.</p>
<h3>Reference</h3>
<ol>
<li>A. Peretokin et al., &#8220;Acoustics Features of Sports Facilities on the Example of FIFA 2018 Football Stadiums in Russia,&#8221; Proc. 23rd Int&#8217;l Cong. Acoust., Integ. 4th EAA Euroregio (ICA 2019), pp. 811–818, 2019. </li>
</ol>
<hr />
<p><small><em>Adidas and Trionda are registered trademarks of adidas AG.</p>
<p>ChatGPT is a trademark of OpenAI OpCo, LLC.</p>
<p>D&#038;B Audiotechnik is a registered trademark of D&#038;B Audiotechnik GmbH &#038; Co. KG</p>
<p>FIFA and FIFA World Cup are registered trademarks of the Fédération Internationale de Football Association.</p>
<p>NVIDIA is a registered trademark and NVIDIA RTX is a trademark of NVIDIA Corporation</p>
<p>COMSOL AB and its subsidiaries and products are not affiliated with, endorsed, by, sponsored by, or supported by any of the foregoing trademark owners.</em></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/the-sound-of-the-giant-modeling-the-acoustics-of-estadio-azteca/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Introduction to Inverse Uncertainty Quantification in COMSOL®</title>
		<link>https://www.comsol.com/blogs/introduction-to-inverse-uncertainty-quantification-in-comsol</link>
					<comments>https://www.comsol.com/blogs/introduction-to-inverse-uncertainty-quantification-in-comsol#respond</comments>
		
		<dc:creator><![CDATA[Xiaojun Zhu]]></dc:creator>
		<pubDate>Mon, 22 Jun 2026 19:07:57 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Uncertainty Quantification Module]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=501601</guid>

					<description><![CDATA[Learn how to perform an IUQ study in {:comsolmph} and how to use the resulting posterior distributions in a forward UQ study.]]></description>
										<content:encoded><![CDATA[<p>Performing uncertainty quantification (UQ) studies can help engineers understand how uncertainties affect model predictions and design performance. When experimental data is available, inverse uncertainty quantification (IUQ) can be used to calibrate model parameters while accounting for uncertainty. In this blog post, we demonstrate how to perform an IUQ study in the COMSOL&nbsp;Multiphysics<sup>&reg;</sup> software and how to use the resulting posterior distributions in a forward UQ study.</p>
<p><span id="more-501601"></span></p>
<h3>Defining IUQ</h3>
<p>In our previous blog post &#8220;<a href="/blogs/how-reliable-is-your-resistor">How Reliable Is Your Resistor?</a>”, we discussed how forward UQ predicts how variations in material properties, geometry, or manufacturing processes affect a resistor’s performance. In many cases, however, measurement data is already available (e.g., resistance values from experiments), and it becomes more interesting to calibrate the input parameters, especially the material properties. In the COMSOL<sup>&reg;</sup> software, IUQ can be used for this task, as it works backward from observed data to estimate those unknown inputs, combining the finite element method with surrogate models to efficiently calibrate the input parameters.</p>
<p>While <a href="/blogs/how-to-use-the-parameter-estimation-study-step-for-inverse-modeling">parameter estimation</a> focuses on identifying the best fit parameter values, IUQ provides a probabilistic description of the calibration parameters, including their likely ranges, confidence levels, and correlations. By refining parameter distributions based on measurements, IUQ improves model accuracy and predictive capability.</p>
<p>Moreover, it&#8217;s often desirable to perform an IUQ study when experimental data is available and input distribution is unknown. For example, after identifying key parameters using <a href="/support/learning-center/article/performing-a-screening-analysis-uq-study-93761/251">screening</a> or a <a href="/support/learning-center/article/performing-a-sensitivity-analysis-uq-study-93841/251">sensitivity analysis</a>, an IUQ study can be used to obtain posterior distributions for these parameters. These calibrated distributions can then be used as input parameters for a forward UQ study like uncertainty propagation and reliability analysis. This procedure creates a more realistic workflow since the uncertainties used for prediction are informed by data and the prior assumption.</p>
<p>Here, we will discuss how to perform an IUQ study and how to seamlessly use the resulting posterior distributions in a <a href="/support/learning-center/article/performing-an-uncertainty-propagation-uq-study-93941/251">forward uncertainty propagation study</a> in the COMSOL<sup>&reg;</sup> software.</p>
<h3>Understanding IUQ with a Resistor Model</h3>
<p>IUQ estimates calibration parameters by combining experimental data with prior knowledge. It can be viewed as parameter estimation in a Bayesian framework, where measurements guide the updating of parameter distributions.</p>
<p>The experimental data provides the reference quantities that the model must reproduce, such as the measured resistance at different applied voltages in a resistor. During an IUQ study, COMSOL<sup>&reg;</sup> evaluates how likely it is for each parameter set to occur by comparing simulated outputs with these measurements.</p>
<p>In the software, IUQ compares the experimental data with predictions from a surrogate model trained using finite element simulations. The finite element model defines the physics-based relationship between uncertain inputs and measurable outputs, whereas the surrogate model approximates this relationship and enables efficient sampling of the parameter space.</p>
<p>The Bayesian updating process combines prior distributions with a likelihood function that measures the consistency between surrogate predictions and experimental data. The resulting posterior distributions represent the most likely values of the calibration parameters together with their uncertainty. Through this process, IUQ provides calibrated material properties in a data-informed and computationally efficient way. Thus, experimental data directly influences the inferred parameter distributions.</p>
<h3>Workflow: Performing IUQ in COMSOL<sup>&reg;</sup></h3>
<h4>Define the Problem and Build the FEM Model and IUQ Study</h4>
<p>The first step of setting up an IUQ study is to create a physics-based model representing the system at hand. In the resistor example highlighted in our <a href="/blogs/how-reliable-is-your-resistor">previous blog post</a>, the <em>Electric Currents</em> interface is used to compute the resistance based on specified material properties and geometry. Two conductivities, <em>Sigma1</em> and <em>Sigma2</em>, defined on different regions of the resistor, are selected as the calibration parameters. A stationary study establishes the forward relationship between the input parameters and the output quantity, which is the resistance. For our IUQ example, we will keep these settings.</p>
<p>The next step is to add an <em>Uncertainty Quantification</em> study, using <em>Study 1</em> as the reference, and selecting <em>Inverse uncertainty quantification</em> as the study type. Both Gaussian process and polynomial chaos expansion approaches can be used as surrogate models for IUQ. In this example, an adaptive sparse polynomial chaos expansion is used. The variable <em>comp1.Res</em>, which evaluates the resistance of the resistor, is defined as the quantity of interest (QoI) and refers to the simulation output.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/COMSOL_IUQ_figure1.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Model&#x20;Builder&#x20;and&#x20;the&#x20;Settings&#x20;window&#x20;showing&#x20;the&#x20;Uncertainty&#x20;Quantification&#x20;study&#x20;settings"        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;COMSOL_IUQ_figure1.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Model&#x20;Builder&#x20;and&#x20;the&#x20;Settings&#x20;window&#x20;showing&#x20;the&#x20;Uncertainty&#x20;Quantification&#x20;study&#x20;settings" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
<em>Figure 1. The</em> Uncertainty Quantification <em>study settings, with</em> Inverse uncertainty quantification <em>selected</em>. </p>
<h5>Define Uncertainty Input Parameters and Their Prior Distributions</h5>
<p>Under <em>Input Parameters</em>, include both the calibration parameters (<em>Sigma1</em> and <em>Sigma2</em>) and the experimental parameter, which is the applied voltage, <em>V0</em>. Each value of <em>V0</em> corresponds to a different experiment. Therefore, <em>V0</em> is treated as an experimental parameter rather than a calibration parameter.</p>
<p>Next, provide a prior distribution for each parameter. In this demonstration, normal distributions are assumed for <em>Sigma1</em> and <em>Sigma2</em>. For the experimental parameter <em>V0</em>, a uniform distribution is used because the measurements are performed over a range of voltages.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/input-parameters.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Input&#x20;Parameters&#x20;section."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;input-parameters.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Input&#x20;Parameters&#x20;section." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 2. Input parameters and prior distributions.</em></p>
<p>The experimental parameter <em>V0</em> must be included because the surrogate model represents the system response as a function of both the calibration parameters and the experimental condition. The bounds of the <em>V0</em> distribution (e.g., from 4.9 to 35.1 V) should cover the voltage range used in the experiments, for example, from 5 to 35 V.</p>
<h5>Prepare and Import Experimental Data</h5>
<p>In the <em>Experimental Data Settings</em> section, experimental values can be provided in table format. External measurement data can be imported from files such as .txt or .csv. For this demonstration, pseudoexperimental resistance data is generated by running the <em>Stationary</em> study with an auxiliary sweep over the voltage <em>V0</em>. A measured resistance variable is defined as</p>
<div class="latex">Res\_measured = Res+rn1(\frac{1+V0}{1[V]}) ,</div>
<p>where <em>Res</em> is the resistance evaluated from the finite element method (FEM) model and <em>rn1()</em> is a random function. The random function <em>rn1()</em> adds measurement noise to the simulated resistance. The evaluated values of <em>Res_measured</em> as a function of <em>V0</em> are then selected in the <em>Experimental data table</em> in the IUQ settings.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/experimental-data-settings.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Experimental&#x20;Data&#x20;Settings&#x20;section."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;experimental-data-settings.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Experimental&#x20;Data&#x20;Settings&#x20;section." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 3. The experimental data settings with Calibrated selected as the measurement uncertainty type.</em></p>
<p>Here, <em>V0</em> (the voltage parameter) is selected as the experiment parameter, and the pseudoexperimental data, <em>Res_measured</em> evaluated under <em>Global Evaluation</em>, is defined as the QoI.</p>
<p>If <em>Measurement uncertainty type</em> is set to <em>Calibrated</em>, COMSOL<sup>&reg;</sup> estimates the measurement uncertainty as part of the IUQ process. If <em>Experimental data</em> is selected instead, the measurement uncertainty must be provided explicitly.</p>
<h5>Samplings and Surrogate Model Settings</h5>
<p>Under the sampling settings, the maximum number of input points can be specified, which directly controls the size of the training dataset generated from FEM simulations. These input points are used to train the surrogate model based on FEM simulations.</p>
<blockquote><p>Note: In this demo model, before running the IUQ study, the <em>Auxiliary</em> sweep in the <em>Stationary</em> step should be disabled.</p></blockquote>
<h5>IUQ Results</h5>
<p>The IUQ study produces the joint probability distribution and the calibrated confidence intervals shown in Figures 4 and 5, respectively. Figure 6 compares the prior and posterior distributions for <em>Sigma1</em> and <em>Sigma2</em>, demonstrating how the experimental data refines the parameter estimates and reduces uncertainty, especially for <em>Sigma2</em>. Note that <em>Sigma1</em> is the conductivity of the resistive material, and the resistance is insensitive to <em>Sigma1</em>, as demonstrated in the <a href="/blogs/how-reliable-is-your-resistor">previous screening analysis</a>. Thus, the prior and posterior distributions for <em>Sigma1</em> are quite similar.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/MCMC-samples.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;joint&#x20;probability&#x20;distribution&#x20;plots&#x20;for&#x20;MCMC&#x20;samples&#x20;in&#x20;the&#x20;Graphics&#x20;window."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;MCMC-samples.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;joint&#x20;probability&#x20;distribution&#x20;plots&#x20;for&#x20;MCMC&#x20;samples&#x20;in&#x20;the&#x20;Graphics&#x20;window." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 4. Joint probability distribution for Markov chain Monte Carlo (MCMC) samples.</em></p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/calibrated-confidence-interval.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;a&#x20;results&#x20;table&#x20;with&#x20;the&#x20;calibrated&#x20;confidence&#x20;interval."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;calibrated-confidence-interval.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;a&#x20;results&#x20;table&#x20;with&#x20;the&#x20;calibrated&#x20;confidence&#x20;interval." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 5. The calibrated confidence interval.</em></p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/sigma1-distributions.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="2D&#x20;plot&#x20;with&#x20;a&#x20;blue&#x20;line&#x20;indicating&#x20;the&#x20;prior&#x20;distribution&#x20;and&#x20;a&#x20;green&#x20;line&#x20;indicating&#x20;the&#x20;posterior&#x20;distribution&#x20;of&#x20;Sigma1."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;sigma1-distributions.png" alt="2D&#x20;plot&#x20;with&#x20;a&#x20;blue&#x20;line&#x20;indicating&#x20;the&#x20;prior&#x20;distribution&#x20;and&#x20;a&#x20;green&#x20;line&#x20;indicating&#x20;the&#x20;posterior&#x20;distribution&#x20;of&#x20;Sigma1." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/sigma2-distributions.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="2D&#x20;plot&#x20;with&#x20;a&#x20;blue&#x20;line&#x20;indicating&#x20;the&#x20;prior&#x20;distribution&#x20;and&#x20;a&#x20;green&#x20;line&#x20;indicating&#x20;the&#x20;posterior&#x20;distribution&#x20;of&#x20;Sigma2."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;sigma2-distributions.png" alt="2D&#x20;plot&#x20;with&#x20;a&#x20;blue&#x20;line&#x20;indicating&#x20;the&#x20;prior&#x20;distribution&#x20;and&#x20;a&#x20;green&#x20;line&#x20;indicating&#x20;the&#x20;posterior&#x20;distribution&#x20;of&#x20;Sigma2." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>Figure 6. A comparison between the prior and posterior distributions for</em> Sigma1 <em>and</em> Sigma2.</p>
<h3>Using Posterior Distributions for a Forward UQ Study</h3>
<p>The posterior distributions obtained from an IUQ study can be directly reused in a forward UQ study. To implement the distributions, the first step is to add a new <em>Uncertainty Quantification</em> study of type <em>Uncertainty Propagation</em> from the IUQ study.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/COMSOL_IUQ_figure7.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;part&#x20;of&#x20;the&#x20;Model&#x20;Builder&#x20;with&#x20;the&#x20;Add&#x20;New&#x20;Uncertainty&#x20;Quantification&#x20;For&#x20;option&#x20;highlighted."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;COMSOL_IUQ_figure7.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;part&#x20;of&#x20;the&#x20;Model&#x20;Builder&#x20;with&#x20;the&#x20;Add&#x20;New&#x20;Uncertainty&#x20;Quantification&#x20;For&#x20;option&#x20;highlighted." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 7. Adding a new UQ study for uncertainty propagation.</em></p>
<p>A new <em>Quantities of Interest</em> table is created automatically and is identical to the one used for the IUQ study. Since the same QoI, <em>comp1.Res</em>, is evaluated, either <em>Analyze only</em> or <em>Improve and analyze</em> can be selected. The former reuses the existing FEM data to train the new surrogate model, e.g., a new <em>Gaussian Process</em> model, while the latter allows additional simulations or input points to improve the surrogate model. For simplicity, we will use <em>Analyze only</em> for the forward UQ studies.</p>
<p>By default, a new <em>Gaussian Process</em> surrogate model is generated, which is used as the surrogate model for this new forward UQ study. From there, enable the new <em>Gaussian Process</em> and click <em>Train Model</em>. Through these steps, we can add the posterior distributions from the MCMC samples for the forward UQ study.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/COMSOL_IUQ_figure8.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Model&#x20;Builder&#x20;and&#x20;the&#x20;Settings&#x20;window&#x20;of&#x20;the&#x20;Gaussian&#x20;Process&#x20;node."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;COMSOL_IUQ_figure8.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Model&#x20;Builder&#x20;and&#x20;the&#x20;Settings&#x20;window&#x20;of&#x20;the&#x20;Gaussian&#x20;Process&#x20;node." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 8. The settings for the</em> Gaussian Process <em>surrogate model</em>.</p>
<p>Note that the distributions defined under the <em>Input parameters</em> section can be ignored for this forward UQ study. Instead, the posterior distributions obtained from the IUQ study fully define the sampling space. Therefore, no additional prior assumptions are required for the forward UQ sampling.</p>
<p>In the <em>Surrogate-Based Monte Carlo Analysis</em> section, select <em>Manual</em> for the Monte Carlo parameters source. Then, for each calibrated parameter, <em>Sigma1</em> and <em>Sigma2</em>, select <em>Data</em> as the source type, <em>Result table</em> as the data source, and the corresponding column from the MCMC samples table for each parameter.</p>
<p>Note that we can select only one working condition for V0, which is the nominal value of 1 V.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/COMSOL_IUQ_figure9.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Surrogate-Based&#x20;Monte&#x20;Carlo&#x20;Analysis&#x20;section&#x20;of&#x20;the&#x20;settings."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;COMSOL_IUQ_figure9.png" alt="Screenshot&#x20;of&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Surrogate-Based&#x20;Monte&#x20;Carlo&#x20;Analysis&#x20;section&#x20;of&#x20;the&#x20;settings." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 9. The settings in the</em> Surrogate-Based Monte Carlo Analysis <em>section for using the posterior distributions</em>.</p>
<p>After this forward UQ study is finished, the kernel density estimation (KDE) plot based on the posterior distributions can be generated. This KDE reflects the uncertainty propagated from the calibrated parameter distributions. Figure 10 shows that the highest probability density of the resistance is located around 50 <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAQAAACRZI9xAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8KHzajX2ljAAAArUlEQVQoz42SSxHDMAxEnzolIAqmEAqhEAqhEAophFAohZRCIZSCC2F78CfKKfXF0npnrLe2iat1u3Rwb4U5S9Af+vZaCMFAZlbrZjJT74QgkVmbJAQrYoiWDZFOloR4RssHRUM9yKX6g6hY3mApyubAKxAxooNHCCbEGGYR7G04NYD9BF2xvYseCWMSMbr1xCZYiilc401VfSO3EfCANNjR97h1xFe3rWx2/V9+u0ebOhInZLAAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADEweDEwKzMwMCs2MzmDSjD0AAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" />. According to the QoI confidence interval table (not shown), the mean predicted resistance is 49.975 <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAQAAACRZI9xAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8KHzajX2ljAAAArUlEQVQoz42SSxHDMAxEnzolIAqmEAqhEAqhEAophFAohZRCIZSCC2F78CfKKfXF0npnrLe2iat1u3Rwb4U5S9Af+vZaCMFAZlbrZjJT74QgkVmbJAQrYoiWDZFOloR4RssHRUM9yKX6g6hY3mApyubAKxAxooNHCCbEGGYR7G04NYD9BF2xvYseCWMSMbr1xCZYiilc401VfSO3EfCANNjR97h1xFe3rWx2/V9+u0ebOhInZLAAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADEweDEwKzMwMCs2MzmDSjD0AAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" />, with a standard deviation of 0.0957 <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAQAAACRZI9xAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8KHzajX2ljAAAArUlEQVQoz42SSxHDMAxEnzolIAqmEAqhEAqhEAophFAohZRCIZSCC2F78CfKKfXF0npnrLe2iat1u3Rwb4U5S9Af+vZaCMFAZlbrZjJT74QgkVmbJAQrYoiWDZFOloR4RssHRUM9yKX6g6hY3mApyubAKxAxooNHCCbEGGYR7G04NYD9BF2xvYseCWMSMbr1xCZYiilc401VfSO3EfCANNjR97h1xFe3rWx2/V9+u0ebOhInZLAAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADEweDEwKzMwMCs2MzmDSjD0AAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" />.</p>
<p>Similarly, a reliability analysis can be performed with the posterior distributions specified in the <em>Surrogate-Based Monte Carlo Analysis</em> section (Figure 9). For example, the probability of the resistance that is larger than 50.25 <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAQAAACRZI9xAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8KHzajX2ljAAAArUlEQVQoz42SSxHDMAxEnzolIAqmEAqhEAqhEAophFAohZRCIZSCC2F78CfKKfXF0npnrLe2iat1u3Rwb4U5S9Af+vZaCMFAZlbrZjJT74QgkVmbJAQrYoiWDZFOloR4RssHRUM9yKX6g6hY3mApyubAKxAxooNHCCbEGGYR7G04NYD9BF2xvYseCWMSMbr1xCZYiilc401VfSO3EfCANNjR97h1xFe3rWx2/V9+u0ebOhInZLAAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADEweDEwKzMwMCs2MzmDSjD0AAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" /> and 52.5 <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAQAAACRZI9xAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8KHzajX2ljAAAArUlEQVQoz42SSxHDMAxEnzolIAqmEAqhEAqhEAophFAohZRCIZSCC2F78CfKKfXF0npnrLe2iat1u3Rwb4U5S9Af+vZaCMFAZlbrZjJT74QgkVmbJAQrYoiWDZFOloR4RssHRUM9yKX6g6hY3mApyubAKxAxooNHCCbEGGYR7G04NYD9BF2xvYseCWMSMbr1xCZYiilc401VfSO3EfCANNjR97h1xFe3rWx2/V9+u0ebOhInZLAAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADEweDEwKzMwMCs2MzmDSjD0AAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" /> is approximately 2.55 and 0%, respectively. This probability quantifies the risk of exceeding specified resistance thresholds. Another way to say this is that we know that this resistor is more reliable for any applications requiring a precise 50 <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAQAAACRZI9xAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8KHzajX2ljAAAArUlEQVQoz42SSxHDMAxEnzolIAqmEAqhEAqhEAophFAohZRCIZSCC2F78CfKKfXF0npnrLe2iat1u3Rwb4U5S9Af+vZaCMFAZlbrZjJT74QgkVmbJAQrYoiWDZFOloR4RssHRUM9yKX6g6hY3mApyubAKxAxooNHCCbEGGYR7G04NYD9BF2xvYseCWMSMbr1xCZYiilc401VfSO3EfCANNjR97h1xFe3rWx2/V9+u0ebOhInZLAAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADEweDEwKzMwMCs2MzmDSjD0AAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" /> load.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/kde-plot.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Screenshot&#x20;of&#x20;a&#x20;KDE&#x20;plot&#x20;in&#x20;the&#x20;Graphics&#x20;window&#x20;with&#x20;a&#x20;blue&#x20;line."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;kde-plot.png" alt="Screenshot&#x20;of&#x20;a&#x20;KDE&#x20;plot&#x20;in&#x20;the&#x20;Graphics&#x20;window&#x20;with&#x20;a&#x20;blue&#x20;line." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 10. The KDE plot using posterior distributions.</em></p>
<h3>A Data-Informed Workflow for Calibration and Uncertainty Propagation</h3>
<p>Inverse uncertainty quantification provides a systematic way to calibrate uncertain input parameters using experimental data. By combining finite element modeling, surrogate modeling, and Bayesian updating, IUQ refines prior assumptions into posterior distributions that better represent the physical system.</p>
<p>When these posterior distributions are subsequently used in a forward UQ study, the predictions become more realistic and data informed. Instead of relying on assumed parameter variations, the uncertainty propagation is based on calibrated parameter distributions that reflect both measurements and model physics.</p>
<p>This combined workflow of IUQ followed by forward UQ enables more reliable prediction, improved confidence in simulation results, and a clearer understanding of how parameter uncertainty influences system performance. This workflow integrates model calibration and uncertainty propagation and can be completed within the COMSOL<sup>&reg;</sup> software&#8217;s dedicated user interface, without needing to switch tools.</p>
<h3>Next Steps</h3>
<p>Want to learn more and try out the model discussed above? Download the related MPH file below:</p>
<div class="flex-center">
<a href="/model/inverse-uncertainty-quantification-of-a-resistor-144681" class="btn-solid btn-md btn-red">TRY THE MODEL</a>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/introduction-to-inverse-uncertainty-quantification-in-comsol/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tracking Performance in the Beautiful Game</title>
		<link>https://www.comsol.com/blogs/tracking-performance-in-the-beautiful-game</link>
					<comments>https://www.comsol.com/blogs/tracking-performance-in-the-beautiful-game#respond</comments>
		
		<dc:creator><![CDATA[Ed Fontes]]></dc:creator>
		<pubDate>Thu, 18 Jun 2026 13:43:29 +0000</pubDate>
				<category><![CDATA[Acoustics & Vibrations]]></category>
		<category><![CDATA[Electromagnetics]]></category>
		<category><![CDATA[MEMS & Piezoelectric Devices]]></category>
		<category><![CDATA[RF & Microwave Engineering]]></category>
		<category><![CDATA[Structural & Acoustics]]></category>
		<category><![CDATA[Physics of Sports]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=501131</guid>

					<description><![CDATA[The official match ball for the 2026 FIFA World Cup<sup>®</sup> has sensors embedded in it that allow for real-time tracking and analysis. For fun, we take a look at how to model such sensors with {:comsolmph}. 
]]></description>
										<content:encoded><![CDATA[<p>In my <a href="/blogs/modeling-the-beautiful-game-from-ball-design-to-power-trivelas"> recent blog post</a> about the official match ball of the 2026 FIFA World Cup<sup>&reg;</sup>, the Adidas Trionda<sup>®</sup>, I discussed the aerodynamics of the ball and the impact dynamics during high-power <em>trivelas</em>, shots taken with the outside of the foot that exhibit a signature curved trajectory. In this blog post, I&#8217;ll turn to the sensors embedded in the ball and in the vests players wear under their jerseys. These systems contain MEMS accelerometers, gyroscopes, magnetometers, ECG electrodes, and RF communication systems that enable real-time tracking and analysis for coaching staff and video assistant referee (VAR) teams. I&#8217;ll also look at how these devices can be modeled and simulated using the COMSOL&nbsp;Multiphysics<sup>&reg;</sup> software.</p>
<p><span id="more-501131"></span></p>
<h3>The Sensors on the Trionda</h3>
<p>On May 3 this year, Manchester United secured a dramatic 3–2 win against Liverpool at Old Trafford. In the 14<sup>th</sup> minute, Benjamin Šeško scored the 2–0 goal for Manchester United. The goal became controversial because Šeško may have touched the ball with his hand just before it crossed the goal line.</p>
<p>However, because the Premier League does not use balls with embedded inertial measurement unit (IMU) chips, the VAR officials spent several minutes reviewing broadcast camera footage before ruling the images inconclusive and allowing the goal to stand.</p>
<p>This type of situation is less likely to occur at the 2026 World Cup. The Trionda contains <a href="https://www.youtube.com/shorts/qeSY-4HX4Uc" target="blank"> a 500-Hz IMU chip consisting of MEMS accelerometers and gyroscopes</a>. Even relatively small changes in acceleration and angular velocity caused by a touch of the ball can therefore be detected and analyzed in real time.</p>
<p>The sensors in the Trionda have already played a decisive role in the World Cup this year. In Sunday&#8217;s game between Sweden and Tunisia, Mattias Svanberg&#8217;s 4–1 goal for Sweden was initially disallowed because he was called offside. It appeared that Svanberg had received the ball directly from the free kick, in which case he would have indeed been offside.</p>
<p>However, the sensors inside the ball detected a tip-of-the-toe touch by Svanberg&#8217;s teammate Alexander Isak between the free kick and the shot on goal. Whether Isak touched the ball was difficult, if not impossible, to confirm from the camera footage alone. Because the sensors could determine the exact moment of contact, VAR was able to establish that the pass leading to Svanberg&#8217;s shot came from Isak rather than directly from the free kick. At the moment Isak touched the ball, Svanberg was no longer in an offside position, and the goal was therefore allowed to stand.</p>
<p>To add to the excitement, Svanberg had come off the bench mere seconds before the play and the goal was his very first touch of the match. Talk about timing, by both the coach and the player!</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/adidas-trionda-schematic.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;schematic&#x20;illustration&#x20;of&#x20;the&#x20;Adidas&#x20;Trionda&#x20;with&#x20;the&#x20;sensor&#x20;chip&#x20;and&#x20;part&#x20;of&#x20;the&#x20;ball&#x20;cut&#x20;out&#x20;for&#x20;viewing."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;adidas-trionda-schematic.png" alt="A&#x20;schematic&#x20;illustration&#x20;of&#x20;the&#x20;Adidas&#x20;Trionda&#x20;with&#x20;the&#x20;sensor&#x20;chip&#x20;and&#x20;part&#x20;of&#x20;the&#x20;ball&#x20;cut&#x20;out&#x20;for&#x20;viewing." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Schematic illustration created in COMSOL&nbsp;Multiphysics<sup>&reg;</sup> of the Adidas Trionda, with the sensor chip placed in one of the ball&#8217;s four surface panels. Counterweights in the other three panels make the ball mechanically symmetric.</em></cmimg></p>
<p>The chip inside the Trionda that&#8217;s making such call reversals possible was developed by Adidas in cooperation with KINEXON Sports. They have not publicly disclosed which IMU product was used to develop the chip. However, the published specifications of commercially available devices such as the <a href="https://www.sensortips.com/featured/how-do-sensors-help-you-play-ball-pt-3/" target="blank">TDK<sup>®</sup> InvenSense<sup>®</sup></a> <a href="https://product.tdk.com/en/search/sensor/mortion-inertial/imu/info?part_no=ICM-20649" target="blank">ICM-20649</a> and <a href="https://invensense.tdk.com/en-us/products/6-axis/icm-45686#products%20details" target="blank">ICM-45686</a> are strikingly similar to what one would expect from an IMU designed for football applications. These devices support angular velocities up to ±4000 degrees per second (dps) and accelerations up to ±32 g. Interestingly, the <a href="https://product.tdk.com/system/files/dam/doc/product/sensor/mortion-inertial/imu/data_sheet/ds-000192-icm-20649-v1.1.pdf" target="blank">datasheet of the ICM-20649</a> explicitly mentions &#8220;soccer ball kicks&#8221; as a target application. TDK&#8217;s MEMS MotionTracking<sup>®</sup> devices integrate three MEMS accelerometers and three MEMS gyroscopes, together with signal conditioning electronics, analog-to-digital converters, temperature sensors, and communication interfaces, into a compact 2.5 × 3 × 0.81-mm hermetically sealed package.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/mems-gyroscope.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;mems&#x20;gyroscope&#x20;created&#x20;in&#x20;COMSOL&#x20;Multiphysics."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;mems-gyroscope.png" alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;mems&#x20;gyroscope&#x20;created&#x20;in&#x20;COMSOL&#x20;Multiphysics." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>A MEMS gyroscope can be modeled as a vibratory rate gyroscope, where Coriolis forces couple a driven vibration mode to a sensing mode. Although the geometry of the IMU used in the Trionda is proprietary and thus its gyroscopes can&#8217;t be recreated exactly for simulation, COMSOL&nbsp;Multiphysics<sup>&reg;</sup> models of <a href="/paper/modeling-mems-gyroscopes-with-comsol-multiphysics-95991">comb-drive tuning fork gyroscopes</a> illustrate this principle</em>.</cmimg></p>
<p>In addition to the IMU, the electronics package inside the Trionda also contains a local positioning transmitter that sends timing and positioning data to stadium anchors, an ultra-wideband (UWB) RF antenna for communication with the anchor infrastructure, and a battery. Like the IMU, the RF electronics and batteries can be analyzed using COMSOL&nbsp;Multiphysics<sup>&reg;</sup>.</p>
<p>The IMU and positioning system can be used by the VAR team for more than just determining whether the ball was touched in a potential handball situation, like the Šeško goal I mentioned earlier. It can also be used to determine the exact moment when the ball is touched during a pass, making it possible to determine whether the receiving player was offside at the exact moment of the pass. The high sampling frequency allows the system to distinguish between successive touches during rebounds and deflections, which can be important in crowded situations inside the penalty area. Additionally, the positioning system can determine where the ball is relative to the goal line (presumably in combination with image processing).</p>
<p>The gyroscopes can also be used to measure the angular velocity and spin axis of the ball in real time during flight, making it possible to analyze curl, Magnus effect trajectories, and low-spin &#8220;knuckleball&#8221; shots in far greater detail than before.</p>
<p>It would be even nicer if we, in front of our TV screens, could also see statistics for the hardest shots and the shots with the most curl during a game!</p>
<h3>The Sensors on the Vests</h3>
<p>The vests that the players wear under their jerseys contain even more sensors and electronics than the ball. While the IMU inside the ball is designed to measure and withstand hard shots and rapidly spinning balls, the IMUs in the players’ vests are optimized for long-duration motion tracking and sensing during running and changes in direction.</p>
<p>If you look closely at the players during a game, you may notice a small protrusion under their shirts between their shoulder blades. That little hump is the pod of the vest, where most of the sensors and electronics are located. The ECG electrodes that measure heart rate and heart rate variability are the only sensing devices placed outside the pod. They are positioned in the front lower part of the vest.</p>
<p>You can often see the vest after games, when the players exchange shirts.</p>
<div class="row">
<div class="col-sm-2"></div>
<div class="col-sm-8">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/vest-sensor-ai.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="An&#x20;AI-generated&#x20;image&#x20;of&#x20;a&#x20;football&#x20;player&#x20;wearing&#x20;a&#x20;performance&#x20;tracking&#x20;vest."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;vest-sensor-ai.png" alt="An&#x20;AI-generated&#x20;image&#x20;of&#x20;a&#x20;football&#x20;player&#x20;wearing&#x20;a&#x20;performance&#x20;tracking&#x20;vest." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-2"></div>
</div>
<p><em>Schematic image of the sensors in the vest and in the pod. In the real vest, the pod is hidden inside a pocket, and the ECG electrodes are embedded inside the vest and thus cannot be seen (unless the vest is turned inside out). This image was created with ChatGPT<sup>™</sup>.</em></p>
<p>In addition to the IMU with accelerometers and gyroscopes measuring acceleration and angular velocity in all three directions, the pod also contains a global navigation satellite system (GNSS) receiver together with a local positioning system, similar to the one used in the ball. It also contains a triaxial magnetometer that measures the magnetic field direction for orientation correction, as well as antennas, RF transmitters, microcontrollers, batteries, and other electronic components.</p>
<p>You can imagine the importance of the thermal management design of the pod, with all of these electronics packed inside. The vest itself probably impedes cooling of the player, and if the pod is not well designed, it may even contribute as a nasty heat source.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/capacitively-actuated-accelerometer.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;capacitively&#x20;actuated&#x20;surface&#x20;micromachined&#x20;accelerometer&#x20;that&#x20;is&#x20;found&#x20;in&#x20;consumer&#x20;products."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;capacitively-actuated-accelerometer.png" alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;capacitively&#x20;actuated&#x20;surface&#x20;micromachined&#x20;accelerometer&#x20;that&#x20;is&#x20;found&#x20;in&#x20;consumer&#x20;products." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>A COMSOL&nbsp;Multiphysics<sup>&reg;</sup> simulation of a <a href="/model/surface-micromachined-accelerometer-17325">capacitively actuated surface micromachined accelerometer</a>, which is typically used in consumer products.</em></cmimg></p>
<p>Nonetheless, the data extracted from the vest is valuable for improving the players’ performance over time. The schematic below shows the output from a fictional player&#8217;s vest, which coaching staff can view live during the game and analyze afterward.</p>
<p>If a player is, for example, taking fewer sprints with lower acceleration and showing other signs of fatigue, the coach may decide to substitute the player. After the game, the player and coaches may analyze how the player moved across the pitch using the heat map and may also make tactical adjustments.</p>
<p>The data can also reinforce tactics that work well. For example, if the heat map shows good possession statistics and a high number of offensively successful crosses from one side of the pitch (&#8220;field&#8221;) for a central midfielder, the coaches may decide that the player should prioritize attacks on this side while remaining more central when defending. This might be the left side for a left-footed player, for example.</p>
<p>Since the vests were introduced, their statistics have been kept internal to the team and not shown on TV — much to my frustration. Sometimes, when a player is substituted, we get to see the total distance they covered, but that is usually all. The ball and vest data are not normally processed together either. Statistics such as player contact with the ball, expected goals, and shots on goal are usually obtained through image processing independently of the vest and ball data.</p>
<p>Imagine being able to see the full statistics from the ball and vests live during the game! Being able to visualize the most successful and least successful parts of a player’s game in real time, and not just as a table shown after the match or during halftime, would be fascinating.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/ai-statistic-viewer.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="An&#x20;AI-generated&#x20;image&#x20;of&#x20;what&#x20;the&#x20;UI&#x20;for&#x20;tracking&#x20;performance&#x20;vest&#x20;and&#x20;ball&#x20;data&#x20;might&#x20;look&#x20;like."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;ai-statistic-viewer.png" alt="An&#x20;AI-generated&#x20;image&#x20;of&#x20;what&#x20;the&#x20;UI&#x20;for&#x20;tracking&#x20;performance&#x20;vest&#x20;and&#x20;ball&#x20;data&#x20;might&#x20;look&#x20;like." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Schematic view of the &#8220;UI&#8221; presenting the data from the vest of player &#8220;John Doe&#8221;. The heat map reveals that the player is an attacking central midfielder, since there are few defensive high-speed sprints. The heat map almost always shows the attacking direction from left to right. This image was created with ChatGPT.</em></cmimg></p>
<h3>The Crowd</h3>
<p>So far, I&#8217;ve talked about the sensors inside the ball, how they make the VAR team’s job easier, and how they can also make the game more interesting for us viewers.</p>
<p>While this latest tech is changing the game for viewers, one aspect of football that always has and always will make it so exciting to watch is the crowd. And the best way to experience football is, of course, live at the stadium.</p>
<p>Some of the 2026 World Cup matches will be played at the iconic Estadio Azteca (officially &#8220;Estadio Banorte&#8221;) in Mexico City, the stadium where Carlos Alberto scored in the 1970 World Cup final with a fantastic thunderous instep shot from a pass by Pelé and where Diego Maradona scored the Goal of the Century (“el barrilete cósmico”) during the 1986 World Cup.</p>
<p>Estadio Azteca has been extensively renovated for the World Cup (and temporarily renamed &#8220;Mexico City Stadium&#8221; by FIFA). Among other things, a completely new sound system has been installed to improve the live experience. For fun and to help imagine how it sounds in the stadium, the COMSOL team simulated the acoustic wave propagation of one of the system&#8217;s speaker arrays (below); stay tuned for the third blog post in this World Cup series, where I&#8217;ll share more simulation results as I sound off on the acoustics of the beautiful game.</p>
<p><script src="https://fast.wistia.com/assets/external/E-v1.js" async></script></p>
<div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;">
<div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;">
<div class="wistia_embed wistia_async_tcnaxxmroe dnt=1 videoFoam=true" style="height:100%;position:relative;width:100%">
<div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"><img decoding="async" src="https://fast.wistia.com/embed/medias/tcnaxxmroe/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" /></div>
</div>
</div>
</div>
<p><em>Simulation of the acoustic wave propagation from one of the speaker arrays hanging from the roof in the newly renovated Estadio Banorte (Estadio Azteca). The full sound pressure distribution can be obtained by superposition of the sound fields from roughly 70 distributed speaker arrays suspended from the roof structure and placed throughout the stadium. </em></p>
<p>Until then, let’s continue rooting for our favorite teams in what will hopefully be the best World Cup ever!</p>
<h3>For the Love of the Game (Only!)</h3>
<p>Although the models and simulations presented here are state-of-the-art, they were created just for fun. A serious scientific study would investigate the involved parameters in much greater detail. For example, the geometry of Estadio Banorte would need to be modeled in far greater detail and the simulation results validated against measurements.</p>
<p>These investigations were performed independently of Adidas, Kinexon, and TDK, and we do not claim any cooperation with any of these organizations.</p>
<hr />
<p><small><em>Adidas and Trionda are registered trademarks of adidas AG.</p>
<p>The Bluetooth word mark is a registered trademark owned by Bluetooth SIG, Inc.</p>
<p>ChatGPT is a trademark of OpenAI OpCo, LLC.</p>
<p>FIFA World Cup is a registered trademark of the Fédération Internationale de Football Association.</p>
<p>InvenSense and MotionTracking are registered trademarks of InvenSense, Inc.</p>
<p>Kinexon is a registered trademark of Kinexon GmbH.</p>
<p>Nike is a registered trademark of Nike, Inc.</p>
<p>TDK is a registered trademark of TDK Kabushiki Kaisha.</p>
<p>COMSOL AB and its subsidiaries and products are not affiliated with, endorsed, by, sponsored by, or supported by any of the foregoing trademark owners.</em></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/tracking-performance-in-the-beautiful-game/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modeling Lined Rock Caverns for Underground Hydrogen Storage</title>
		<link>https://www.comsol.com/blogs/modeling-lined-rock-caverns-for-underground-hydrogen-storage</link>
					<comments>https://www.comsol.com/blogs/modeling-lined-rock-caverns-for-underground-hydrogen-storage#respond</comments>
		
		<dc:creator><![CDATA[Qinghua Lei]]></dc:creator>
		<pubDate>Mon, 15 Jun 2026 21:24:33 +0000</pubDate>
				<category><![CDATA[Fluid & Heat]]></category>
		<category><![CDATA[Geomechanics]]></category>
		<category><![CDATA[Porous Media Flow]]></category>
		<category><![CDATA[Structural & Acoustics]]></category>
		<category><![CDATA[Geomechanics Module]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=500811</guid>

					<description><![CDATA[Lined rock caverns can store hydrogen, but their safety depends on interactions between hydrogen gas, rock masses, and structural linings...]]></description>
										<content:encoded><![CDATA[<p><em>In this blog post, guest author Qinghua Lei discusses a modeling framework for analyzing cyclic hydrogen pressurization of an LRC embedded in a fractured rock mass.</em></p>
<p>Underground hydrogen storage is becoming essential for the global energy transition. Lined rock caverns (LRCs) provide a flexible and geographically adaptable solution, but their safety depends on complex interactions between hydrogen gas, structural linings, and fractured rock masses. Understanding these coupled effects requires advanced numerical modeling. In this blog post, we demonstrate how the COMSOL&nbsp;Multiphysics<sup>&reg;</sup> software can be used to model LRC behavior during hydrogen pressurization.</p>
<p><span id="more-500811"></span></p>
<h3>Why Use COMSOL&nbsp;Multiphysics<sup>&reg;</sup> for LRC Hydrogen Storage Modeling?</h3>
<p>Modeling lined rock caverns for hydrogen storage presents significant computational challenges. The system involves multiple interacting materials (hydrogen gas, steel, reinforced concrete, and fractured rock), each governed by distinct physical behavior. The surrounding rock mass contains numerous preexisting fractures, introducing pronounced geometric discontinuities and constitutive nonlinearities that strongly influence the system’s response. Deformation of the fractured rock mass interacts closely with the cavern structure, governing stress redistribution and overall system stability. Under high-pressure hydrogen exposure, the steel lining may be susceptible to embrittlement, while the concrete lining may develop cracking that redistributes stresses and influences the deformation of the steel lining. These tightly coupled processes span multiple spatial and temporal scales, making realistic analysis a demanding multiphysics problem.</p>
<p>COMSOL&nbsp;Multiphysics<sup>&reg;</sup> is well suited for solving such multiphysics problems due to its exceptional capabilities for:</p>
<ul>
<li>Simultaneously solving fully coupled multiphysics equations, enabling direct interactions between mechanical, hydraulic, and transport processes</li>
<li>Defining model parameters as functions of other field variables, enabling indirect couplings such as stress-dependent material properties or damage-driven stiffness evolution</li>
<li>Explicitly representing discrete fractures within rock masses and resolving nonlinear hydromechanical processes within complex fracture networks</li>
<li>Handling multiple interacting materials within a unified framework, supported by an extensive library of built-in constitutive models as well as flexible user-defined material formulations</li>
<li>Implementing custom governing equations and application-specific constitutive models, enabling advanced formulations such as hydrogen embrittlement models to be directly incorporated into the analysis</li>
</ul>
<p>Below, we discuss the process for building numerical models in COMSOL&nbsp;Multiphysics<sup>&reg;</sup> for LRC analysis and give a simulation example.</p>
<h3>Overview of Modeling Steps</h3>
<p>When using COMSOL&nbsp;Multiphysics<sup>&reg;</sup>, there are three key simulation steps: </p>
<ol>
<li>Generating the geometry and mesh</li>
<li>Coupling parameters and implementing material properties, boundary conditions, etc.</li>
<li>Calculating the solution</li>
</ol>
<p>Let&#8217;s go over these steps in more detail.</p>
<h4>Geometry and Mesh</h4>
<p>First, the model geometry is constructed following a multiscale strategy. On the large scale (Figure 1a), a two-dimensional domain is defined to represent a horizontal cross section of the lined rock cavern embedded within a fractured rock mass. The cavern geometry, including the steel lining, reinforced concrete layer, and surrounding shotcrete, can be created directly in COMSOL&nbsp;Multiphysics<sup>&reg;</sup> or imported from CAD software. Discrete fracture networks are geometrically represented as line segments within the rock domain and can be generated in COMSOL<sup>&reg;</sup> or using external tools such as MATLAB<sup>&reg;</sup> or CAD software and then exported as DXF™ files for direct import into COMSOL<sup>&reg;</sup>. On the small scale, a dedicated model of the steel lining is constructed to resolve hydrogen diffusion and embrittlement processes. The two models are coupled at the steel–concrete interface by enforcing displacement compatibility, enabling consistent interaction between structural deformation and material degradation.</p>
<p>Once the geometry is defined or imported, the large-scale domain is discretized using an unstructured mesh of triangular finite elements generated via Delaunay tessellation (Figure 2). Mesh refinement is applied near the cavern boundary and around fracture intersections to accurately resolve stress concentrations and damage evolution. To represent natural fractures, joint elements between neighboring finite elements are implemented, enabling explicit analysis of nonlinear fracture slip and opening within the rock mass. Thin structural components such as the steel lining and shotcrete layer are modeled using interface elements in the large-scale model in order to maintain computational efficiency. In the small-scale model, however, the steel lining thickness is explicitly represented (Figure 1b) and discretized using solid elements to resolve hydrogen diffusion and embrittlement processes across the thickness. This multiscale discretization strategy makes it possible for the global structural response to be captured efficiently while locally resolving material degradation mechanisms within the steel lining.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/Schematic-of-multiscale-lined-rock-cavern-model.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;detailed&#x20;schematic&#x20;that&#x20;shows&#x20;the&#x20;model&#x20;design&#x20;and&#x20;boundary&#x20;condition&#x20;of&#x20;a&#x20;multiscale&#x20;model&#x20;of&#x20;a&#x20;lined&#x20;rock&#x20;cavern."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;Schematic-of-multiscale-lined-rock-cavern-model.png" alt="A&#x20;detailed&#x20;schematic&#x20;that&#x20;shows&#x20;the&#x20;model&#x20;design&#x20;and&#x20;boundary&#x20;condition&#x20;of&#x20;a&#x20;multiscale&#x20;model&#x20;of&#x20;a&#x20;lined&#x20;rock&#x20;cavern." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 1. A schematic showing the model design and boundary condition of the multiscale model, including (a) a large-scale model representing an LRC situated in a fractured rock mass and (b) a small-scale model capturing the response of the steel lining subject to cyclic internal pressurization and boundary displacement constraints, as well as hydrogen diffusion. The dimensions and scales shown follow the model configuration adopted in our previous study (Ref. 1) and are presented here to illustrate the model setup strategy. The actual model configuration may vary depending on specific applications and site conditions.</em></p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/The-mesh-discretization-for-an-example-lined-rock-cavern-model.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;graphic&#x20;showing&#x20;the&#x20;mesh&#x20;discretization&#x20;of&#x20;a&#x20;lined&#x20;rock&#x20;cavern&#x20;model&#x20;in&#x20;the&#x20;COMSOL&#x20;software&#x20;through&#x20;a&#x20;zoomed&#x20;out&#x20;and&#x20;zoomed&#x20;in&#x20;lens&#x20;and&#x20;including&#x20;a&#x20;key&#x20;for&#x20;what&#x20;is&#x20;being&#x20;shown."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;The-mesh-discretization-for-an-example-lined-rock-cavern-model.png" alt="A&#x20;graphic&#x20;showing&#x20;the&#x20;mesh&#x20;discretization&#x20;of&#x20;a&#x20;lined&#x20;rock&#x20;cavern&#x20;model&#x20;in&#x20;the&#x20;COMSOL&#x20;software&#x20;through&#x20;a&#x20;zoomed&#x20;out&#x20;and&#x20;zoomed&#x20;in&#x20;lens&#x20;and&#x20;including&#x20;a&#x20;key&#x20;for&#x20;what&#x20;is&#x20;being&#x20;shown." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 2. Mesh discretization for the LRC model (Ref. 2). The reinforced concrete layer is discretized using structured quadrilateral elements, while the rock matrix is discretized using unstructured triangular elements. Steel lining and shotcrete are discretized using line elements, whereas fractures are discretized using joint elements.</em></p>
<h4>Interfaces and Couplings</h4>
<p>We use the <em>Solid Mechanics</em> interface in COMSOL&nbsp;Multiphysics<sup>&reg;</sup> to simulate deformation of the fractured rock mass, concrete lining, and steel components under internal hydrogen pressurization. The rock matrix is modeled using a scalar damage formulation to capture crack initiation and propagation, while discrete fractures are implemented as joint elements with nonlinear normal and shear constitutive relations to represent fracture slip and opening.</p>
<p>The reinforced concrete lining is modeled using the <a href="/model/concrete-beam-with-reinforcement-bars-10440">Mazars&#8217; damage model</a>, available in COMSOL<sup>&reg;</sup>, which captures tensile cracking and progressive stiffness degradation. The influence of reinforcement is incorporated through an enhanced elastic modulus and residual strength parameters, consistent with the adopted concrete class.</p>
<p>In the large-scale model, the steel lining is represented using interface elements due to its thin geometry. Its mechanical behavior follows an elastoplastic constitutive law with exponential hardening. To capture hydrogen embrittlement effects, a separate small-scale model explicitly represents the steel lining thickness using solid elements. In this model, a customized interface is developed with the Physics Builder in COMSOL<sup>&reg;</sup> to simulate the hydrogen diffusion across the lining while accounting for the coupling with solid mechanics. The mechanical behavior of steel is coupled to hydrogen concentration by defining the yield stress as a concentration-dependent variable, enabling analysis of hydrogen-induced strength degradation.</p>
<p>When pore pressure effects in the fractured rock mass are considered, the <em>Darcy’s Law</em> interface in the Subsurface Flow Module is incorporated to simulate fluid flow within the rock matrix and fractures. The <em>Poroelasticity</em> coupling can be activated to achieve direct coupling between mechanical deformation and pore pressure evolution. In this case, hydraulic properties such as permeability or fracture aperture may be defined as stress-dependent variables, enabling indirect hydromechanical coupling consistent with our previous modeling framework.</p>
<p>Material properties and constitutive equations are defined separately for the rock matrix, fractures, concrete, and steel. Direct multiphysics coupling ensures consistent interaction between deformation and hydrogen transport (and pore pressure when activated), while additional indirect couplings are introduced by defining model parameters as functions of evolving field variables such as stress, damage, or hydrogen concentration. Mechanical boundary conditions include <em>in situ</em> stresses applied at the outer rock boundary and internal hydrogen pressure applied at the cavern wall.</p>
<h4>Calculating the Solution</h4>
<p>The analysis is performed in two stages: In the first stage, the large-scale model is brought to equilibrium under the prescribed <em>in situ</em> stresses using a ramped loading procedure. In the second stage, hydrogen pressurization is applied at the cavern boundary, either monotonically or cyclically, to simulate storage operation. The resulting displacement field from the large-scale model is imposed on the small-scale steel model, where hydrogen diffusion and concentration-dependent mechanical degradation are solved in a time-dependent manner. Nonlinear solution schemes are used to resolve fracture reactivation, damage evolution, and plasticity.</p>
<h3>LRC Simulation Example</h3>
<p>We apply the multiscale model to simulate cyclic hydrogen pressurization of an LRC embedded in a fractured rock mass (Ref. 1). The large-scale modeling results show cyclic radial displacement of the concrete lining and progressive damage development in both concrete and surrounding rock (Figure 3). Damage localizes primarily in tensile regions and near fracture intersections (Refs. 1–2), highlighting the strong control of fracture distribution in rock on the LRC’s structural response (Figure 4).</p>
<p>The small-scale model captures hydrogen diffusion and embrittlement within the steel lining (Figure 5) (Ref. 1). Hydrogen concentration increases from the inner surface and evolves over loading cycles, leading to local strength degradation that correlates with stress concentration zones. These results demonstrate the coupled interaction between cyclic pressurization, fracture reactivation, stress redistribution, and hydrogen-induced degradation across scales.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/Simulation-results-of-radial-displacement-and-damage-development.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;look&#x20;at&#x20;the&#x20;simulation&#x20;results&#x20;of&#x20;the&#x20;distribution&#x20;and&#x20;evolution&#x20;of&#x20;radial&#x20;displacement&#x20;in&#x20;the&#x20;concrete&#x20;lining&#x20;of&#x20;the&#x20;lined&#x20;rock&#x20;cavern&#x20;model&#x20;and&#x20;the&#x20;damage&#x20;development&#x20;in&#x20;the&#x20;concrete&#x20;and&#x20;the&#x20;rock&#x20;over&#x20;a&#x20;period&#x20;of&#x20;time."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;Simulation-results-of-radial-displacement-and-damage-development.png" alt="A&#x20;look&#x20;at&#x20;the&#x20;simulation&#x20;results&#x20;of&#x20;the&#x20;distribution&#x20;and&#x20;evolution&#x20;of&#x20;radial&#x20;displacement&#x20;in&#x20;the&#x20;concrete&#x20;lining&#x20;of&#x20;the&#x20;lined&#x20;rock&#x20;cavern&#x20;model&#x20;and&#x20;the&#x20;damage&#x20;development&#x20;in&#x20;the&#x20;concrete&#x20;and&#x20;the&#x20;rock&#x20;over&#x20;a&#x20;period&#x20;of&#x20;time." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 3. Simulation results (Ref. 1) showing the distribution and evolution of (a) radial displacement in the concrete lining and (b) damage development in the concrete and surrounding rock over multiple hydrogen pressurization cycles (cycle period T0 = 24 h).</em></p>
<p><script src="https://fast.wistia.com/player.js" async></script><script src="https://fast.wistia.com/embed/w14nocqp5d.js" async type="module"></script></p>
<style>wistia-player[media-id='w14nocqp5d']:not(:defined) { background: center / contain no-repeat url('https://fast.wistia.com/embed/medias/w14nocqp5d/swatch'); display: block; filter: blur(5px); padding-top:56.25%; }</style>
<p> <wistia-player media-id="w14nocqp5d" seo="false" wmode="transparent" dnt="1" aspect="1.7777777777777777"></wistia-player></p>
<p><em>Figure 4. Simulation results (Ref. 1) showing the distribution of damage and local maximum principal stress in the vicinity of the LRC during cyclic hydrogen gas pressurization (cycle period T0 = 24 h).</em></p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/multiple-simulation-results-for-lined-rock-cavern.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Three&#x20;different&#x20;simulation&#x20;results&#x20;showing&#x20;the&#x20;spatial&#x20;distribution&#x20;of&#x20;hydrogen&#x20;concentration,&#x20;maximum&#x20;principal&#x20;stress&#x20;variation,&#x20;and&#x20;strength&#x20;degradation&#x20;in&#x20;the&#x20;steel&#x20;lining&#x20;of&#x20;an&#x20;LRC."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;multiple-simulation-results-for-lined-rock-cavern.png" alt="Three&#x20;different&#x20;simulation&#x20;results&#x20;showing&#x20;the&#x20;spatial&#x20;distribution&#x20;of&#x20;hydrogen&#x20;concentration,&#x20;maximum&#x20;principal&#x20;stress&#x20;variation,&#x20;and&#x20;strength&#x20;degradation&#x20;in&#x20;the&#x20;steel&#x20;lining&#x20;of&#x20;an&#x20;LRC." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 5. Simulation results (Ref. 1) showing the spatial distribution of (a) hydrogen concentration, (b) maximum principal stress variation, and (c) strength degradation in the steel lining at different loading stages.</em></p>
<p>In addition, the framework has been extended to include hydromechanical coupling in the fractured rock mass (Ref. 3) and time-dependent rock creep (Ref. 4). These extensions enable us to evaluate how fluid pressure diffusion and viscoelastic deformation in the surrounding rock mass influence the LRC’s long-term performance.</p>
<h3>References</h3>
<ol>
<li>C. Zhao et al., &#8220;Modelling lined rock caverns subject to hydrogen embrittlement and cyclic pressurisation in fractured rock masses,&#8221; <em>International Journal of Hydrogen Energy</em>, 2025; 152: 150027.</li>
<li>C. Zhao, Q. Lei, Z. Zhang, &#8220;Impact of fracture networks on the structural deformation of lined rock caverns under high internal gas pressure,&#8221; <em>Underground Space</em>, 2025; 21: 252-269.</li>
<li>C. Zhao, Z. Zhang, Q. Lei, &#8220;Coupled hydro-mechanical simulation of the interaction between adjacent lined rock caverns subject to internal gas pressurisation,&#8221; <em>Geomechanics for Energy and the Environment</em>, vol. 43, 2025: 100701.</li>
<li>C. Zhao et al., &#8220;Influence of rock creep on the performance of lined caverns under cyclic pressurization and hydrogen embrittlement,&#8221; <em>International Journal of Rock Mechanics and Mining Sciences</em>, vol. 199, 2026; 106401.</li>
</ol>
<h3>About the Author</h3>
<p>Qinghua Lei is an associate professor at Uppsala University, Sweden. He earned his BSc (2009) and MSc (2012) in civil engineering from Tongji University, China, and his PhD (2016) in rock mechanics from Imperial College London, UK. He worked as a postdoctoral researcher in fluid mechanics at Imperial College London (2016–2018) and later as a senior researcher and lecturer in engineering geology at ETH Zurich, Switzerland (2018–2023). He is the recipient of the 2025 ERC Consolidator Grant, 2024 Chin-Fu Tsang Coupled Processes Award, 2019 Rocha Medal, 2016 NGW Cook PhD Dissertation Award, and 2015 Rock Mechanics Research Award. He is a fellow of the Young Academy of Europe. His research interests include rock mechanics, hydrogeology, geophysics, natural hazards, and geotechnical engineering.<br />
&nbsp;<br />
<em>MATLAB is a registered trademark of The MathWorks, Inc. Autodesk, the Autodesk logo, AutoCAD, and DXF are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/modeling-lined-rock-caverns-for-underground-hydrogen-storage/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using AI Tools to Simplify Data Transfer and File Conversion</title>
		<link>https://www.comsol.com/blogs/using-ai-tools-to-simplify-data-transfer-and-file-conversion</link>
					<comments>https://www.comsol.com/blogs/using-ai-tools-to-simplify-data-transfer-and-file-conversion#respond</comments>
		
		<dc:creator><![CDATA[Walter Frei]]></dc:creator>
		<pubDate>Thu, 11 Jun 2026 19:13:35 +0000</pubDate>
				<category><![CDATA[Equation-Based Modeling]]></category>
		<category><![CDATA[Fluid & Heat]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Heat Transfer]]></category>
		<category><![CDATA[Heat Transfer Module]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=500471</guid>

					<description><![CDATA[{:comsolmph} often requires efficient data import and conversion. Manual conversion is common but is time-consuming. Learn how AI tools can help. ]]></description>
										<content:encoded><![CDATA[<p>A perennial challenge when using simulation software such as COMSOL&nbsp;Multiphysics<sup>&reg;</sup> is how to efficiently bring in and convert data from other sources. The first few times such a task crosses your desk, you might do the conversion by hand. But these tasks often grow in scope, and you may be asked to convert the same kind of data repeatedly. In this blog post, we will take a look at how AI tools can work with COMSOL<sup>&reg;</sup> to help turn your knowledge of these conversions into a reusable workflow. </p>
<p><span id="more-500471"></span></p>
<h3>Understanding the Pain Points of Data Transfer</h3>
<p>We are frequently asked how data that is in different formats can be brought into COMSOL<sup>&reg;</sup>. This data often lives in text files, and the file formats can be unique, with no translation tools available. Our customers may understand those formats quite well, while we have a strong understanding of how such data should be used within COMSOL<sup>&reg;</sup>. In this situation, AI can significantly reduce the effort needed to implement a data translation workflow. Let’s look at this in the context of a specific scenario.</p>
<h3>A Sample Scenario</h3>
<p>Suppose we have been given a text file containing a description of a lumped thermal model. A lumped model is a bit different from the finite element models you may be familiar with in COMSOL&nbsp;Multiphysics<sup>&reg;</sup>. Lumped models use <em>nodes</em> that represent volumes of material. Each volume has a known density and specific heat, so each node has an associated thermal mass. The temperature of a node can increase due to an applied heat <em>load</em>, and heat can flow between nodes by either <em>conduction</em> or <em>radiation</em>, computed based on the temperature difference between two nodes. We can also consider nodes that are at a fixed temperature, called temperature <em>sinks</em>. To make this more concrete, we will put together a very simple lumped model of a satellite in deep space.</p>
<p>The satellite model that we will work with is shown in the figure below. It is a box structure with two solar panels protruding from either side. The six sides of the box and the two solar panels are each represented by a single thermal node. There is conductive heat flux between adjacent faces of the box structure and radiative heat flux between the side faces and the solar panels. There is also radiative heat flux from all faces to deep space. The objective of this model is to compute temperature over time, starting from an initial temperature. We will assume that solar and planetary loads are negligible, such as when a geostationary satellite goes into eclipse, and that the only load is due to a heater on one node.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/simple-satellite-model.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;grey&#x20;lumped&#x20;model&#x20;of&#x20;a&#x20;satellite&#x20;in&#x20;deep&#x20;space.&#x20;The&#x20;satellite&#x20;is&#x20;a&#x20;grey&#x20;cube&#x20;with&#x20;two&#x20;rectangular&#x20;solar&#x20;panels&#x20;protruding&#x20;from&#x20;either&#x20;side."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;simple-satellite-model.png" alt="A&#x20;grey&#x20;lumped&#x20;model&#x20;of&#x20;a&#x20;satellite&#x20;in&#x20;deep&#x20;space.&#x20;The&#x20;satellite&#x20;is&#x20;a&#x20;grey&#x20;cube&#x20;with&#x20;two&#x20;rectangular&#x20;solar&#x20;panels&#x20;protruding&#x20;from&#x20;either&#x20;side." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
<em>Schematic of an eight-node lumped thermal model of a satellite. There is conduction between the nodes of the box, as well as radiation from all nodes to deep space.</em></p>
<p>These types of lumped models are quite common, and a number of different file formats are used to represent them. To keep the example format-agnostic, we will generate a file that is similar in spirit, if not in exact syntax, to these formats. As we will see, the exact syntax is not the main point. An excerpt of our sample file is shown below:</p>
<p><code>TSINK, 99, 2.7 # Thermal Sink 99<br />
NODE, 10, 300, 12150 # Node 10<br />
…<br />
NODE, 80, 300, 3220  # Node 80<br />
LOAD, 60, 750 # Load on node 60<br />
CON, 1020, 10, 20, 0.71 # Conductor 10 - 20<br />
…<br />
CON, 5020, 50, 20, 0.71 # Conductor 50 - 20<br />
RAD, 2070, 20, 70, 8.9e-9 # Radiation 20 - 70<br />
…<br />
RAD, 8099, 80, 99, 1.8e-7 # Radiation 80 - 99</code></p>
<p>There are five types of data in this file: <code>TSINK, NODE, LOAD, CON,</code> and <code > RAD.</code> These represent temperature sinks, temperature nodes with mass, thermal loads on particular nodes, conductive connections between nodes, and radiative connections between nodes or between a node and a sink. The information after the # symbol is a comment. If you are familiar with similar types of files, the above format can be described as a new <em>dialect</em> in the computer science sense.</p>
<p>To borrow a few more phrases from computer science, the information in this file describes a <em>connected graph</em>, where the records describing conduction and radiation are <em>edges</em> between the <em>nodes</em>. This is particularly useful, since AI tools are good at dealing with these types of data structures. Let’s keep that in mind for later, but now let’s turn our attention to getting this data into COMSOL<sup>&reg;</sup>.</p>
<h3>The COMSOL Equivalent</h3>
<p>Although COMSOL&nbsp;Multiphysics<sup>&reg;</sup> does include a <em>Lumped Thermal System</em> interface as part of the <a href="/heat-transfer-module">Heat Transfer Module</a> add-on, we want something with a little less overhead for larger models. The simplest equivalent for representing the data above is to use the <em>Global Equations</em> interface. Since the data we are trying to import represents a three-dimensional structure, but the input file does not contain enough information about the shape and dimensions of the geometry, representing the model in an abstract format is justified.</p>
<p>The <em>Global Equations</em> interface enables us to represent the graph network as a coupled system of ordinary differential equations, so equations of the form:</p>
<div class="latex">T_{sink} = T_0</div>
<p>&nbsp;</p>
<div class="latex">C_{T,i} \partial T_i/\partial t = Q_i + \Sigma_j \left[ G_{ij}\left( T_j &#8211; T_i \right) + R_{ij}(T_j^4-T_i^4) \right]</div>
<p>&nbsp;<br />
These equations can be represented within the user interface as shown in the screenshot below. We can also write out, and read in, a whole set of these global equations using the <em>Save to File</em> and <em>Load from File</em> buttons.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/implement-ordinary-differential-equations.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;screenshot&#x20;of&#x20;the&#x20;global&#x20;equations&#x20;settings&#x20;window&#x20;in&#x20;COMSOL&#x20;Multiphysics&#x20;showing&#x20;how&#x20;to&#x20;implement&#x20;a&#x20;set&#x20;of&#x20;ordinary&#x20;differential&#x20;equations."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;implement-ordinary-differential-equations.png" alt="A&#x20;screenshot&#x20;of&#x20;the&#x20;global&#x20;equations&#x20;settings&#x20;window&#x20;in&#x20;COMSOL&#x20;Multiphysics&#x20;showing&#x20;how&#x20;to&#x20;implement&#x20;a&#x20;set&#x20;of&#x20;ordinary&#x20;differential&#x20;equations." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
<em>Screenshot showing how to implement a set of ordinary differential equations. Note also the </em>Save<em> and </em>Load<em> buttons.</em></p>
<p>The model that we’re trying to reproduce here can be set up with nine entries for the nodes and the sink. I put these together by hand. It was a bit tedious, but I knew that I would only need to do it once, so it was worth the effort. Note that the original file was written with an assumed set of units, so all equations were nondimensionalized. After entering this into the user interface, I wrote the model out to a text file. A few lines are shown below:</p>
<p><code>NODE10 12150*d(NODE10,t)[s]-((0.71*(NODE20-NODE10)+0.71*(NODE30-NODE10)+0.71*(NODE40-NODE10)+0.71*(NODE50-NODE10))+(4.5e-8*(TSINK99^4-NODE10^4))) 300 0 "Node 10"<br />
...<br />
NODE60 12150*d(NODE60,t)[s]-((750)+(0.71*(NODE20-NODE60)+0.71*(NODE30-NODE60)+0.71*(NODE40-NODE60)+0.71*(NODE50-NODE60))+(4.5e-8*(TSINK99^4-NODE60^4))) 300 0 "Node 60"<br />
...<br />
TSINK99 TSINK99-2.7 2.7 0 "Thermal Sink 99"</code></p>
<h3>Using AI to Build the Translator</h3>
<p>At this point we should have a good understanding of these two files. We should also understand that a file with hundreds or thousands of entries will require some level of automation. What may not be so obvious is that we are converting graph data from an edge-list representation to an incidence-list representation that exploits sparsity. Readers with a little background in computer science will recognize that this type of conversion algorithm is not trivial to implement.</p>
<p>Fortunately, these are exactly the kinds of tasks that AI can help automate. To be clear, we are not going to ask AI to do the conversion; we are going to ask AI to write a general-purpose conversion tool. But what do we need to ask for? How do we instruct the AI tool to write the conversion tool for us?</p>
<p>We already have almost all of the data that we need within these two text files. All we need to do is upload them to the AI tool of choice and use a prompt along these lines:</p>
<p><code>Here is a file that contains nodes and sinks, representing nodes on a graph network. The connections between the nodes are defined by CON and RAD lines. Everything after a # is a comment. I need to convert the first file into the format of the second file. Please write out the transformation rules between them.</code></p>
<p>In this case, I used ChatGPT. After about a minute, it presented a full human-readable description of how to do the conversion. It was particularly impressive to me that the AI tool recognized that the file referred to a thermal problem and identified the nature of the nonlinear radiative term.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/chatgpt-output-conversion-tool.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;screenshot&#x20;of&#x20;a&#x20;ChatGPT&#x20;output&#x20;for&#x20;creating&#x20;a&#x20;general-purpose&#x20;conversion&#x20;tool."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;chatgpt-output-conversion-tool.png" alt="A&#x20;screenshot&#x20;of&#x20;a&#x20;ChatGPT&#x20;output&#x20;for&#x20;creating&#x20;a&#x20;general-purpose&#x20;conversion&#x20;tool." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
<em>Excerpt of the ChatGPT output.</em></p>
<p>As I spent some time reviewing this output in detail, I gained confidence that the tool understood the task. Keep in mind that the input file uses a unique, undocumented dialect for describing a lumped thermal model. I needed only one more step: asking the AI tool to generate code that I could run independently. This required one more prompt:</p>
<p><code><br />
Please write a monolithic piece of Java code that I can use in COMSOL's Method Editor to convert any file of the original type into this format.<br />
</code></p>
<p>I asked for Java code here because I wanted to run this entirely within COMSOL&nbsp;Multiphysics<sup>&reg;</sup>. Just as ChatGPT had no difficulty understanding the unique dialect of the input file, it also had no difficulty writing code in the programming language I requested.</p>
<p>The resulting code was several hundred lines, so I will not show it here. I did, however, review it briefly and noticed that ChatGPT added comments for readability and even included error checking so that it would fail with an informative message if given an invalid file. The code compiled and ran without issues, and I was able to do some preliminary checking by generating results.</p>
<p>In general, it is important to verify and validate translation code, and the right approach depends on the form of the data. Sometimes a visual spot check of a few cases may be sufficient; other times, you may need to be more rigorous. One approach is to write a back-converter as well, essentially round-tripping the data and verifying that it still matches the original. We can use AI for this step as well.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/sample-output-graph.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;graph&#x20;of&#x20;computed&#x20;data&#x20;from&#x20;an&#x20;input&#x20;file&#x20;representing&#x20;the&#x20;thermal&#x20;model&#x20;of&#x20;a&#x20;satellite."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;sample-output-graph.png" alt="A&#x20;graph&#x20;of&#x20;computed&#x20;data&#x20;from&#x20;an&#x20;input&#x20;file&#x20;representing&#x20;the&#x20;thermal&#x20;model&#x20;of&#x20;a&#x20;satellite." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
<em>Sample output computed from the input file.</em></p>
<p>At this point, some readers may be asking: Why not just incorporate this translator into the COMSOL product suite? Let me emphasize that this example is a minimal thermal network file in a unique dialect. More practically, lumped thermal model files can incorporate many more record types, require collections of multiple files, and even contain customized code that implements, for example, a specific type of thermostatic control algorithm. Writing a general-purpose translator could involve covering many edge cases that might never arise in the same file. Furthermore, one-to-one translation is not always the best path. Sometimes you need to take a step back and understand the specific modeling intent of the person who created the original file. That is particularly true of these types of thermal network models, but that is a topic for another day.</p>
<h3>Remarks on File Translation and AI in General</h3>
<p>It is worth reemphasizing how little effort was required to get to this point. We already had the sample input file. We did spend some time figuring out how best to represent this within COMSOL<sup>&reg;</sup> and generating sample syntax, but the interaction with the AI tool was minimal: Two files were uploaded, two prompts were given, and the results were applicable to any file using the same format. The total interaction time with the AI tool was a few minutes.</p>
<p>If you need to perform this type of structured data or file translation, you can become familiar with this workflow quickly. What if you need to incorporate more features? Try adding a few more lines of sample input and output, and then prompt the AI tool again. What about other data that you want to automatically bring into COMSOL? Your company may have a large proprietary material database in a custom format that you need to import. Use this workflow to write the translator. Keep in mind that the proprietary data itself does not need to be shared with the AI tool; only the data format is shared. What you get back is an algorithm and source code.</p>
<p>More broadly, as discussed in a previous <a href="/blogs/thoughts-on-ai-and-cem43-in-medical-device-design">COMSOL blog post</a>, AI tools continue to improve rapidly. For the kinds of problems that COMSOL users need to solve, these capabilities are becoming increasingly useful.</p>
<p>For now, I will leave you with the results of one final prompt, where I asked the AI to draw its interpretation of the hardware represented by this file. The result is shown below. It is not quite there yet, but I will be sure to revisit this in a few months to see how things have changed. </p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/ai-lumped-model-satellite.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="An&#x20;AI&#x20;generated&#x20;image&#x20;of&#x20;a&#x20;lumped-model&#x20;satellite."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;ai-lumped-model-satellite.png" alt="An&#x20;AI&#x20;generated&#x20;image&#x20;of&#x20;a&#x20;lumped-model&#x20;satellite." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
<em>How AI interprets the global equations.</em></p>
<h3>Next Step</h3>
<p>How might you use this workflow to help with your COMSOL modeling? Leave your thoughts below, or contact us!</p>
<div class="flex-center">
<a href="/contact" class="btn-solid btn-md btn-orange">Contact COMSOL</a>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/using-ai-tools-to-simplify-data-transfer-and-file-conversion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Engineering at the Limits of Speed and Scale: The State of Hardware Design</title>
		<link>https://www.comsol.com/blogs/engineering-at-the-limits-of-speed-and-scale-the-state-of-hardware-design</link>
					<comments>https://www.comsol.com/blogs/engineering-at-the-limits-of-speed-and-scale-the-state-of-hardware-design#respond</comments>
		
		<dc:creator><![CDATA[Charles Milhans]]></dc:creator>
		<pubDate>Wed, 10 Jun 2026 21:02:10 +0000</pubDate>
				<category><![CDATA[COMSOL Now]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=500261</guid>

					<description><![CDATA[DesignCon 2026 brought together engineers and experts in electrical engineering and semiconductor design. Here are some highlights from the event!]]></description>
										<content:encoded><![CDATA[<p>DesignCon is an annual event held in Silicon Valley that brings together the electrical engineering and semiconductor community, with engineers in attendance who specialize in signal integrity, packaging, interconnects, photonics, and testing and measurement. The 2026 event offered a snapshot of the challenges facing modern hardware design, particularly as AI and high-performance computing drive unprecedented demands for bandwidth, power efficiency, and system integration. Across technical sessions and the expo floor, discussions continued to return to one question: How can we move more data more quickly while maintaining reliability and performance? </p>
<p><span id="more-500261"></span></p>
<h3>AI Infrastructure and the Push Toward System-Level Design</h3>
<p>One of the most consistent themes throughout the conference was the influence of AI workloads on hardware architecture. Sessions and exhibitor discussions highlighted ongoing work around 224 Gbps and 448 Gbps signaling, including the electrical and optical interconnect technologies needed to support next-generation AI and high-performance computing (HPC) systems.</p>
<p>As AI clusters expand, the amount of data moving between processors, memory, and networking hardware has increased dramatically. That shift is pushing designers to reconsider the limits of traditional electrical interconnects. Many talks explored the tradeoffs between <a href="/blogs/modeling-electromigration-in-comsol-multiphysics">copper</a> and <a href="/blogs/silicon-photonics-designing-and-prototyping-silicon-waveguides?utm_source=chatgpt.com">optical</a> solutions, while others focused on improving power delivery networks and managing signal integrity at extremely high frequencies.</p>
<p>At the same time, many presentations pointed to a broader trend within electronic design automation (EDA). Several of the major EDA vendors are moving rapidly toward system-level integration and automation through AI-driven design workflows. Tools from companies such as Cadence and Keysight increasingly incorporate AI agents to automate setup, optimization, and verification tasks.</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/designcon-venue.jpg" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="DesignCon&#x27;s&#x20;venue,&#x20;the&#x20;Santa&#x20;Clara&#x20;Convention&#x20;Center,&#x20;an&#x20;off-white&#x20;modern&#x20;building&#x20;with&#x20;glass-pyramid&#x20;like&#x20;features&#x20;and&#x20;palm&#x20;trees&#x20;out&#x20;front."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;designcon-venue.jpg" alt="DesignCon&amp;&#x23;039&#x3B;s&#x20;venue,&#x20;the&#x20;Santa&#x20;Clara&#x20;Convention&#x20;Center,&#x20;an&#x20;off-white&#x20;modern&#x20;building&#x20;with&#x20;glass-pyramid&#x20;like&#x20;features&#x20;and&#x20;palm&#x20;trees&#x20;out&#x20;front." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/andy-charles-and-chiphead.jpg" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Andy&#x20;Cair&#x20;and&#x20;Charles&#x20;Milhans&#x20;of&#x20;COMSOL&#x20;stand&#x20;on&#x20;either&#x20;side&#x20;of&#x20;Chiphead,&#x20;the&#x20;mascot&#x20;of&#x20;DesignCon&#x20;with&#x20;a&#x20;large&#x20;head&#x20;resembling&#x20;a&#x20;circuitboard."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;andy-charles-and-chiphead.jpg" alt="Andy&#x20;Cair&#x20;and&#x20;Charles&#x20;Milhans&#x20;of&#x20;COMSOL&#x20;stand&#x20;on&#x20;either&#x20;side&#x20;of&#x20;Chiphead,&#x20;the&#x20;mascot&#x20;of&#x20;DesignCon&#x20;with&#x20;a&#x20;large&#x20;head&#x20;resembling&#x20;a&#x20;circuitboard." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>At left: DesignCon&#8217;s venue, the Santa Clara Convention Center. At right: COMSOL Application Engineer Andy Cai and Sales Development Representative Charles Milhans with DesignCon&#8217;s mascot, Chiphead.</em></p>
<h3>The Role of High-Fidelity Physics Simulation</h3>
<p>While EDA vendors focused heavily on automation and workflow integration, another theme emerged around the role of physics-based simulation: When engineers discuss 3D simulation at DesignCon, they often treat it as the gold standard for validating advanced designs.</p>
<p>Many signal integrity (SI) and power integrity (PI) workflows rely on layout-based extraction, transmission-line models, and 2D or 2.5D field-solving approaches that are highly effective for system-level analysis. However, emerging packaging and interconnect challenges can involve geometric and material details that require full 3D multiphysics modeling, when contact, thermal coupling, or packaging complexity break the assumptions of simplified approaches.</p>
<p>For many engineers in the SI/PI community, detailed 3D simulation is not part of their daily workflow. As a result, there is a growing demand for high-accuracy physics results that can validate designs developed in system-level tools. Finite-element-method (FEM)-based multiphysics modeling software such as COMSOL&nbsp;Multiphysics<sup>&reg;</sup> can complement SI, PI, and EDA workflows by resolving detailed 3D effects, coupling electromagnetics with thermal and structural phenomena, and providing high-fidelity reference results for design validation.</p>
<h3>AI Agents and the Future of Engineering Workflows</h3>
<p>One of the more notable developments at the conference was the growing use of AI agents within engineering software. A keynote presentation on agentic AI for chip design, delivered by Mark Ren of Agentrys, explored how AI systems may eventually assist engineers in navigating complex design spaces, generating candidate solutions, and automating parts of the validation process.</p>
<p>In these emerging workflows, high-fidelity simulation plays an important role as a source of reliable data. Detailed physics models can serve as the reference point for training machine-learning-based surrogate models. In that sense, simulation results may become the benchmark used to validate AI-generated designs.</p>
<p>This relationship between simulation and AI reflects a broader shift in engineering practice. Rather than replacing traditional modeling approaches, AI tools appear to be augmenting them. Automated design exploration, surrogate models, and optimization algorithms can help accelerate development, but these technologies still depend on accurate physical models for verification.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/agentrys-keynote.jpg" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Mark&#x20;Ren,&#x20;founder&#x20;of&#x20;Agentrys,&#x20;stands&#x20;on&#x20;a&#x20;dark&#x20;stage&#x20;giving&#x20;a&#x20;presentation&#x20;about&#x20;agentic&#x20;AI&#x20;for&#x20;chip&#x20;design."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;agentrys-keynote.jpg" alt="Mark&#x20;Ren,&#x20;founder&#x20;of&#x20;Agentrys,&#x20;stands&#x20;on&#x20;a&#x20;dark&#x20;stage&#x20;giving&#x20;a&#x20;presentation&#x20;about&#x20;agentic&#x20;AI&#x20;for&#x20;chip&#x20;design." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Agentrys founder Mark Ren gave a keynote talk about how AI is beginning to automate and improve hardware design workflows.</em></p>
<h3>Converging Approaches in Hardware Design</h3>
<p>DesignCon 2026 offered a snapshot of how these trends are beginning to converge. The event remains deeply rooted in signal integrity and power integrity, but the challenges facing these disciplines are increasingly interdisciplinary. Electrical design, materials science, thermal analysis, and system architecture are now tightly connected.</p>
<p>For engineers working in these fields, conferences like DesignCon provide an opportunity to see how different pieces of the hardware ecosystem are evolving together. Judging by the conversations this year, the integration of AI-driven design workflows with high-fidelity physics simulation will likely play an important role in shaping the next generation of electronic systems.</p>
<h3>Learn More</h3>
<p>For more information about how COMSOL&nbsp;Multiphysics<sup>&reg;</sup> supports this ecosystem, check out this upcoming <a href="/events/webinar/ai-assisted-simulation-and-agentic-workflows-137142">webinar</a> about AI-assisted simulation workflows.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/engineering-at-the-limits-of-speed-and-scale-the-state-of-hardware-design/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modeling the Beautiful Game: From Ball Design to Power Trivelas</title>
		<link>https://www.comsol.com/blogs/modeling-the-beautiful-game-from-ball-design-to-power-trivelas</link>
					<comments>https://www.comsol.com/blogs/modeling-the-beautiful-game-from-ball-design-to-power-trivelas#respond</comments>
		
		<dc:creator><![CDATA[Ed Fontes]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 17:01:58 +0000</pubDate>
				<category><![CDATA[Computational Fluid Dynamics (CFD)]]></category>
		<category><![CDATA[Fluid & Heat]]></category>
		<category><![CDATA[Structural & Acoustics]]></category>
		<category><![CDATA[Structural Dynamics]]></category>
		<category><![CDATA[Structural Mechanics]]></category>
		<category><![CDATA[Physics of Sports]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=499761</guid>

					<description><![CDATA[Let's explore the aerodynamics of the 2026 FIFA World Cup<sup>®</sup> ball, the Adidas Trionda<sup>®</sup>, and the trivela technique.]]></description>
										<content:encoded><![CDATA[<p>In previous blog posts, I have written about my fascination with association football (&#8220;soccer&#8221;), in particular, the challenge of striking the ball with the outside of the foot, a technique known as a <em>trivela</em>, and the creation of its characteristic curved trajectory due to the Magnus effect. Players such as Nelinho, Éder, and Roberto Carlos turned this technique into an art form, sometimes referred to as &#8220;the power trivela&#8221;. I have also explored how the design of the official match balls for the FIFA World Cup<sup>®</sup> and UEFA<sup>®</sup> European Championship (&#8220;the Euro&#8221;) influences their aerodynamic behavior.</p>
<p>Ahead of this year’s World Cup, I found myself thinking more broadly about the role of modeling and simulation in the game. It&#8217;s not just the physics of the ball that can be analyzed; among other things, the interaction between the foot and the ball can be modeled and simulated, as well as the motion sensors that are now embedded in the ball and the vests players wear under their jerseys.</p>
<p>In this blog post, I&#8217;ll take a closer look at the 2026 match ball, the Adidas Trionda<sup>®</sup>, its aerodynamics, and the dynamics of the impact between the foot and the ball and share some simulations that have me excited to watch for power trivelas in this year&#8217;s matches.</p>
<p><span id="more-499761"></span></p>
<h3>Official Match Ball Aerodynamics</h3>
<p>Controversy surrounding the World Cup match ball has largely disappeared since the Adidas Jabulani<sup>®</sup> was used at the 2010 World Cup in South Africa. In comparison to the Jabulani, the Brazuca<sup>®</sup> (2014), Telstar<sup>®</sup> 18 (2018), and Al Rihla<sup>®</sup> (2022) all have more similar aerodynamic properties (Ref. 1). If you look at the drag coefficients for the five most recent World Cup balls, including this year&#8217;s Trionda, you can see why the Jabulani was controversial.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/drag-coefficient-graph.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;graph&#x20;of&#x20;the&#x20;drag&#x20;coefficient&#x20;curves&#x20;of&#x20;the&#x20;five&#x20;latest&#x20;World&#x20;Cup&#x20;balls,&#x20;with&#x20;drag&#x20;coefficient&#x20;on&#x20;the&#x20;y-axis&#x20;and&#x20;ball&#x20;speed&#x20;on&#x20;the&#x20;x-axis."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;drag-coefficient-graph.png" alt="A&#x20;graph&#x20;of&#x20;the&#x20;drag&#x20;coefficient&#x20;curves&#x20;of&#x20;the&#x20;five&#x20;latest&#x20;World&#x20;Cup&#x20;balls,&#x20;with&#x20;drag&#x20;coefficient&#x20;on&#x20;the&#x20;y-axis&#x20;and&#x20;ball&#x20;speed&#x20;on&#x20;the&#x20;x-axis." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 1. A schematic of the drag coefficient curves of the five latest World Cup balls as measured experimentally in a wind tunnel in one of two non-spinning orientations (orientation A from Ref. 1).</em></cmimg></p>
<p>As I&#8217;ve mentioned in previous blog posts, if you hit the Jabulani really hard with the outside (i.e., the pinky-toe side) of the boot (or &#8220;cleat&#8221; if you&#8217;re American) in a high-power trivela, the ball accelerates quickly and the boundary layer transitions to turbulent flow. In this regime, the separation points on the two sides of the spinning ball become more symmetric. Since the Magnus effect relies on an asymmetry in the flow and in the separation of the boundary layer, the influence of the spin is reduced at high speeds. The ball therefore travels almost in a straight line, despite the spin.</p>
<p>As the ball slows down and the Reynolds number decreases, the boundary layer gradually transitions from turbulent to laminar flow and the separation points shift. At this point, the asymmetry caused by the spin becomes much more pronounced, and the ball&#8217;s trajectory starts to curve sharply. In the case of the Jabulani, this transition, known as the drag crisis, occurs at relatively high speeds, as indicated by the green curve in Figure 1. This means that the curve can appear both late in the trajectory and at high speed, which makes it difficult for goalkeepers to predict.</p>
<p>Even more challenging to anticipate is a shot with little or no spin: at high speeds, the ball can wobble like a beach ball, as seen in Diego Forlán’s unforgettable free-kick goal against Ghana in the 2010 World Cup with the Jabulani.</p>
<p>The latest World Cup balls are more stable, retaining a turbulent boundary layer even at lower speeds. This behavior shifts the low drag region further into the low speed regime. As a result, these balls do not decelerate as quickly as the Jabulani, exhibiting a more predictable trajectory. In Figure 1, you can see that the Trionda retains a turbulent boundary layer down to very low speeds.</p>
<p>Ahead of the Euro 2024, I wrote <a href="/blogs/modeling-the-official-euro-2024-match-ball">a blog post</a> about the tournament&#8217;s official match ball, the Fussballliebe<sup>®</sup>. The Fussballliebe is generally considered a refinement of the Al Rihla, with a focus on improved surface grip and consistency rather than maximum top speed. Simulation results I shared in that post comparing the Fussballliebe with the Telstar 18 suggest that the Fussballliebe, like the Al Rihla and the Trionda, also remains in the low-drag turbulent regime down to relatively low speeds.</p>
<p>It will therefore be interesting to investigate how the aerodynamics of the Trionda compare to the experimental results in Figure 1 and with our previous simulations of the Telstar 18 and Fussballliebe.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/Adidas-Trionda-Ball.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;image&#x20;of&#x20;the&#x20;Adidas&#x20;Trionda&#x20;ball&#x20;in&#x20;COMSOL&#x20;Multiphysics&#x20;with&#x20;its&#x20;grooves&#x20;and&#x20;fuse-welded&#x20;seams&#x20;highlighted."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;Adidas-Trionda-Ball.png" alt="A&#x20;model&#x20;image&#x20;of&#x20;the&#x20;Adidas&#x20;Trionda&#x20;ball&#x20;in&#x20;COMSOL&#x20;Multiphysics&#x20;with&#x20;its&#x20;grooves&#x20;and&#x20;fuse-welded&#x20;seams&#x20;highlighted." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 2. The Adidas Trionda as modeled in COMSOL Multiphysics<sup>®</sup>. </em></cmimg></p>
<h3>The New Adidas Trionda Ball</h3>
<p>The Trionda consists of only four fuse-welded panels (compared to 20 for the Al Rihla and six for the Jabulani). The total seam length is about 2.6 m, which is relatively small compared to 3.5 m for the Al Rihla and 4.3 m for the Fussballliebe. The controversial Jabulani, meanwhile, had a seam length of about 2.0 m, which might suggest that the Trionda would behave similarly. However, the Trionda features deeper grooves and ridges that effectively increase the aerodynamic roughness. In addition, the surfaces between the grooves contain small protrusions in shapes representing the three host nations of the 2026 FIFA World Cup: five-pointed stars for the U.S., maple leaves for Canada, and golden eagles for Mexico. The surface texture and grip are similar to those of the Fussballliebe, which likely reflects similar aerodynamic behavior between the two.</p>
<p>This interpretation is consistent with the experimental data in Figure 1. The Trionda has a higher drag coefficient at high speeds than the earlier World Cup balls.</p>
<blockquote><p><strong>What&#8217;s in a name?</strong> &#8220;Trionda&#8221; refers to the three host nations, where <em>tri</em>&#8211; denotes &#8220;three&#8221; and &#8211;<em>onda</em> means &#8220;wave&#8221;, suggesting waves of energy. The number three is reflected throughout the design, as you can see in Figure 3. Each panel consists of a roughly triangular central shape — where a wavy three-pointed star is debossed — from which three arms extend, each with three debossed Adidas stripes. As if this were not enough, the trivela is also known as <em>tres dedos</em> in Spanish and Portuguese, referring to the three outer toes of the foot.</p></blockquote>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/Four-Panel-Geometry.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;geometry&#x20;of&#x20;one&#x20;of&#x20;the&#x20;four&#x20;panels&#x20;of&#x20;the&#x20;Trionda&#x20;ball."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;Four-Panel-Geometry.png" alt="The&#x20;geometry&#x20;of&#x20;one&#x20;of&#x20;the&#x20;four&#x20;panels&#x20;of&#x20;the&#x20;Trionda&#x20;ball." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 3. The geometry of one of the four panels that, when fuse-welded together, form the ball.</em></cmimg></p>
<p>In the model of the Trionda that my colleagues and I built, the seams and grooves are explicitly represented using the built-in geometry tools in COMSOL Multiphysics<sup>®</sup>. The star-, maple-leaf-, and eagle-shaped protrusions, in contrast, are modeled as surface roughness and are not explicitly included in the geometry in the Reynolds-averaged Navier–Stokes (RANS) models. They are not accounted for at all in the large eddy simulation (LES) models.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/flow-velocity.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;image&#x20;of&#x20;the&#x20;flow&#x20;velocity&#x20;relative&#x20;to&#x20;the&#x20;ball,&#x20;with&#x20;the&#x20;ball&#x20;on&#x20;the&#x20;left&#x20;and&#x20;its&#x20;wake&#x20;shown&#x20;in&#x20;blue&#x20;on&#x20;the&#x20;right."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;flow-velocity.png" alt="A&#x20;model&#x20;image&#x20;of&#x20;the&#x20;flow&#x20;velocity&#x20;relative&#x20;to&#x20;the&#x20;ball,&#x20;with&#x20;the&#x20;ball&#x20;on&#x20;the&#x20;left&#x20;and&#x20;its&#x20;wake&#x20;shown&#x20;in&#x20;blue&#x20;on&#x20;the&#x20;right." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 4. Flow velocity relative to the ball plotted as isosurfaces.</em></cmimg></p>
<p>The measured drag coefficient for the Trionda is higher than the Al Rihla at high velocities, but the drag crisis occurs at substantially lower velocities. This means that the drag coefficient for the Trionda is substantially lower than that of the Al Rihla at low velocities. This is similar to the Fussballliebe, which, as I shared in <a href="/blogs/modeling-the-official-euro-2024-match-ball">my previous blog post</a>, shows a substantially lower drag coefficient than the Telstar 18 at low velocities. (We never modeled the Al Rihla.)</p>
<p>Figure 4 shows the velocity isosurfaces for the Trionda obtained using LES. We can see that the separation line around the ball occurs relatively early downstream of the vertical equator, just as in the Fussballliebe simulations from 2024. In comparison, the <a href="/blogs/modeling-the-official-euro-2024-match-ball">simulations for the Telstar 18</a> show a later detachment. Figures 5a and 5b show animations of the wakes behind the Trionda and the Fussballliebe, showing similar behavior. The drag coefficient of the Trionda at 20 m/s, computed using LES, is 0.17, which is in good agreement with the experimental values for the second simulated ball orientation (orientation B), which are slightly below 0.2 (Ref. 1).</p>
<p>This drag coefficient is slightly lower than the value for the Fussballliebe, which is 0.19 (LES). However, the Trionda features larger surface protrusions than the Fussballliebe, which likely increases the drag coefficient. When the surface roughness is accounted for, we estimate a drag coefficient closer to 0.22, which is similar to the Fussballliebe (0.21) when surface roughness is included using RANS-based models.</p>
<div class="row">
<div class="col-sm-6">
<div style="max-width: 360px;">
<script src="https://fast.wistia.com/player.js" async></script><script src="https://fast.wistia.com/embed/v84lz5op27.js" async type="module"></script>
<style>wistia-player[media-id='v84lz5op27']:not(:defined) { background: center / contain no-repeat url('https://fast.wistia.com/embed/medias/v84lz5op27/swatch'); display: block; filter: blur(5px); padding-top:75.0%; }</style>
<p>&nbsp;</p>
</div>
</div>
<div class="col-sm-6">
<div style="max-width: 360px;">
<script src="https://fast.wistia.com/player.js" async></script><script src="https://fast.wistia.com/embed/kjme0ly1wm.js" async type="module"></script>
<style>wistia-player[media-id='kjme0ly1wm']:not(:defined) { background: center / contain no-repeat url('https://fast.wistia.com/embed/medias/kjme0ly1wm/swatch'); display: block; filter: blur(5px); padding-top:75.0%; }</style>
<p>&nbsp;</p>
</div>
</div>
</div>
<p><em>Figures 5a and 5b. Animations of the wake for the Trionda (left) and the Fussballliebe (right).</em></p>
<p>The Euro 2024 saw a total of 19 goals scored from outside the penalty area. This was a record, with 16.2% of all goals from these long-range shots. This may have been influenced in part by the stability of the Fussballliebe as well as its low drag coefficient as the ball decelerates to low speeds. (The ball “stays hit”, <a href="https://www.nytimes.com/athletic/live-blogs/england-serbia-live-updates-euro-2024-score-result/z272lvCucqcb/SyTPmDzjB1iP/" target="blank">according to Harry Kane</a>.) Based on our simulations, I&#8217;d say we can safely hope for some outside-the-penalty-area screamers at the World Cup 2026, preferably from high-power trivelas!</p>
<h3>Hitting the Ball Right</h3>
<p>One of the biggest differences between modern match balls and the balls of the 1980s, 1990s, and early 2000s is the surface texture. The later versions of the traditional 32-panel balls typically have a relatively glossy surface, while balls like the Fussballliebe and Trionda feel noticeably rougher — but also more elastic.</p>
<p>The use of thermal bonding and advanced materials in modern balls results in a “bouncier” ball with higher energy retention after impact. The coefficient of restitution (CoR, a measure of “bounciness”) of modern Adidas balls is not publicly available, but estimates based on recent measurements (Ref. 2) suggest values just below 0.9 at an internal pressure of 1 bar. This relatively high CoR may also help explain Harry Kane’s remark that the Fussballliebe “stays hit”.</p>
<p>The rough surface of a modern ball also makes it feel easier to strike cleanly. But is this only a psychological effect? According to a modeling and experimental investigation by Ishii et al. (Ref. 3) on curved shots taken with the inside of the foot, the friction between the shoe upper and the ball has only a limited effect on the ball velocity and spin.</p>
<p>To investigate the bounciness of the Trionda and the dynamics of the foot–ball impact, we set up our own model using the new explicit dynamics functionality in COMSOL&nbsp;Multiphysics<sup>&reg;</sup>. We modeled the Adidas<sup>®</sup> F50 Elite Laceless shoe that&#8217;s used by many top players, including Lamine Yamal. This shoe provides excellent contact between the ball and the foot, not only for a pure instep shot but also for a power trivela, where the ankle is also fully locked (by tensing both the calf and shin muscles).</p>
<script src="https://fast.wistia.com/player.js" async></script><script src="https://fast.wistia.com/embed/68sq5b6l5s.js" async type="module"></script>
<style>wistia-player[media-id='68sq5b6l5s']:not(:defined) { background: center / contain no-repeat url('https://fast.wistia.com/embed/medias/68sq5b6l5s/swatch'); display: block; filter: blur(5px); padding-top:56.25%; }</style>
<p>&nbsp;</p>
<p><em>Figure 6. Animation of a high-power trivela performed with an Adidas F50 Elite Laceless shoe and the Adidas Trionda. In this simulation, the friction coefficient is 0.5.</em></p>
<p>Figure 6 shows an animation of the simulation results for a high-power trivela performed with a fully locked ankle on the Adidas Trionda. We can see substantial deformation of the ball during impact. This agrees qualitatively with the results reported by Ishii et al. (Ref. 3), as well as with <a href="https://www.youtube.com/watch?v=6Z3oJ9r42Rc" target="blank">high-speed recordings by QuinticConsultancy of an instep kick</a> perfomed on a ball from the Adidas Finale series, the official match balls for the UEFA Champions League. The animation also shows the angular velocity generated by the asymmetric impact, a clear signature of the famous curl.</p>
<p>The computed CoR at 1 bar is 0.85, which is close to the values reported for the Telstar 18 family (Ref. 2). Another recent match ball, the Uniforia<sup>®</sup> Pro used at the Euro 2020, is based on the same general construction.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/trionda-deformation.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;image&#x20;where&#x20;the&#x20;deformation&#x20;of&#x20;the&#x20;Trionda&#x20;ball&#x20;during&#x20;a&#x20;high-power&#x20;trivela&#x20;kick&#x20;is&#x20;plotted&#x20;using&#x20;a&#x20;red&#x20;to&#x20;blue&#x20;color&#x20;scale."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;trionda-deformation.png" alt="A&#x20;model&#x20;image&#x20;where&#x20;the&#x20;deformation&#x20;of&#x20;the&#x20;Trionda&#x20;ball&#x20;during&#x20;a&#x20;high-power&#x20;trivela&#x20;kick&#x20;is&#x20;plotted&#x20;using&#x20;a&#x20;red&#x20;to&#x20;blue&#x20;color&#x20;scale." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 7. Deformation of the Trionda during a high-power trivela, 5.5 ms after contact for a friction coefficient of 0.5.</em></cmimg></p>
<p>Figure 7 shows the deformation of the Trionda 5.5 ms after being hit with a real thunderbolt of a shot, in the range of Roberto Carlos, or Federico Valverde, to mention <a href="https://www.youtube.com/shorts/2qL9lEbgLnY" target="blank">one current player with a whip for a shooting leg</a>.</p>
<script src="https://fast.wistia.com/player.js" async></script><script src="https://fast.wistia.com/embed/jgnqd0d0bs.js" async type="module"></script>
<style>wistia-player[media-id='jgnqd0d0bs']:not(:defined) { background: center / contain no-repeat url('https://fast.wistia.com/embed/medias/jgnqd0d0bs/swatch'); display: block; filter: blur(5px); padding-top:56.25%; }</style>
<p>&nbsp;</p>
<p><em>Figure 8. Trivela with the same scenario as in Figure 6, but here with a friction coefficient of zero.</em></p>
<p>What about the friction coefficient between the ball and the foot? It turns out that it does have an effect for a trivela. The animation in Figure 8 shows the same shot scenario as in Figure 6, but now without friction. You can see that the ball slips away from the foot with very little curl.</p>
<p>Unlike the curved shots with the inside of the boot studied by Ishii et al. (Ref. 3), the trivela involves a strongly asymmetric and sliced impact, where the foot strikes the ball in a direction that does not pass through the center of the ball. In this case, the friction between the foot and the ball becomes much more important.</p>
<p>Figure 9 shows the ball velocity just before, during, and after impact for three different values of the friction coefficient. The exit velocity decreases as the friction coefficient is reduced, from about 34 m/s in the baseline case to approximately 24 m/s in the frictionless case.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/06/ball-velocity-graph.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;graph&#x20;of&#x20;ball&#x20;velocity&#x20;for&#x20;three&#x20;different&#x20;values&#x20;of&#x20;friction&#x20;coefficient&#x20;with&#x20;time&#x20;on&#x20;the&#x20;x-axis&#x20;and&#x20;ball&#x20;velocity&#x20;on&#x20;the&#x20;y-axis."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;06&#x2F;ball-velocity-graph.png" alt="A&#x20;graph&#x20;of&#x20;ball&#x20;velocity&#x20;for&#x20;three&#x20;different&#x20;values&#x20;of&#x20;friction&#x20;coefficient&#x20;with&#x20;time&#x20;on&#x20;the&#x20;x-axis&#x20;and&#x20;ball&#x20;velocity&#x20;on&#x20;the&#x20;y-axis." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 9. Ball velocity for three different values of the friction coefficients.</em></cmimg></p>
<p>In our simulations, we assumed a perfect strike on a stationary ball. In a real game situation, where the ball is often already moving, the friction coefficient becomes even more important. This is one reason why modern football boots often feature carefully engineered contact zones designed to improve the interaction between the foot and the ball.</p>
<h3>Looking Forward to the World Cup</h3>
<p>In this post, we&#8217;ve taken a deep dive into the aerodynamics of official match balls and the interaction between the foot and the ball during high-power shots. This is a nice, although perhaps slightly nerdy, preparation for the 2026 World Cup. But we have not nerded out enough.</p>
<p>In my next blog post (coming soon!), I will discuss the sensors embedded in the ball and in the players&#8217; vests. I will also look at the acoustics of football stadiums, which are crucial for the atmosphere during the matches.</p>
<h3>For the Love of the Game (Only!)</h3>
<p>Although the models and simulations presented here are state-of-the-art, they were created just for fun. A serious scientific study would investigate the involved parameters in much greater detail, and the simulation results would need to be validated using experimental measurements.</p>
<p>These investigations were performed independently of Adidas, and we do not claim any cooperation with Adidas.</p>
<h3>References</h3>
<ol>
<li>J. E. Goff et al., &#8220;Trionda: Enhanced Surface Roughness Relative to Previous FIFA World Cup Match Balls,&#8221; <em>Applied Sciences</em>, vol.16, no. 6, start p. 2808, 2026; <a href="https://www.mdpi.com/2076-3417/16/6/2808" target="blank">https://doi.org/10.3390/app1606280808</a>.</li>
<li>A. Tunçel, N. Özgören, and S. Aritan, &#8220;Comparison of Collision Dynamics of Soccer Balls with Energy Dissipation Method,&#8221; <em>Proceedings of the Institution of Mechanical Engineers, Part P: Journal of Sports Engineering and Technology</em>, vol. 240, advance online publication 2024; <a href="https://doi.org/10.1177/17543371241237589" target="blank">https://doi.org/10.1177/17543371241237589</a>.</li>
<li>H. Ishii, Y. Sakurai, and T. Maruyama, &#8220;Effect of Soccer Shoe Upper on Ball Behaviour in Curve Kicks,&#8221; <em>Scientific Reports</em>, vol. 4, no. 1, start p. 6067, 2014; <a href="https://doi.org/10.1038/srep06067" target="blank">https://doi.org/10.1038/srep06067</a>.</li>
</ol>
<hr />
<p><em><small>Adidas, Al Rihla, Brazuca, Fussballliebe, and Trionda are registered trademarks of adidas AG. Jabulani, and Telstar are registered trademarks of adidas International Marketing B.V.</p>
<p>FIFA World Cup is a registered trademark of the Fédération Internationale de Football Association.</p>
<p>UEFA is a registered trademark of the Union of European Football Associations.</p>
<p>COMSOL AB and its subsidiaries and products are not affiliated with, endorsed, by, sponsored by, or supported by any of the foregoing trademark owners.</em></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/modeling-the-beautiful-game-from-ball-design-to-power-trivelas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Part 2: Combining CAD Geometry with Meshes in COMSOL Multiphysics®</title>
		<link>https://www.comsol.com/blogs/part-2-combining-cad-geometry-with-meshes-in-comsolmph</link>
					<comments>https://www.comsol.com/blogs/part-2-combining-cad-geometry-with-meshes-in-comsolmph#respond</comments>
		
		<dc:creator><![CDATA[Hanna Gothäll]]></dc:creator>
		<pubDate>Fri, 29 May 2026 19:58:59 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Geometry]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Technical Content]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=499361</guid>

					<description><![CDATA[Learn how to import STL files originating from 3D scan sources and meshes in the NASTRAN<sup>®</sup> file format, as well as how to prepare them for analysis in {:comsolmph}.]]></description>
										<content:encoded><![CDATA[<p>Surface meshes and volume meshes can be used as bases for computational domains in the COMSOL&nbsp;Multiphysics<sup>&reg;</sup> software. In <a href="/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics">Part 1</a> of this two-part blog series, I discussed how to repair and edit an imported STL surface mesh, using an example of a human skull mesh to demonstrate. In this second part, I will walk you through the process of combining that same mesh with an imported CAD assembly. You can download the <a href="/model/149221">model file</a> to follow along. (Note that using this file requires a license for the CAD Import Module, the Design Module, or any of the LiveLink&trade; products for interfacing with CAD programs.) </p>
<p><span id="more-499361"></span></p>
<p><strong>Table of Contents</strong></p>
<ol>
<li><a href="#steps-to-combine-cad">Steps to Combine CAD with Meshes</a></li>
<li><a href="#demonstrating-with-skull-mesh">Demonstrating with a Human Skull Mesh</a></li>
<ol style="list-style: lower-alpha;">
<li><a href="#importing-and-editing-the-stl">Importing and Editing the STL Mesh in a Mesh Part</a></li>
<li><a href="#importing-cad-or-creating-geometry">Importing CAD or Creating a Geometry</a></li>
<li><a href="#cleaning-up-the-cad">Cleaning Up the CAD</a></li>
<li><a href="#importing-to-mesh-based-geometry">Importing to the Mesh-Based Geometry</a></li>
<li><a href="#combining-the-mesh">Combining the Mesh with CAD</a></li>
<li><a href="#joining-domains-and-setting-up-selections">Joining Domains and Setting Up Selections</a></li>
<li> <a href="#generating-a-computational-mesh">Generating a Computational Mesh</a></li>
</ol>
</ol>
<p>A mesh can take multiple forms. For example, it may be generated in the COMSOL&nbsp;Multiphysics<sup>&reg;</sup> software or it may be imported from file. The software can also export topology optimization results as a mesh that can be used for verification studies or combined with other meshes or CAD for further simulations.</p>
<blockquote><p> Note: The word &#8220;CAD&#8221; will be used in this blog post to mean either a:</p>
<ul>
<li>Geometry drawn in COMSOL&nbsp;Multiphysics<sup>&reg;</sup> using the Design Module</li>
<li>CAD part or CAD assembly imported using the CAD Import Module or synced via one of LiveLink&trade; products</li>
</ul>
<p>A list of supported CAD file formats can be found <a href="/cad-import-module">here</a>.
</p></blockquote>
<p>A mesh can also be a computational mesh that has been prepared for simulation in another software program. Or, as in the example I&#8217;m using for this series, it can be a surface mesh for a medical application imported in the STL format, which is a format used for sharing this type of data.</p>
<p>In some cases, you want to add to the modeling domains described by the mesh, for example, to model the effect of an <a href="/model/stl-import-tutorial-series-30951">implant added to the mesh of vertebrae</a> or by adding surrounding domains for modeling the <a href="/model/rf-implant-heating-in-mri-139201">RF implant heating during MRI</a>. In these cases, you will need to combine the mesh with the CAD describing the external parts by uniting them in a <em>Mesh-Based Geometry</em> sequence in the software. Compared to an imported mesh, which has a linear or second-order representation of a curved boundary, the representation of the surfaces are exact in CAD. Going over to a mesh-based representation of the CAD means losing the exact shape of the surfaces, but the software still uses a curved representation of the surfaces when placing new mesh vertices or higher-order nodes.</p>
<h3 id="steps-to-combine-cad">Steps to Combine CAD with Meshes</h3>
<p>Use a <em>Mesh Part</em> sequence to import the mesh. In addition to organizing the work, moving the editing and repair to a part sequence also makes it possible to use the mesh for multiple purposes, as I will describe later in this post. The CAD assembly is imported into the <em>Geometry</em> sequence of the <em>Component</em>, and this is where all the modifications and cleanup of the CAD takes place to prepare it for being combined with the mesh.</p>
<p>The step of combining them will then be done in a <em>Mesh-Based Geometry</em> sequence. The physics will be defined on the domains and boundaries described by the <em>Mesh-Based Geometry</em> sequence. The computational mesh will also be generated for the <em>Mesh-Based Geometry</em> sequence and is built after all editing is done.</p>
<p>To summarize, the procedure for combining a mesh with CAD consists of the following steps:</p>
<ol>
<li>Import the mesh and repair it, if needed, to make it watertight.</li>
<li>Import a CAD file or create a geometry in COMSOL&nbsp;Multiphysics<sup>&reg;</sup>.</li>
<li>Perform cleanup of the geometry.</li>
<li>Add a <em>Mesh-Based Geometry</em> sequence, and import the CAD and mesh.</li>
<li>Combine the mesh and the geometry to resolve any intersecting elements.</li>
<li>Review the domains and create selections.</li>
<li>Generate a mesh for simulation.</li>
</ol>
<h3 id="demonstrating-with-skull-mesh">Demonstrating with a Human Skull Mesh</h3>
<p>To show the details of each step, I will use the imported STL mesh of a part of the upper jaw from <a href="/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics">Part 1</a> of this series and the CAD of a dental implant.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/mesh-cad-combination-steps.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Five&#x20;model&#x20;images&#x20;of&#x20;a&#x20;light-yellow&#x20;jawbone&#x20;and&#x20;a&#x20;gray&#x20;dental&#x20;implant&#x20;arranged&#x20;in&#x20;a&#x20;series&#x20;to&#x20;represent&#x20;the&#x20;different&#x20;steps&#x20;of&#x20;combining&#x20;a&#x20;mesh&#x20;with&#x20;CAD."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;mesh-cad-combination-steps.png" alt="Five&#x20;model&#x20;images&#x20;of&#x20;a&#x20;light-yellow&#x20;jawbone&#x20;and&#x20;a&#x20;gray&#x20;dental&#x20;implant&#x20;arranged&#x20;in&#x20;a&#x20;series&#x20;to&#x20;represent&#x20;the&#x20;different&#x20;steps&#x20;of&#x20;combining&#x20;a&#x20;mesh&#x20;with&#x20;CAD." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>The steps performed in an example of a dental implant.</em></p>
<h4 id="importing-and-editing-the-stl">Importing and Editing the STL Mesh in a Mesh Part</h4>
<p>In <a href="/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics">Part 1: Editing and Repairing Surface Meshes in COMSOL&nbsp;Multiphysics<sup>&reg;</sup></a>, I demonstrated how to edit the STL mesh of a human skull (Ref. 1) in a <em>Mesh-Based Geometry</em> sequence. Here, I&#8217;ll instead import the mesh directly into a 3D <em>Mesh Part</em> sequence and edit it using the same operations I used in Part 1. Moving the operations to the <em>Mesh Part</em> sequence allows me to better organize the model now that I am also going to import CAD; i.e., I can edit and reference the <em>Mesh Part</em> sequence throughout my model. Additionally, having the mesh available in a <em>Mesh Part</em> facilitates importing it as construction geometry to help with the positioning of the CAD relative to the mesh, as I&#8217;ll demonstrate in the next section.</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/original-stl.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;light-yellow&#x20;STL&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;skull&#x20;facing&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;right.&#x20;Two&#x20;blue&#x20;planes&#x20;cut&#x20;vertically&#x20;across&#x20;the&#x20;eye&#x20;and&#x20;jaw&#x20;of&#x20;the&#x20;model&#x20;to&#x20;section&#x20;out&#x20;the&#x20;jawbone."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;original-stl.png" alt="A&#x20;light-yellow&#x20;STL&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;skull&#x20;facing&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;right.&#x20;Two&#x20;blue&#x20;planes&#x20;cut&#x20;vertically&#x20;across&#x20;the&#x20;eye&#x20;and&#x20;jaw&#x20;of&#x20;the&#x20;model&#x20;to&#x20;section&#x20;out&#x20;the&#x20;jawbone." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/jawbone-mesh.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;light-yellow&#x20;mesh&#x20;of&#x20;the&#x20;upper&#x20;part&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;gray&#x20;teeth&#x20;and&#x20;a&#x20;space&#x20;between&#x20;the&#x20;two&#x20;where&#x20;a&#x20;tooth&#x20;is&#x20;missing,&#x20;with&#x20;the&#x20;jaw&#x20;cavity&#x20;smoothed&#x20;over."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;jawbone-mesh.png" alt="A&#x20;light-yellow&#x20;mesh&#x20;of&#x20;the&#x20;upper&#x20;part&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;gray&#x20;teeth&#x20;and&#x20;a&#x20;space&#x20;between&#x20;the&#x20;two&#x20;where&#x20;a&#x20;tooth&#x20;is&#x20;missing,&#x20;with&#x20;the&#x20;jaw&#x20;cavity&#x20;smoothed&#x20;over." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>Original STL mesh: Planes are used to cut out the part of the upper jaw where a tooth is missing (left). The mesh in the </em>Mesh Part<em> sequence after all of the editing has been done (right).</em></p>
<h4 id="importing-cad-or-creating-geometry">Importing CAD or Creating a Geometry</h4>
<p>Next, I&#8217;ll import a STEP file containing a CAD assembly of a dental implant with colors assigned to the solid parts and some of the surfaces. The assembly contains four parts: the implant (outer part with threads), screw (attaching to the inner threads of the implant), crown (white), and abutment (attaching the crown to the implant).</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/dental-implant.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;a&#x20;gray&#x20;screw&#x20;and&#x20;a&#x20;white&#x20;crown&#x20;resembling&#x20;a&#x20;molar."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;dental-implant.png" alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;a&#x20;gray&#x20;screw&#x20;and&#x20;a&#x20;white&#x20;crown&#x20;resembling&#x20;a&#x20;molar." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/dental-cross-section.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross-section&#x20;view&#x20;of&#x20;a&#x20;dental&#x20;implant,&#x20;with&#x20;a&#x20;white&#x20;crown&#x20;connected&#x20;by&#x20;a&#x20;blue&#x20;abutment&#x20;to&#x20;a&#x20;dark&#x20;gray&#x20;screw&#x20;and&#x20;the&#x20;gray&#x20;outer&#x20;section&#x20;of&#x20;implant."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;dental-cross-section.png" alt="A&#x20;cross-section&#x20;view&#x20;of&#x20;a&#x20;dental&#x20;implant,&#x20;with&#x20;a&#x20;white&#x20;crown&#x20;connected&#x20;by&#x20;a&#x20;blue&#x20;abutment&#x20;to&#x20;a&#x20;dark&#x20;gray&#x20;screw&#x20;and&#x20;the&#x20;gray&#x20;outer&#x20;section&#x20;of&#x20;implant." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>The dental implant used in this example (left). A cross-section view of the implant showing the four parts (right).</em></p>
<p>When positioning the imported CAD properly with respect to the mesh, or if you are drawing a geometry, it helps to import the mesh from the <em>Mesh Part</em> as construction geometry. To do so, add an <em>Import</em> operation to the <em>Geometry</em> sequence and select the <em>Construction geometry</em> checkbox in the settings. Then, the objects created from the mesh will only serve as temporary tool objects and will not be part of the final geometry. A construction object is rendered with dashed edges, as seen in the following images. Use a <em>Rigid Transform</em> operation to move and rotate the dental implant.</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/dental-implant-in-geometry.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;dental&#x20;implant&#x20;&#x28;white&#x20;and&#x20;pink&#x29;&#x20;positioned&#x20;to&#x20;sit&#x20;inside&#x20;of&#x20;a&#x20;transparent&#x20;grey&#x20;model&#x20;geometry&#x20;of&#x20;an&#x20;upper&#x20;jawbone."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;dental-implant-in-geometry.png" alt="A&#x20;dental&#x20;implant&#x20;&#x28;white&#x20;and&#x20;pink&#x29;&#x20;positioned&#x20;to&#x20;sit&#x20;inside&#x20;of&#x20;a&#x20;transparent&#x20;grey&#x20;model&#x20;geometry&#x20;of&#x20;an&#x20;upper&#x20;jawbone." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/dental-implant-side-view.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;embedded&#x20;inside&#x20;a&#x20;transparent&#x20;grey&#x20;upper&#x20;jawbone&#x20;allowing&#x20;the&#x20;viewer&#x20;to&#x20;see&#x20;the&#x20;other&#x20;teeth&#x20;and&#x20;the&#x20;screw&#x20;section&#x20;of&#x20;the&#x20;implant."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;dental-implant-side-view.png" alt="A&#x20;model&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;embedded&#x20;inside&#x20;a&#x20;transparent&#x20;grey&#x20;upper&#x20;jawbone&#x20;allowing&#x20;the&#x20;viewer&#x20;to&#x20;see&#x20;the&#x20;other&#x20;teeth&#x20;and&#x20;the&#x20;screw&#x20;section&#x20;of&#x20;the&#x20;implant." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>Dental implant (white and pink) positioned relative to the construction geometry, seen from below (left). Seen from the side (right).</em> </p>
<h4 id="cleaning-up-the-cad">Cleaning Up the CAD</h4>
<p>Once the <em>Form Union</em> operation has been built, the construction geometry is automatically removed and you are left with only the implant. When you leave the <em>Geometry</em> sequence, an analysis of the geometry is performed automatically to make sure the CAD doesn&#8217;t contain small details, gaps, or overlaps between parts that would cause unnecessary refinement of the mesh. If the geometry contains such small details, a <em>Geometry Cleanup</em> dialog with appear, giving you options to clean up the geometry automatically or by using the wizard. </p>
<p>In this example, when I move on from the <em>Geometry</em> sequence to add materials, clicking the <em>Materials</em> node will trigger the <em>Geometry Cleanup</em> dialog because the geometry includes some acute angles on the boundaries of the threads as well as some small faces. I&#8217;ll choose the <em>Clean Up Automatically</em> option from the dialog to remove them from the geometry. Next, I&#8217;ll also add a <em>Form Composite Faces</em> operation to the <em>Geometry</em> sequence to achieve a suitable face partitioning for the crown. Now, the geometry is ready to be combined with the mesh.</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/dental-implant-faces.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;CAD&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;the&#x20;crown&#x20;highlighted&#x20;in&#x20;blue."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;dental-implant-faces.png" alt="A&#x20;CAD&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;the&#x20;crown&#x20;highlighted&#x20;in&#x20;blue." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/dental-implant-cleaned.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cleaned&#x20;CAD&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;a&#x20;white&#x20;crown&#x20;and&#x20;gray&#x20;threads&#x20;that&#x20;is&#x20;ready&#x20;to&#x20;import&#x20;to&#x20;a&#x20;mesh."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;dental-implant-cleaned.png" alt="A&#x20;cleaned&#x20;CAD&#x20;image&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;a&#x20;white&#x20;crown&#x20;and&#x20;gray&#x20;threads&#x20;that&#x20;is&#x20;ready&#x20;to&#x20;import&#x20;to&#x20;a&#x20;mesh." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>Selected crown faces (blue) added to the </em>Form Composite Faces<em> operation (left). The cleaned-up CAD, ready to be joined with the mesh (right).</em></p>
<h4 id="importing-to-mesh-based-geometry">Importing to the Mesh-Based Geometry</h4>
<p>Add a <em>Mesh-Based Geometry</em> node by right-clicking the <em>Component</em> node and selecting the option from the list. The sequence will already contain an <em>Import</em> node that imports a meshed version of the implant. Add another <em>Import</em> node to import the mesh of the teeth and bone directly from the <em>Mesh Part</em>.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/mesh-part-geometry.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;grey&#x20;teeth&#x20;and&#x20;a&#x20;mesh&#x20;of&#x20;a&#x20;light&#x20;grey&#x20;dental&#x20;implant&#x20;in&#x20;between&#x20;the&#x20;two&#x20;teeth."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;mesh-part-geometry.png" alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;grey&#x20;teeth&#x20;and&#x20;a&#x20;mesh&#x20;of&#x20;a&#x20;light&#x20;grey&#x20;dental&#x20;implant&#x20;in&#x20;between&#x20;the&#x20;two&#x20;teeth." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em></em>Mesh Part<em> and geometry imported into the </em>Mesh-Based Geometry<em> sequence.</em></p>
<p>In this example, the implant has already been oriented with respect to the mesh. You can also do this in the <em>Mesh-Based Geometry</em> sequence using one or several <em>Transform</em> nodes. See <a href="/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics">Part 1</a> for more information about using the <em>Transform</em> attribute to rotate a mesh.</p>
<h4 id="combining-the-mesh">Combining the Mesh with CAD</h4>
<p>It&#8217;s expected that the mesh elements of the dental implant will intersect the mesh of the bone. The <em>Information</em> section under the <em>Import 2</em> node informs you about exactly this, and it adds colored points in the <em>Graphics</em> window highlighting the intersections. You would expect to see points all the way around the abutment, but you&#8217;ll only see a smaller number of points. Why? There may be a large number of intersecting elements in a mesh, so the list of locations is typically truncated. To get an idea of what is going on, use the buttons in the <em>Settings</em> window of the <em>Information</em> section to center the view and add a <em>Clip Sphere</em> around the listed locations, as shown in the following image.</p>
<div class="row">
<div class="col-sm-2">
</div>
<div class="col-sm-8">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/clip-sphere.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;zoomed-in&#x20;spherical&#x20;model&#x20;image&#x20;of&#x20;an&#x20;upper&#x20;jawbone&#x20;with&#x20;a&#x20;dental&#x20;implant."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;clip-sphere.png" alt="A&#x20;zoomed-in&#x20;spherical&#x20;model&#x20;image&#x20;of&#x20;an&#x20;upper&#x20;jawbone&#x20;with&#x20;a&#x20;dental&#x20;implant." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-2">
</div>
</div>
<p><em>The </em>Information<em> section presents details about some intersecting elements marked with colored points in the </em>Graphics<em>, shown here using a </em>Clip Sphere<em>.</em></p>
<p>Overlapping domains can be visualized using a <em>Clip Plane</em> operation with the settings <em>Show Cross Section</em> and <em>Highlight Overlapping Intersections</em> selected. This highlights the overlap in red, as you can see in the following image at left. If you don&#8217;t have domains for the teeth and the bone, check whether you had domains when finalizing the mesh in the <em>Mesh Part</em>. To form the domains in the <em>Mesh-Based Geometry</em>  sequence after the intersections have been calculated, you can add a <em>Create Domains</em> node after you have built the <em>Union</em> operation. Additionally, check that you did not select the <em>Import unmeshed domains</em> checkbox in the <em>Import 2</em> node. If you did, unselect the checkbox and rebuild the sequence. </p>
<p>I&#8217;ll use a mesh <em>Union</em> operation to calculate the intersection. As discussed in <a href="/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics">Part 1</a>, it helps if the meshes of the intersecting faces have roughly similar element sizes. In the preceding image, you can see that the mesh of the bone (light yellow) is much coarser than the mesh of the abutment (blue). Use the <em>Remesh Faces</em> operation to reduce the element size on the largest boundary of the bone.</p>
<p>In Part 1, I also discussed using the <em>Linear</em> option in the <em>Placement of vertices</em> the setting to simplify building the <em>Union</em> operation. I&#8217;ll use this approach here as well. Building the <em>Union</em> operation partitions the domain of the abutment into two and the domain of the screw into two, as seen in the following image at right.</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/clip-plane.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross-sectional&#x20;image&#x20;of&#x20;an&#x20;upper&#x20;jawbone&#x20;with&#x20;the&#x20;overlapping&#x20;domains&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;and&#x20;the&#x20;bone&#x20;highlighted&#x20;in&#x20;red."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;clip-plane.png" alt="A&#x20;cross-sectional&#x20;image&#x20;of&#x20;an&#x20;upper&#x20;jawbone&#x20;with&#x20;the&#x20;overlapping&#x20;domains&#x20;of&#x20;a&#x20;dental&#x20;implant&#x20;and&#x20;the&#x20;bone&#x20;highlighted&#x20;in&#x20;red." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/clip-plane-union.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross-sectional&#x20;image&#x20;of&#x20;an&#x20;upper&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;and&#x20;a&#x20;dental&#x20;implant."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;clip-plane-union.png" alt="A&#x20;cross-sectional&#x20;image&#x20;of&#x20;an&#x20;upper&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;and&#x20;a&#x20;dental&#x20;implant." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>The </em>Clip Plane<em> operation visualizes the domains of the dental implant overlapping the domain of the bone in red (left). The resulting mesh-based geometry after the </em>Union<em> operation has been built (right).</em> </p>
<p>If you need to combine meshes with surfaces that coincide or need to bridge small gaps or overlaps, use the <em>Merge Entities</em> operation instead, which is described in <a href="/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics">Part 1</a>.</p>
<h4 id="joining-domains-and-setting-up-selections">Joining Domains and Setting Up Selections</h4>
<p>As expected, the domains of the screw and abutment have been partitioned by the surface of the bone. Now, I need to decide what to do with these domains: Do I want to keep the domains as they are or join them? For this example, I&#8217;ll join them using two <em>Join Entities</em> operations: one for the abutment and one for the screw. The selections for the CAD parts were kept by the import, so I&#8217;ll use the domain selections for each respective CAD part when choosing which domains to join.</p>
<p>Now that the computational domains have been configured, I can set up the remaining selections to simplify defining materials and physics later on. In materials, it would help, for example, to have one selection for all titanium domains. I accomplish this by adding a <em>Union Selection</em> feature to unite the selections for three of the CAD parts. Then, I create the domain selections for the bone and the teeth. The selections here are colored for visibility.</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/joined-domains.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross-sectional&#x20;image&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;and&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;the&#x20;joining&#x20;domains&#x20;of&#x20;the&#x20;abutment&#x20;of&#x20;the&#x20;implant&#x20;highlighted&#x20;in&#x20;blue."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;joined-domains.png" alt="A&#x20;cross-sectional&#x20;image&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;and&#x20;a&#x20;dental&#x20;implant&#x20;with&#x20;the&#x20;joining&#x20;domains&#x20;of&#x20;the&#x20;abutment&#x20;of&#x20;the&#x20;implant&#x20;highlighted&#x20;in&#x20;blue." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/selection-colors-of-domain.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross&#x20;sectional&#x20;image&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;and&#x20;a&#x20;dental&#x20;implant."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;selection-colors-of-domain.png" alt="A&#x20;cross&#x20;sectional&#x20;image&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;and&#x20;a&#x20;dental&#x20;implant." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
</div>
<p><em>Joining the domains of the abutment (blue) using the imported selections from CAD (left). The colors of domain selections are also shown on the cross-section faces in the </em>Clip Plane<em> (right).</em></p>
<h4 id="generating-a-computational-mesh">Generating a Computational Mesh</h4>
<p>The last step is to generate a computational mesh. I&#8217;ll do this in the <em>Mesh 1</em> node in the model, and I can choose to generate either a physics-controlled mesh or a user-controlled mesh. I&#8217;ll leave the task of setting up any physics as an exercise for you — which means that the physics-controlled mesh shown below was generated based on a general assumption of what constitutes a good mesh but also on an analysis performed on the mesh-based geometry to resolve curvature and small details.</p>
<p>The mesh at the beginning of this example was a very coarse linear mesh imported from an STL file; however, now we have a computational mesh of good quality, and COMSOL&nbsp;Multiphysics<sup>&reg;</sup> will curve the elements when needed. For example, if you added the <em>Solid Mechanics</em> interface and solved using the mesh shown below, the <em>Quadratic serendipity</em> shape functions would be used.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/computational-mesh.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;computational&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone,&#x20;two&#x20;teeth,&#x20;and&#x20;a&#x20;dental&#x20;implant."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;computational-mesh.png" alt="A&#x20;computational&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone,&#x20;two&#x20;teeth,&#x20;and&#x20;a&#x20;dental&#x20;implant." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>A sample physics-controlled computational mesh, ready to be used in a study.</em></p>
<h3>Next Steps</h3>
<p>In this blog post, I demonstrated the process of combining imported CAD with an imported STL mesh in COMSOL&nbsp;Multiphysics<sup>&reg;</sup>. To do this, I used mesh operations in a <em>Mesh-Based Geometry</em> sequence. If you haven&#8217;t already, you can download the model file, <a href="/model/149221">Combining CAD Geometry with Meshes in COMSOL&nbsp;Multiphysics<sup>&reg;</sup></a> to try it out yourself. (Note that using this file requires a license for the CAD Import Module, the Design Module, or any of the LiveLink&trade; products for interfacing with CAD programs.) </p>
<p>For more information about this topic and related areas of modeling, check out these resources:</p>
<ul>
<li>To learn more about combining STL meshes with geometry created in COMSOL&nbsp;Multiphysics<sup>&reg;</sup>, refer to the:
<ul>
<li><a href="/model/stl-import-tutorial-series-30951">STL Import Tutorial Series</a></li>
<li><a href="/model/spray-particle-deposition-in-human-airways-125741">Spray Particle Deposition in Human Airways</a> tutorial model
<li>Examples in the blog post <a href="/blogs/generating-a-simulation-mesh-of-a-femur-from-3d-data">Generating a Simulation Mesh of a Femur From 3D Data</a></li>
</ul>
<li>Watch this <a href="/support/learning-center/article/repairing-and-improving-imported-meshes-from-3d-scans-39681">video on editing and repairing STL meshes and combining them with CAD files</a>.</li>
<li>Browse this comprehensive <a href="/blogs/tag/modeling-irregular-shapes/">blog series on modeling irregular shapes</a>.</li>
</ul>
<h3>Reference</h3>
<ol>
<li>kbrowne, &#8220;Skull and Eyes &#8211; Visible Human Male. Version 1.03,&#8221; NIH 3D, 12, Apr. 2026; <a href="https://3d.nih.gov/entries/3DPX-020591" target="blank">https://3d.nih.gov/entries/3DPX-020591</a>.</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/part-2-combining-cad-geometry-with-meshes-in-comsolmph/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Part 1: Editing and Repairing Surface Meshes in COMSOL Multiphysics®</title>
		<link>https://www.comsol.com/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics</link>
					<comments>https://www.comsol.com/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics#respond</comments>
		
		<dc:creator><![CDATA[Hanna Gothäll]]></dc:creator>
		<pubDate>Wed, 27 May 2026 22:36:13 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Geometry]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Bioengineering]]></category>
		<category><![CDATA[Technical Content]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=498611</guid>

					<description><![CDATA[{:comsolmph} includes several operations for modifying imported surface meshes. You can create, intersect, partition, and join entities, adapt and refine mesh elements, and more.]]></description>
										<content:encoded><![CDATA[<p>Modifying imported meshes can be helpful in certain scenarios, like when you need to move or rotate the mesh, when it has holes or self-intersections, or when you want to intersect it with a plane. In this blog post, I will discuss the functionality for editing and repairing surface meshes that&#8217;s available in the COMSOL&nbsp;Multiphysics<sup>&reg;</sup> software. I will demonstrate various operations and workflows for handling imported meshes and point to existing tutorial models and other relevant resources for learning more. This post is the first of a two-part series; the <a href="/blogs/part-2-combining-cad-geometry-with-meshes-in-comsolmph">second post</a> demonstrates the process of combining imported STL mesh with an imported CAD assembly.</p>
<p><span id="more-498611"></span></p>
<p><strong>Table of Contents</strong></p>
<ol>
<li><a href="#formats-for-importing">Formats for Importing Surface Meshes</a></li>
<li><a href="#repairing-and-editing">Repairing and Editing Imported Surface Meshes</a></li>
<li><a href="#demonstrating-with-a-skull-mesh">Demonstrating with a Skull Mesh</a>:
<ol style="list-style: lower-alpha;">
<li><a href="#moving-and-rotating-imported-meshes">Moving and Rotating Imported Meshes</a></li>
<li><a href="#repairing-smaller-holes">Repairing Holes and Problems Like Intersecting Elements</a></li>
<li><a href="#making-a-cutout">Making a Cutout of the Mesh</a></li>
<li><a href="#removing-elements-from-meshes">Removing Elements from Meshes</a></li>
<li><a href="#remeshing-faces">Remeshing Faces to Control the Element Size</a></li>
<li><a href="#merging-uniting-and-creating">Merging Meshes, Uniting Meshes, and Creating Computational Domains</a></li>
<li><a href="#joining-domains-and-creating-selections">Joining Domains and Creating Selections</a></li>
</ol>
</li>
<li><a href="#concluding-thoughts">Concluding Thoughts</a></li>
</ol>
<h3 id="formats-for-importing">Formats for Importing Surface Meshes</h3>
<p>The 3D surface meshes I&#8217;ll focus on in this blog post often originate from 3D imaging. In a medical application, for example, a 3D surface mesh can be used to describe the geometry of an internal organ or even the whole body. Common file formats supported for import into COMSOL&nbsp;Multiphysics<sup>&reg;</sup> are STL, 3MF, and PLY. STL is perhaps the most widely recognized format since it is also used for 3D printing, so I&#8217;ll use it for discussion here. However, note that the mesh editing methods I&#8217;ll present in this post will work for any mesh file in <a href="/support/learning-center/article/supported-file-formats-76161#anchor-4">a supported format</a> imported into a <em>Mesh-Based Geometry</em> sequence.</p>
<p>STL files do not contain any <a href="/support/learning-center/article/geometry-concepts-and-nomenclature-in-comsol-multiphysics-36081">boundary or domain</a> information, so this will need to be created either during import, which is done automatically, or manually after import. Boundaries are always created during import. However, domains — i.e., volume regions you can assign materials to and fill with a volumetric mesh — cannot be created during import if the imported mesh has intersecting elements due to overlapping regions (which you&#8217;ll see an example of shortly). Most physics interfaces in the software require domains, so it is important to create them. For meshes with overlapping regions, you need to first resolve the intersections so that there are edges tracing all of them. Then, you can manually create the domains. Filling the domains with a volume mesh is done when the computational mesh is generated, which I demonstrate in <a href="/blogs/part-2-combining-cad-geometry-with-meshes-in-comsolmph">Part 2</a> of this series.</p>
<blockquote><p>Note: For designs created in CAD software, it is recommended to export them in any of the formats supported for import with the <a href="/cad-import-module">CAD Import Module</a>.</p></blockquote>
<h3 id="repairing-and-editing">Repairing and Editing Imported Surface Meshes</h3>
<p>In addition to the challenges of working with the STL format, another common challenge that arises when importing a surface mesh is that the quality of the triangular mesh is often too poor to be readily used for finite element simulation. From a simulation perspective, the quality of a mesh is poor if it contains:</p>
<ul>
<li>Holes or self-intersecting boundaries preventing domain creation</li>
<li>Thin spikes or other unwanted irregularities in shape</li>
<li>Triangles with very acute or obtuse angles</li>
<li>Triangles that differ greatly in size</li>
</ul>
<p>COMSOL&nbsp;Multiphysics<sup>&reg;</sup> supports a range of operations for handling all of these challenges, as well as for making other sorts of common mesh edits. You can use these capabilities to:</p>
<ul>
<li>Move, scale, and rotate the imported mesh</li>
<li>Modify the repair tolerance during import</li>
<li>Fill small or large holes in the mesh</li>
<li>Remove elements from the mesh, replacing them with new meshed surfaces</li>
<li>Combine and merge meshes</li>
<li>Combine imported mesh with parametric CAD designs (or geometry drawn in COMSOL&nbsp;Multiphysics<sup>&reg;</sup>) to run parametric sweeps</li>
<li>Intersect multiple imported meshes with each other or with a plane</li>
<li>Remesh the surfaces to control element size and the shape</li>
<li>Use a curved surface representation of nonplanar boundaries</li>
</ul>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/skull-mesh-collage.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="Four&#x20;mesh&#x20;images&#x3A;&#x20;one&#x20;of&#x20;an&#x20;entire&#x20;human&#x20;skull&#x20;and&#x20;three&#x20;of&#x20;the&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars&#x20;only."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;skull-mesh-collage.png" alt="Four&#x20;mesh&#x20;images&#x3A;&#x20;one&#x20;of&#x20;an&#x20;entire&#x20;human&#x20;skull&#x20;and&#x20;three&#x20;of&#x20;the&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars&#x20;only." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Editing done to the surface mesh of a skull.</em></cmimg></p>
<p>In this blog post, I&#8217;ll use a mesh of a human skull to demonstrate the workflows for several of these actions.</p>
<h3 id="demonstrating-with-a-skull-mesh">Demonstrating with a Skull Mesh</h3>
<p>The mesh for the following demonstrations was obtained from the NIH website. (Ref. 1) Here, I&#8217;ve imported the mesh into a <em>Mesh-Based Geometry</em> sequence, which is a sequence that defines the geometric model with the domains and boundaries needed to set up and solve any physics. Alternatively, you can do the import, repair, and editing in a <em>Mesh Part</em> sequence, as is demonstrated in <a href="/blogs/part-2-combining-cad-geometry-with-meshes-in-comsolmph">Part 2 of this blog series</a> and in the <a href="/model/stl-import-tutorial-series-30951">STL Import Tutorial Series</a>. Moving portions of the work to one or several mesh parts is good for organizing it but also for when you want to reuse the same mesh in several sequences or use mesh parts as construction geometry (also shown in Part 2).</p>
<p>For this example application, I&#8217;ll need to rotate and move the mesh to get it into position, remove some elements that are not needed, and calculate the intersection between the meshes of the bone and teeth. I will also touch on some other useful operations and workflows that can help in other cases. To aid with visualization, the mesh surfaces are colored as in the image above, unless stated otherwise. In the example model that can be downloaded at the end of this post, the boundaries remain gray until the colored selections are created at the end.</p>
<h4 id="moving-and-rotating-imported-meshes">Moving and Rotating Imported Meshes</h4>
<p>Many 3D imaging techniques are performed on the bodies of humans who are lying down, which means that an imported mesh may need to be rotated to, for example, put a body model in an upright position. Moving and rotating an imported mesh is done by adding one or several <em>Transform</em> attributes to the <em>Import</em> node. Rotation around multiple axes requires several <em>Transform</em> attributes.</p>
<p>For this example, I implemented a rotation by first aligning the <em>z</em>-axis to the axis specified by the <em>Axis type</em> setting; then, the mesh was rotated 83 degrees around the specified <em>x-axis</em>, and I added a displacement to place the mesh at the origin.</p>
<div class="row">
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/skull-mesh-side.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;skull&#x20;tilted&#x20;on&#x20;its&#x20;righthand&#x20;side,&#x20;with&#x20;the&#x20;chin&#x20;pointing&#x20;toward&#x20;the&#x20;viewer&#x20;and&#x20;the&#x20;face&#x20;looking&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;lefthand&#x20;diagonal."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;skull-mesh-side.png" alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;skull&#x20;tilted&#x20;on&#x20;its&#x20;righthand&#x20;side,&#x20;with&#x20;the&#x20;chin&#x20;pointing&#x20;toward&#x20;the&#x20;viewer&#x20;and&#x20;the&#x20;face&#x20;looking&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;lefthand&#x20;diagonal." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/skull-mesh-up.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;skull,&#x20;with&#x20;the&#x20;face&#x20;pointed&#x20;skyward&#x20;and&#x20;the&#x20;chin&#x20;pointing&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;righthand&#x20;diagonal."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;skull-mesh-up.png" alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;skull,&#x20;with&#x20;the&#x20;face&#x20;pointed&#x20;skyward&#x20;and&#x20;the&#x20;chin&#x20;pointing&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;righthand&#x20;diagonal." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/skull-mesh-vertical.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;mesh&#x20;of&#x20;an&#x20;upright&#x20;human&#x20;skull,&#x20;with&#x20;the&#x20;face&#x20;pointing&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;righthand&#x20;diagonal."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;skull-mesh-vertical.png" alt="A&#x20;mesh&#x20;of&#x20;an&#x20;upright&#x20;human&#x20;skull,&#x20;with&#x20;the&#x20;face&#x20;pointing&#x20;to&#x20;the&#x20;viewer&#x27;s&#x20;righthand&#x20;diagonal." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>The orientation of the mesh in the file (left). By setting the </em>Axis type<em> to </em>x-axis<em>, the mesh is rotated to align the </em>z<em>-axis with the </em>x<em>-axis (middle). Lastly, the rotation angle of 83 degrees around the </em>x<em>-axis is applied (right).</em></p>
<p>Note that it is recommended to add any <em>Transform</em> attributes before doing any other editing or repair, as reimporting the mesh with new <em>Transform</em> settings will likely result in lost input selections in downstream features in the sequence.</p>
<h4 id="repairing-smaller-holes">Repairing Holes and Problems Like Intersecting Elements</h4>
<p>During import or when building other operations, <em>Information</em> nodes may appear to notify you that there are holes in the mesh and provide you with a selection of edges that you can zoom in on.</p>
<p>To repair smaller holes relative to the overall size of the mesh (typically the size of one or a couple of mesh elements), it is often sufficient to increase the <em>Repair tolerance</em> of the import, as this can collapse elements or align a mismatch in vertex coordinates. For larger holes, or if increasing the repair tolerance doesn&#8217;t seal off all holes, try using the <em>Fill Holes</em> operation. If doing so fills all of the holes and the surfaces thus form watertight regions, the <em>Fill Holes</em> operation will also create domains inside the regions.</p>
<p>For problems like intersecting elements, as seen below at right, isolate the problematic region, delete the elements, and fill in the hole. For more details about this workflow, refer to the <a href="#removing-elements-from-meshes">Removing Elements from Meshes</a> section of this blog post.</p>
<p>The skull mesh at hand doesn&#8217;t require any repair of this kind, but the <a href="/model/stl-import-tutorial-series-30951">STL Import Tutorial Series</a> includes several examples of smaller holes and intersecting elements, as can be seen in the following images. Download the application files to learn how to fix these.</p>
<div class="row">
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/slit-hole-repair.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;close-up&#x20;view&#x20;of&#x20;a&#x20;region&#x20;of&#x20;a&#x20;surface&#x20;mesh&#x20;with&#x20;triangular&#x20;elements&#x20;shown&#x20;in&#x20;grayscale,&#x20;with&#x20;the&#x20;edges&#x20;of&#x20;a&#x20;slit&#x20;highlighted&#x20;in&#x20;blue."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;slit-hole-repair.png" alt="A&#x20;close-up&#x20;view&#x20;of&#x20;a&#x20;region&#x20;of&#x20;a&#x20;surface&#x20;mesh&#x20;with&#x20;triangular&#x20;elements&#x20;shown&#x20;in&#x20;grayscale,&#x20;with&#x20;the&#x20;edges&#x20;of&#x20;a&#x20;slit&#x20;highlighted&#x20;in&#x20;blue." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/misaligned-element-repair.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;close-up&#x20;view&#x20;of&#x20;a&#x20;misaligned&#x20;triangular&#x20;element&#x20;in&#x20;a&#x20;surface&#x20;mesh&#x20;with&#x20;its&#x20;edges&#x20;highlighted&#x20;in&#x20;green&#x20;that&#x20;is&#x20;causing&#x20;a&#x20;narrow&#x20;gap&#x20;shown&#x20;in&#x20;white."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;misaligned-element-repair.png" alt="A&#x20;close-up&#x20;view&#x20;of&#x20;a&#x20;misaligned&#x20;triangular&#x20;element&#x20;in&#x20;a&#x20;surface&#x20;mesh&#x20;with&#x20;its&#x20;edges&#x20;highlighted&#x20;in&#x20;green&#x20;that&#x20;is&#x20;causing&#x20;a&#x20;narrow&#x20;gap&#x20;shown&#x20;in&#x20;white." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/intersecting_elements.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;close-up&#x20;view&#x20;of&#x20;a&#x20;surface&#x20;mesh&#x20;where&#x20;triangular&#x20;elements&#x20;are&#x20;intersecting&#x20;each&#x20;other."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;intersecting_elements.png" alt="A&#x20;close-up&#x20;view&#x20;of&#x20;a&#x20;surface&#x20;mesh&#x20;where&#x20;triangular&#x20;elements&#x20;are&#x20;intersecting&#x20;each&#x20;other." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>A hole with zero area (i.e., a slit) is bounded by edges highlighted in blue (left). A hole in the mesh caused by a mismatch in vertex coordinates (middle). Intersecting elements in an imported mesh (right).</em></p>
<h4 id="making-a-cutout">Making a Cutout of the Mesh</h4>
<p>What if you only want to include a smaller region of the imported mesh in the simulation? For example, with the skull mesh, I ultimately wanted to create a model to simulate a dental implant, so I didn&#8217;t need the full skull mesh. Assuming that parts of the mesh are not needed for the simulation, you can delete the parts of the mesh that you are not interested in. The skull mesh was imported as several mesh surfaces, which made it possible to extract the surfaces of the jaw bone and teeth using a <em>Delete Entities</em> operation, as shown in the following image.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/delete-entities-operation.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;mesh&#x20;surface&#x20;of&#x20;a&#x20;skull&#x20;model&#x20;shown&#x20;in&#x20;blue,&#x20;with&#x20;the&#x20;mesh&#x20;surface&#x20;of&#x20;the&#x20;right&#x20;half&#x20;of&#x20;the&#x20;upper&#x20;jaw&#x20;and&#x20;two&#x20;teeth&#x20;shown&#x20;in&#x20;light&#x20;yellow."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;delete-entities-operation.png" alt="The&#x20;mesh&#x20;surface&#x20;of&#x20;a&#x20;skull&#x20;model&#x20;shown&#x20;in&#x20;blue,&#x20;with&#x20;the&#x20;mesh&#x20;surface&#x20;of&#x20;the&#x20;right&#x20;half&#x20;of&#x20;the&#x20;upper&#x20;jaw&#x20;and&#x20;two&#x20;teeth&#x20;shown&#x20;in&#x20;light&#x20;yellow." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>I used a</em> Delete Entities <em>operation to delete the parts of the mesh that I was not interested in; I only kept the upper jaw and two teeth (highlighted in light yellow).</em></cmimg></p>
<p>Next, I used <em>Intersect with Plane</em> operations to cut the upper jaw bone into smaller pieces and then delete the parts that weren&#8217;t needed for the simulation. You can specify the planes using coordinate planes, points, coordinates, the normal vector, and more. Once a plane has been specified, one or several parallel planes can be added, as you can see in the bottom two of the following images. The <em>Intersect with Plane</em> operation is used to create selections of what is above and below the plane. You can use these selections to easily select what to delete.</p>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/jaw-and-molars-mesh.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;mesh&#x20;surface&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars&#x20;on&#x20;either&#x20;side&#x20;of&#x20;a&#x20;gap."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;jaw-and-molars-mesh.png" alt="The&#x20;mesh&#x20;surface&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars&#x20;on&#x20;either&#x20;side&#x20;of&#x20;a&#x20;gap." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-horizontal.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;mesh&#x20;surface&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars&#x20;on&#x20;either&#x20;side&#x20;of&#x20;a&#x20;gap,&#x20;truncated&#x20;horizontally&#x20;along&#x20;a&#x20;plane."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-horizontal.png" alt="The&#x20;mesh&#x20;surface&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars&#x20;on&#x20;either&#x20;side&#x20;of&#x20;a&#x20;gap,&#x20;truncated&#x20;horizontally&#x20;along&#x20;a&#x20;plane.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-cut-planes.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;horizontally&#x20;truncated&#x20;mesh&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars,&#x20;with&#x20;two&#x20;vertical&#x20;cut&#x20;planes&#x20;indicating&#x20;regions&#x20;to&#x20;be&#x20;removed."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-cut-planes.png" alt="A&#x20;horizontally&#x20;truncated&#x20;mesh&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars,&#x20;with&#x20;two&#x20;vertical&#x20;cut&#x20;planes&#x20;indicating&#x20;regions&#x20;to&#x20;be&#x20;removed." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-removed.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;mesh&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars,&#x20;truncated&#x20;horizontally&#x20;along&#x20;a&#x20;plane&#x20;and&#x20;vertically&#x20;along&#x20;two&#x20;planes."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-removed.png" alt="A&#x20;mesh&#x20;of&#x20;half&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;bone&#x20;and&#x20;two&#x20;molars,&#x20;truncated&#x20;horizontally&#x20;along&#x20;a&#x20;plane&#x20;and&#x20;vertically&#x20;along&#x20;two&#x20;planes.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>Clockwise from top left: I used multiple</em> Intersect with Plane <em>operations to cut the upper jaw into smaller pieces, deleting what was above and/or below the planes as I went.</em></p>
<h4 id="removing-elements-from-meshes">Removing Elements from Meshes</h4>
<p>For the skull mesh, I wanted to create domains inside the bone and teeth to assign materials to when adding physics to the model, and to do this I needed to resolve the intersection between the bone and teeth surfaces with a <em>Union</em> operation. As you can see in the following image, the surfaces intersect in a complex way, with small overlaps and gaps between the meshes. I also needed to resolve the intersection to remove the indents from the missing tooth because I wanted to simulate that the dental implant (to be added to the mesh in Part 2) had fully healed into the bone. It is easier to unite meshes where the intersection is reasonably close to 90 degrees rather than the small angles that the skull mesh had. Therefore, I removed a rather large portion of the bone surface and replaced it with a flatter new meshed surface.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-interior.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="An&#x20;interior&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jaw&#x20;and&#x20;two&#x20;molars,&#x20;showing&#x20;the&#x20;jaw&#x20;elements&#x20;in&#x20;light&#x20;yellow&#x20;and&#x20;the&#x20;tooth&#x20;elements&#x20;in&#x20;white."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-interior.png" alt="An&#x20;interior&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jaw&#x20;and&#x20;two&#x20;molars,&#x20;showing&#x20;the&#x20;jaw&#x20;elements&#x20;in&#x20;light&#x20;yellow&#x20;and&#x20;the&#x20;tooth&#x20;elements&#x20;in&#x20;white." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Using a</em> Clip Plane <em>operation to see inside the mesh. The surface of the bone (light yellow) contains depressions that intersect the teeth (white) and the future dental implant.</em></cmimg></p>
<p>The workflow for removing elements typically consists of isolating the irregularity, deleting it, creating a new surface, and joining it with an adjacent boundary. Some STL meshes contain a large number of problematic regions, so isolating the surface can been automated by using the <em>Mesh Partition with Ball</em> add-in, which is available from the <em>Developer</em> tab in the software. The partitioning operations can quickly partition a mesh but are restricted to specific shapes or logical expressions by their respective settings. On the other hand, the <em>Create Edges</em> operation is more flexible, as you select each mesh edge manually. For practical reasons, the <em>Create Edges</em> operation is typically only used when isolating a smaller number of mesh elements.</p>
<p>I&#8217;ll demonstrate a workflow here that uses both types of operations and starts with loading the <em>Mesh Partition with Ball</em> add-in. To load the add-in into a model, click the <em>Add-in Libraries</em> button on the <em>Developer</em> tab. In the list of add-ins, select the checkbox for the <em>Mesh Partition with Ball</em> add-in, and click <em>Done</em>. Now, click the <em>Add-ins</em> button on the <em>Developer</em> tab and select <em>Mesh Partition with Ball</em>.</p>
<p>When the add-in is loaded into the model, middle-click with the mouse to place the center of rotation, which will be used as the center for the ball. Click the <em>Create</em> button in the <em>Settings</em> window for the add-in to add a <em>Partition with Ball</em> operation to the sequence with its center and radius filled in by the add-in. The settings can be changed if needed. In the example, I opted to only partition the largest bone boundary (colored blue at left in the following set of images), as that was the only boundary that contained elements I wanted to replace. For other use cases of the add-in, see the <a href="/model/spray-particle-deposition-in-human-airways-125741">Spray Particle Deposition in Human Airways</a> tutorial model.</p>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/blue-jaw-mesh.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;blue&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw,&#x20;showing&#x20;empty&#x20;tooth&#x20;cavities&#x20;from&#x20;below,&#x20;and&#x20;a&#x20;spherical&#x20;target&#x20;tool&#x20;shown&#x20;in&#x20;light&#x20;pink."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;blue-jaw-mesh.png" alt="A&#x20;blue&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw,&#x20;showing&#x20;empty&#x20;tooth&#x20;cavities&#x20;from&#x20;below,&#x20;and&#x20;a&#x20;spherical&#x20;target&#x20;tool&#x20;shown&#x20;in&#x20;light&#x20;pink." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/yellow-jaw-mesh.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw,&#x20;showing&#x20;empty&#x20;tooth&#x20;cavities&#x20;from&#x20;below,&#x20;and&#x20;a&#x20;spherical&#x20;target&#x20;tool&#x20;shown&#x20;in&#x20;light&#x20;pink."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;yellow-jaw-mesh.png" alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw,&#x20;showing&#x20;empty&#x20;tooth&#x20;cavities&#x20;from&#x20;below,&#x20;and&#x20;a&#x20;spherical&#x20;target&#x20;tool&#x20;shown&#x20;in&#x20;light&#x20;pink.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>Looking at the mesh from below with the teeth hidden for visibility. In the</em> Graphics <em>window, middle-click the mesh to set the center of the ball. The radius of the ball (light pink) is set automatically by the add-in. The teeth are hidden for visibility (left). The resulting mesh after a</em> Partition with Ball <em> operation has been added to the sequence to isolate a region enclosed by the ball (right).</em></p>
<p>For the rest of the depressions I used the <em>Create Edges</em> operation, as the bone wall around the depressions in the middle was quite thin and clicking the edges manually gives you more control over which elements to isolate. With the <em>Create Edges</em> operation, you click the mesh edges in the <em>Graphics</em> window to create geometrical edges that will isolate a surface. These edges are selected to attach to the edges created by the add-in (the thicker black edges in the following image at left). Use of the <em>Create Edges</em> operation is also demonstrated in the <a href="/model/stl-import-tutorial-series-30951">STL Import Tutorial Series</a>.</p>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-edge-highlight.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw,&#x20;showing&#x20;empty&#x20;tooth&#x20;cavities&#x20;from&#x20;below,&#x20;and&#x20;some&#x20;mesh&#x20;edges&#x20;highlighted&#x20;blue."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-edge-highlight.png" alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw,&#x20;showing&#x20;empty&#x20;tooth&#x20;cavities&#x20;from&#x20;below,&#x20;and&#x20;some&#x20;mesh&#x20;edges&#x20;highlighted&#x20;blue." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-blue-cavity.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;and&#x20;two&#x20;molars,&#x20;with&#x20;an&#x20;empty&#x20;cavity&#x20;between&#x20;them&#x20;colored&#x20;in&#x20;blue."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-blue-cavity.png" alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;and&#x20;two&#x20;molars,&#x20;with&#x20;an&#x20;empty&#x20;cavity&#x20;between&#x20;them&#x20;colored&#x20;in&#x20;blue." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>Click the mesh edges (highlighted in blue) in the </em>Graphics<em> window to form the bounding edges of the surface containing the rest of the depressions (left). Looking at the mesh from the side using a </em>Clip Plane<em> operation: The highlighted surfaces (blue) are selected to be deleted and replaced (right).</em></p>
<p>Once the depressions were isolated, I deleted the surfaces and created a new meshed surface using the <em>Create Faces</em> operation, as shown in the following images. The generated surface is a minimal surface, which means that it aims to be as planar as possible with a coarse mesh size. If the hole had been small compared to the bounding box of the mesh, I could have used the <em>Fill Holes</em> operation instead.</p>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-fill.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;with&#x20;surfaces&#x20;deleted&#x20;and&#x20;the&#x20;outline&#x20;of&#x20;the&#x20;deleted&#x20;portion&#x20;highlighted&#x20;in&#x20;blue."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-fill.png" alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;with&#x20;surfaces&#x20;deleted&#x20;and&#x20;the&#x20;outline&#x20;of&#x20;the&#x20;deleted&#x20;portion&#x20;highlighted&#x20;in&#x20;blue." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/upper-jaw-meshed-boundary.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;with&#x20;a&#x20;filled&#x20;meshed&#x20;boundary&#x20;in&#x20;the&#x20;center&#x20;colored&#x20;in&#x20;gray."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;upper-jaw-meshed-boundary.png" alt="A&#x20;light&#x20;yellow&#x20;mesh&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;with&#x20;a&#x20;filled&#x20;meshed&#x20;boundary&#x20;in&#x20;the&#x20;center&#x20;colored&#x20;in&#x20;gray." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>The highlighted edges (blue) are used as input to the </em>Create Faces<em> operation (left). In gray, the new meshed boundary (right).</em></p>
<p>Finally, I used the <em>Join Entities</em> operation to join the larger boundary of the bone with the newly created boundary.</p>
<h4 id="remeshing-faces">Remeshing Faces to Control the Element Size</h4>
<p>To help the <em>Union</em> operation calculate the intersections between the meshes of the teeth and bone, it&#8217;s ideal to have mesh elements of more equal size, as well as high-quality elements on the intersecting faces. Achieving these conditions can be accomplished by using the <em>Remesh Faces</em> operation. To gain more control over the element sizing, change the element size in the <em>Size</em> subnode. To get a similar size on all surfaces, regardless of the curvature and any narrow regions, set the <em>Minimum element size</em> and <em>Maximum element size</em> to similar or equal values. Note that the mesh generated when using the <em>Remesh Faces</em> operation is only to help the <em>Union</em> operation and to get a smoother representation of the surfaces. The <em>Remesh Faces</em> operation accomplishes the latter by placing new nodes on a curved representation of the surface derived from the linear mesh. The computational mesh is generated later in a <em>Mesh</em> sequence.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/teeth-and-surface-remesh.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;closeup&#x20;view&#x20;from&#x20;below&#x20;of&#x20;a&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;in&#x20;light&#x20;yellow&#x20;and&#x20;two&#x20;molars&#x20;in&#x20;white."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;teeth-and-surface-remesh.png" alt="A&#x20;closeup&#x20;view&#x20;from&#x20;below&#x20;of&#x20;a&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;upper&#x20;jaw&#x20;in&#x20;light&#x20;yellow&#x20;and&#x20;two&#x20;molars&#x20;in&#x20;white.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Remeshing the teeth and the joined surface of the bone to prepare them for the </em>Union<em> operation.</em></cmimg></p>
<p>The <em>Remesh Faces</em> and <em>Remesh Edges</em> operations can also be used to control the shape of surfaces and edges. For an example where the <em>Remesh Faces</em> operation is used to smooth the mesh surfaces, see <a href="/blogs/generating-a-simulation-mesh-of-a-femur-from-3d-data">Generating a Simulation Mesh of a Femur From 3D Data</a>.</p>
<h4 id="merging-uniting-and-creating">Merging Meshes, Uniting Meshes, and Creating Computational Domains</h4>
<p>Going back to the example of the dental implant, I used the <em>Union</em> operation to calculate the intersection between the overlapping meshes of the teeth and bone. The <em>Union</em> operation calculates the intersection edges, partitions the surfaces, and splits the mesh elements as necessary, as you can see in the following image at right.</p>
<p>If the <em>Union</em> operation reports problems with intersecting elements, keeping domains, or the like, try another mesh size in the <em>Remesh Faces</em> operation, try lowering the <em>Absolute</em> repair tolerance of the <em>Union</em> operation, and/or switch to the <em>Linear</em> option in the <em>Placement of mesh vertices</em> setting. When the <em>Curved</em> placement of vertices option is used (as shown in the middle image below), new mesh vertices are placed on a curved representation of the mesh surface that is derived from the linear mesh. The <em>Linear</em> option simplifies the problem, with the drawback of having more angular intersection edges.</p>
<p>For the example model, I used the <em>Linear</em> placement of mesh vertices option for the <em>Union</em> operation, which created edges tracing the intersections which the mesh conformed over (image at right).</p>
<div class="row">
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/mesh-before-union.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;closeup&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;molar&#x20;protruding&#x20;from&#x20;a&#x20;jaw&#x20;bone."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;mesh-before-union.png" alt="A&#x20;closeup&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;molar&#x20;protruding&#x20;from&#x20;a&#x20;jaw&#x20;bone.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/mesh-with-curved-placement.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;closeup&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;molar&#x20;protruding&#x20;from&#x20;a&#x20;jaw&#x20;bone,&#x20;with&#x20;dotted&#x20;mesh&#x20;lines."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;mesh-with-curved-placement.png" alt="A&#x20;closeup&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;molar&#x20;protruding&#x20;from&#x20;a&#x20;jaw&#x20;bone,&#x20;with&#x20;dotted&#x20;mesh&#x20;lines.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-4">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/mesh-after-union.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;closeup&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;molar&#x20;protruding&#x20;from&#x20;a&#x20;jaw&#x20;bone,&#x20;with&#x20;solid&#x20;mesh&#x20;lines."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;mesh-after-union.png" alt="A&#x20;closeup&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;molar&#x20;protruding&#x20;from&#x20;a&#x20;jaw&#x20;bone,&#x20;with&#x20;solid&#x20;mesh&#x20;lines." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>The mesh before building a</em> Union <em>operation: The triangles of the tooth are intersecting the triangles of the bone (left). When the </em>Curved<em> placement of mesh vertices option is used, the intersection edge is smoother (middle). When the </em>Linear<em> placement of mesh vertices option is used — as I opted to do in the example model — the intersection edge is more angular (right).</em></p>
<p>Until this point, domains had not been created inside the mesh because of the intersecting elements between the teeth and bone. Now that the intersections in the mesh were resolved, I used the <em>Create Domains</em> operation to form the computational domains inside the watertight regions. To get a visual of the domains, you can right-click anywhere on the mesh in the <em>Graphics</em> window, select <em>Clipping</em> and then <em>Clip Plane</em>. Then, in the <em>Graphics</em> toolbar, click the <em>Clipping Active</em> button and select <em>Show Cross Section</em>.</p>
<p>An alternative way to see whether the domains have been created is to check if the <em>Selection List</em> reports any domains. After the <em>Create Domains</em> operation has been built, the <em>Graphics</em> window should show cross-sectional faces for the domains (following image at right), the <em>Selection List</em> should be populated on the domain level, and the <em>Information</em> section of the <em>Create Domains</em> operation&#8217;s settings will list the number of created domains as well as the total number of domains.</p>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/before-create-domains.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;highlighted&#x20;boundaries,&#x20;edges,&#x20;and&#x20;vertices."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;before-create-domains.png" alt="A&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;highlighted&#x20;boundaries,&#x20;edges,&#x20;and&#x20;vertices." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/after-create-domains.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;gray&#x20;cross&#x20;section&#x20;of&#x20;a&#x20;model&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;lines&#x20;to&#x20;visualize&#x20;the&#x20;cross-sectional&#x20;faces&#x20;of&#x20;the&#x20;domains."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;after-create-domains.png" alt="A&#x20;gray&#x20;cross&#x20;section&#x20;of&#x20;a&#x20;model&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;lines&#x20;to&#x20;visualize&#x20;the&#x20;cross-sectional&#x20;faces&#x20;of&#x20;the&#x20;domains." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>Before building the </em>Create Domains<em> operation, there are no domains in the mesh — only boundaries, edges, and vertices (left). After the </em>Create Domains<em> operation has been built, the domains are visualized with cross-sectional faces in the </em>Clip Plane<em> if the <em>Show Cross Section</em> setting has been enabled (right).</em></p>
<p>Meshes imported using several <em>Import</em> nodes are treated the same way as different objects are treated in the <em>Geometry</em> sequence when using the <em><a href="/support/learning-center/article/the-usage-of-form-union-and-form-assembly-74571">Form Assembly</a></em> method. To connect touching boundaries in such meshes, it is recommended to use the <em>Merge Entities</em> operation. This operation can also be used to collapse gaps in a mesh, as shown in the following example, which is taken from the <a href="/model/stl-import-tutorial-series-30951">STL Import Tutorial Series</a>. Download the application files to learn more.</p>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/merging-two-faces.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;closeup&#x20;view&#x20;of&#x20;a&#x20;gray&#x20;mesh&#x20;highlighting&#x20;in&#x20;yellow&#x20;a&#x20;gap&#x20;between&#x20;a&#x20;vertebra&#x20;and&#x20;disc."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;merging-two-faces.png" alt="A&#x20;closeup&#x20;view&#x20;of&#x20;a&#x20;gray&#x20;mesh&#x20;highlighting&#x20;in&#x20;yellow&#x20;a&#x20;gap&#x20;between&#x20;a&#x20;vertebra&#x20;and&#x20;disc.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/merged-faces.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;closeup&#x20;view&#x20;of&#x20;a&#x20;gray&#x20;mesh&#x20;of&#x20;a&#x20;vertebra&#x20;and&#x20;disc."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;merged-faces.png" alt="A&#x20;closeup&#x20;view&#x20;of&#x20;a&#x20;gray&#x20;mesh&#x20;of&#x20;a&#x20;vertebra&#x20;and&#x20;disc.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>Merging two faces (yellow) to seal a gap between a vertebra and disc (left). The resulting mesh after the gap has been sealed (right).</em></p>
<h4 id="joining-domains-and-creating-selections">Joining Domains and Creating Selections</h4>
<p>As expected, the domains of the teeth in the example mesh were partitioned with the surface of the bone (following image at left). I could have kept the domain partitioning as it was, but instead I used the <em>Join Entities</em> operation to join the domains of the teeth into two domains (image at right). After that, I could define domain and boundary selections to be used when setting up materials and physics. For this example, I created domain selections to facilitate assigning material properties.</p>
<div class="row">
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/teeth-domains-blue.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross-sectional&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;highlighted&#x20;in&#x20;blue."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;teeth-domains-blue.png" alt="A&#x20;cross-sectional&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;highlighted&#x20;in&#x20;blue.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
<div class="col-sm-6">    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/teeth-domains-assigned.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;cross-sectional&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;colored&#x20;in&#x20;gray."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;teeth-domains-assigned.png" alt="A&#x20;cross-sectional&#x20;view&#x20;of&#x20;the&#x20;mesh&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;with&#x20;two&#x20;teeth&#x20;colored&#x20;in&#x20;gray.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 </cmimg></div>
</div>
<p><em>Joining the domains of the teeth (left). The domains with assigned colored selections: Now that the domains have assigned colors, the cross section also shows these colors (right).</em></p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/final-jawbone-mesh.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;mesh-based&#x20;geometry&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;&#x28;light&#x20;yellow&#x29;&#x20;and&#x20;two&#x20;teeth&#x20;&#x28;gray&#x29;."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;final-jawbone-mesh.png" alt="A&#x20;mesh-based&#x20;geometry&#x20;of&#x20;a&#x20;portion&#x20;of&#x20;a&#x20;human&#x20;jawbone&#x20;&#x28;light&#x20;yellow&#x29;&#x20;and&#x20;two&#x20;teeth&#x20;&#x28;gray&#x29;.&#x20;" class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>The final mesh-based geometry.</em></cmimg></p>
<p>This mesh-based geometry can very well be used for simulation at this point; all that&#8217;s needed is to build the computational mesh in the <em>Mesh 1</em> node.</p>
<h3 id="concluding-thoughts">Concluding Thoughts</h3>
<p>COMSOL&nbsp;Multiphysics<sup>&reg;</sup> offers multiple features to repair and edit imported meshes. In this blog post, I have demonstrated how to rotate an imported mesh, remove elements, merge entities, unite meshes, and create computational domains. If you haven’t already, check out the <a href="/model/149231">model file</a> of the example featured in this post. Note that all edits done for this mesh may not be necessary for other meshes. The order in which you add the operations can also differ, depending on the mesh at hand. I have prepared this mesh to later add a dental implant where a tooth is missing, and the idea is to generate a computational mesh that could be used for a solid mechanics simulation. The topic of combining the mesh prepared in this blog post with imported CAD geometry is covered in <a href="/blogs/part-2-combining-cad-geometry-with-meshes-in-comsolmph">Part 2 of this series</a>.</p>
<h3>Learn More</h3>
<p>If you are interested in learning more about working with imported meshes, check out these resources:</p>
<ul>
<li>Watch this <a href="/support/learning-center/article/repairing-and-improving-imported-meshes-from-3d-scans-39681">video on editing and repairing imported STL meshes and combining them with CAD geometry</a>.</li>
<li><a href="/model/stl-import-tutorial-series-30951">STL Import Tutorial Series</a>, a tutorial model series showcasing how to repair, edit, and combine STL meshes with each other and with geometry created in the software</li>
<li><a href="/model/analyzing-porous-structures-on-the-microscopic-scale-85371">Analyzing Porous Structures on the Microscopic Scale</a>, a tutorial model that showcases import of an STL file and the generation of a physics-controlled mesh</li>
<li><a href="/model/spray-particle-deposition-in-human-airways-125741">Spray Particle Deposition in Human Airways</a>, a tutorial model featuring the <em>Mesh Partition with Ball</em> add-in to repair the STL mesh</li>
<li><a href="/blogs/generating-a-simulation-mesh-of-a-femur-from-3d-data">Generating a Simulation Mesh of a Femur From 3D Data</a>, a blog post showing two ways of creating a mesh from data in a file and smoothing the shape of the meshed surfaces</li>
</ul>
<h3>Reference</h3>
<ol>
<li>kbrowne, &#8220;Skull and Eyes &#8211; Visible Human Male. Version 1.03,&#8221; NIH 3D, 12, Apr. 2026; <a href="https://3d.nih.gov/entries/3DPX-020591" target="blank">https://3d.nih.gov/entries/3DPX-020591</a>.</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/part-1-editing-and-repairing-surface-meshes-in-comsol-multiphysics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Define Load Cycles in Battery Models: Part 2</title>
		<link>https://www.comsol.com/blogs/how-to-define-load-cycles-in-battery-models-part-2</link>
					<comments>https://www.comsol.com/blogs/how-to-define-load-cycles-in-battery-models-part-2#respond</comments>
		
		<dc:creator><![CDATA[Niloofar Kamyab]]></dc:creator>
		<pubDate>Tue, 12 May 2026 15:23:06 +0000</pubDate>
				<category><![CDATA[Battery Design]]></category>
		<category><![CDATA[Chemical]]></category>
		<category><![CDATA[Battery Design Module]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=498131</guid>

					<description><![CDATA[In this blog post, we cover a straightforward approach to defining load cycles in battery models in COMSOL Multiphysics<sup>&#174;</sup>. Part 2 of a 2-part series. ]]></description>
										<content:encoded><![CDATA[<p>Whether modeling reference performance tests (RPTs), custom cycling scenarios, or real-world operation, defining the corresponding load profile is an important step in battery modeling. In Part 1 of this two-part blog series, we explored different approaches to defining load cycles. Version 6.4 introduces a new feature that significantly simplifies the process. Let’s take a closer look at the <em>Load Cycle</em> feature, a simple and robust tool for defining even highly complex cycling scenarios.</p>
<blockquote><p>This is the second blog post in a two-part series on defining load cycles in battery models. Read <a href="/blogs/how-to-define-load-cycles-in-battery-models">Part 1 here</a>.</p></blockquote>
<p><span id="more-498131"></span></p>
<h3>Introduction</h3>
<p>Battery cycling scenarios can involve complex, multistep protocols and are not always as straightforward as applying a constant current for charge and discharge with switching based on a voltage cutoff. In practice, batteries may operate under current, voltage, or power control, or a mix of all three, specified either by constant or variable inputs or by tabulated data. Transitions between modes can be governed by simple duration conditions or more custom, user-defined criteria based on a variety of performance outputs. Additionally, load profiles may consist of simple repeated sequences or include nested loops within a broader protocol.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/Lithium-ion-battery-UI.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;model&#x20;builder&#x20;with&#x20;a&#x20;lithium-ion&#x20;battery&#x20;geometry&#x20;open&#x20;as&#x20;well&#x20;as&#x20;the&#x20;corresponding&#x20;settings&#x20;window."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;Lithium-ion-battery-UI.png" alt="The&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;model&#x20;builder&#x20;with&#x20;a&#x20;lithium-ion&#x20;battery&#x20;geometry&#x20;open&#x20;as&#x20;well&#x20;as&#x20;the&#x20;corresponding&#x20;settings&#x20;window." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Specifying load profiles is critical for accurately modeling real-world battery system performance.</em></p>
<p>When incorporating these profiles into a battery model, it is equally important to consider their numerical implications beyond defining and customizing them. Abrupt changes and complex switching conditions in the load profile can lead to numerical stability issues during simulation. As discussed in Part 1, having an event-based profile, either using the <em>Events</em> interface directly or through the predefined <em>Charge–Discharge Cycling</em> feature, is often the best approach for solver behavior during sudden load transitions. However, the <em>Charge–Discharge Cycling</em> feature is limited to constant current–constant voltage (CCCV) profiles, with or without rest periods, where switching is based on current and voltage thresholds. While the <em>Events</em> interface does not impose restrictions on the types of cycling scenarios that can be defined, implementing load profiles with it requires a certain level of expertise and can become cumbersome for more advanced cycling cases. To address this, the <em>Load Cycle</em> feature, an event-based functionality, was introduced in version 6.4 to simplify the process. It is designed to be both flexible and comprehensive, allowing users to define a wide range of cycling scenarios while maintaining numerical robustness.</p>
<h3>Where to Find the Load Cycle Node in the Model Tree</h3>
<p>Where to find the <em>Load Cycle</em> model tree node depends on the physics interface used in the model. In detailed battery models, such as the <em>Lithium-Ion Battery</em> and <em>Battery with Binary Electrolyte</em> interfaces shown in the screenshot below, as well as the <em>Current Distribution</em> interfaces, the <em>Load Cycle</em> node is available as a boundary condition. In such models, since the electrodes are explicitly represented, the negative side is grounded, and the load profile is assigned to the positive side to reflect the operating conditions. In cases where <em>Electrode Surface</em>, <em>Thin Porous Electrode</em>, <em>Perforated Electrode Surface</em>, or <em>Highly Conductive Porous Electrode</em> nodes are present within these interfaces, <em>Load Cycle</em> has been included as an option in the <em>Electrode Phase Potential</em> drop-down menu of these nodes. For simplified models, <em>Load Cycle</em> is included as an <em>Operation Mode</em> in the <em>Lumped Battery</em> interface and as a boundary condition for current conductors in the <em>Battery Pack</em> interface.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/Load-Cycle-feature-in-COMSOL.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="An&#x20;in-software&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;displaying&#x20;the&#x20;Load&#x20;Cycle&#x20;feature&#x20;as&#x20;a&#x20;boundary&#x20;condition&#x20;for&#x20;a&#x20;lithium-ion&#x20;battery&#x20;model&#x20;and&#x20;how&#x20;to&#x20;activate&#x20;it."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;Load-Cycle-feature-in-COMSOL.png" alt="An&#x20;in-software&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;displaying&#x20;the&#x20;Load&#x20;Cycle&#x20;feature&#x20;as&#x20;a&#x20;boundary&#x20;condition&#x20;for&#x20;a&#x20;lithium-ion&#x20;battery&#x20;model&#x20;and&#x20;how&#x20;to&#x20;activate&#x20;it." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>The</em> Load Cycle <em>feature can be found as a boundary condition by right-clicking on the</em> Lithium-Ion Battery <em>and</em> Battery with Binary Electrolyte <em>interfaces or selecting from the ribbon menu.</em></p>
<h3>What the Load Cycle Feature Offers</h3>
<p>In the <em>Load Cycle Settings</em> window, the load type can be selected. In the <em>Load Type</em> section, you can choose between <em>Galvanostatic</em>, <em>Potentiostatic</em>, or a combination of both, as shown in the screenshot below. Selecting either galvanostatic or potentiostatic limits the available operation modes to <em>Current</em> and <em>C-rate</em>, or to <em>Voltage</em>, respectively, along with the <em>Rest</em> and <em>Subloop</em> child nodes. Choosing the combined option <em>Potentiostatic and galvanostatic</em> enables access to all modes, including power.</p>
<p>Transitions between added operation modes can be based on multiple criteria, including elapsed time, cutoff values (such as voltage or current), or any user-defined expression. If the <em>Use elapsed time only</em> option is selected at the top level, transitions are restricted to elapsed-time-based (explicit) switching. Otherwise, additional options are also available to control transitions between modes.</p>
<p>The <em>Load Cycle Settings</em> window includes options for terminating the load cycle, such as limits based on total cycling time, number of cycles, voltage thresholds, or user-defined criteria. This built-in functionality allows users to define the end of cycling without manually introducing variables or adding stop conditions in the solver configuration. These conditions can be selected from the <em>Cycling Stop Condition</em> drop-down menu in the <em>Load Cycle Settings</em> window.</p>
<p>The settings also allow users to enable built-in global probes, which automatically monitor voltage and current. Using probes in the model, regardless of the physics involved, offers advantages, such as allowing you to view results without waiting for the simulation to finish, to use probe variables (which are global) in the results section, or to define expressions within the model. In battery modeling, in particular, monitoring voltage and current during the simulation is highly recommended, as it helps understand how the battery behaves under the load cycle and assists with troubleshooting.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/Load-Cycle-settings-window.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="An&#x20;in-software&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;Model&#x20;Builder,&#x20;in&#x20;particular,&#x20;the&#x20;Load&#x20;Cycle&#x20;settings&#x20;window&#x20;which&#x20;shows&#x20;the&#x20;load&#x20;type&#x20;to&#x20;be&#x20;Potentiostatic&#x20;and&#x20;galvanostatic&#x20;for&#x20;this&#x20;lithium-ion&#x20;battery."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;Load-Cycle-settings-window.png" alt="An&#x20;in-software&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;Model&#x20;Builder,&#x20;in&#x20;particular,&#x20;the&#x20;Load&#x20;Cycle&#x20;settings&#x20;window&#x20;which&#x20;shows&#x20;the&#x20;load&#x20;type&#x20;to&#x20;be&#x20;Potentiostatic&#x20;and&#x20;galvanostatic&#x20;for&#x20;this&#x20;lithium-ion&#x20;battery." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>The</em> Load Cycle Settings <em>window shows the load type selection, the option to restrict the continuation method to elapsed time only, and settings for cycling stop conditions and voltage and current probes.</em></p>
<h3>Using the Load Cycle Feature</h3>
<p>Any load profile can be defined by specifying its steps, the characteristics of each step, the transitions between them, and the conditions for stopping the cycling sequence. With the <em>Load Cycle</em> node added to the <em>Lithium-Ion Battery</em> interface (or to any <em>Electrochemistry</em> interface) and the load type set in the <em>Load Cycle Settings</em> window, construction of the load profile begins by adding the profile steps in sequence: right-click the node and add the corresponding step. Once the steps have been added and arranged as desired, each step can be customized by applying a constant value or assigning a function to capture that step’s characteristics. The input type for each step can be selected in the corresponding <em>Settings</em> window from a drop-down menu, with options for value, function, or step sequence to define the input values. Each step of the load cycle is followed by the next when the switching condition, defined through the <em>Continuation Condition</em>, is met and enforced using solver events.</p>
<p>Although using functions to define the load profile was discussed in Part 1, incorporating them into this event-based framework improves numerical stability when the load is applied to the model since function smoothing is not required. Alternatively, you can use a step sequence, which enables importing or locally define a table of times at which the set value is updated. This option is particularly useful when importing a user-defined load profile, such as a drive cycle, from a text file into COMSOL<sup>&reg;</sup>. The screenshots below represent two different load profile examples, each constructed with different steps and input types.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/UI-of-constant-current-charge-and-discharge-profile.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;a&#x20;graph&#x20;of&#x20;a&#x20;lithium-ion&#x20;battery&#x20;load&#x20;cycle&#x20;featuring&#x20;a&#x20;1C&#x20;constant-current&#x20;charge&#x20;and&#x20;discharge&#x20;profile&#x20;with&#x20;known&#x20;durations."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;UI-of-constant-current-charge-and-discharge-profile.png" alt="A&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;a&#x20;graph&#x20;of&#x20;a&#x20;lithium-ion&#x20;battery&#x20;load&#x20;cycle&#x20;featuring&#x20;a&#x20;1C&#x20;constant-current&#x20;charge&#x20;and&#x20;discharge&#x20;profile&#x20;with&#x20;known&#x20;durations." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>A 1C constant-current charge and discharge profile with known durations, with a rest period in between ad final rest step is defined using the</em> Load Cycle <em>feature.</em></p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/Drive-cycle-versus-C-rate-graph.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;a&#x20;graph&#x20;of&#x20;a&#x20;lithium-ion&#x20;battery&#x20;displaying&#x20;a&#x20;drive-cycle&#x20;based&#x20;on&#x20;a&#x20;table&#x20;of&#x20;time&#x20;versus&#x20;C-rate."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;Drive-cycle-versus-C-rate-graph.png" alt="A&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;a&#x20;graph&#x20;of&#x20;a&#x20;lithium-ion&#x20;battery&#x20;displaying&#x20;a&#x20;drive-cycle&#x20;based&#x20;on&#x20;a&#x20;table&#x20;of&#x20;time&#x20;versus&#x20;C-rate." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>A drive-cycle based on a table of time versus</em> C-rate <em>is defined by selecting “Step sequence” as the input type for the</em> C-rate.</p>
<p>To cover scenarios that require a nested loop within a main sequence, the <em>Subloop</em> child node can be added. This feature is only accessible if <em>Use elapsed time only</em> has not been selected in the <em>Load Cycle</em> settings. The <em>Subloop</em> contains its own nodes for different modes of operation, similar to the main sequence, representing a loop within the overall protocol. The <em>Subloop</em> iterates over these modes, and its duration is controlled by a selected break condition. This condition can be based on elapsed time, number of cycles, or a user-defined criterion. Once the condition is met, the simulation returns to the main sequence or, if the subloop is the final step, proceeds to the first node under the <em>Load Cycle</em> node. The screenshot below shows a simple profile with a subloop. Such a profile can be easily extended to include multiple subloops with completely different modes of operation and termination criteria.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/An-example-display-of-the-Subloop-feature.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Subloop&#x20;feature&#x20;in&#x20;the&#x20;software&#x20;as&#x20;well&#x20;as&#x20;a&#x20;graph&#x20;that&#x20;displays&#x20;a&#x20;profile&#x20;consisting&#x20;of&#x20;two&#x20;cycles&#x20;of&#x20;charge&#x20;and&#x20;discharge&#x20;pulses,&#x20;followed&#x20;by&#x20;a&#x20;charge&#x20;pulse."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;An-example-display-of-the-Subloop-feature.png" alt="A&#x20;look&#x20;at&#x20;the&#x20;COMSOL&#x20;Multiphysics&#x20;UI&#x20;showing&#x20;the&#x20;Subloop&#x20;feature&#x20;in&#x20;the&#x20;software&#x20;as&#x20;well&#x20;as&#x20;a&#x20;graph&#x20;that&#x20;displays&#x20;a&#x20;profile&#x20;consisting&#x20;of&#x20;two&#x20;cycles&#x20;of&#x20;charge&#x20;and&#x20;discharge&#x20;pulses,&#x20;followed&#x20;by&#x20;a&#x20;charge&#x20;pulse." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>The</em> Subloop <em>feature defines a profile consisting of two cycles of charge and discharge pulses, followed by a charge pulse and a rest period.</em></p>
<h3>Conclusion</h3>
<p>Although all the methods for defining load cycles covered in the <a href="/blogs/how-to-define-load-cycles-in-battery-models">Part 1</a> remain valid, the <em>Load Cycle</em> feature introduced in version 6.4 offers a more straightforward and numerically robust approach that also supports complex, custom profiles. Key aspects of this functionality have been covered in this blog, and users can now start using it in their battery simulations. Most examples in the Application Library have been updated to use this feature and can serve as demonstrations of different scenarios implemented with it.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/how-to-define-load-cycles-in-battery-models-part-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reduced-Order Modeling of Ultrasonic Pipe Measurements</title>
		<link>https://www.comsol.com/blogs/reduced-order-modeling-of-ultrasonic-pipe-measurements</link>
					<comments>https://www.comsol.com/blogs/reduced-order-modeling-of-ultrasonic-pipe-measurements#comments</comments>
		
		<dc:creator><![CDATA[Anja Diez]]></dc:creator>
		<pubDate>Thu, 07 May 2026 13:46:35 +0000</pubDate>
				<category><![CDATA[Acoustics & Vibrations]]></category>
		<category><![CDATA[Structural & Acoustics]]></category>
		<category><![CDATA[Structural Mechanics]]></category>
		<category><![CDATA[Acoustics Module]]></category>
		<category><![CDATA[Structural Mechanics Module]]></category>
		<category><![CDATA[User Perspectives]]></category>
		<guid isPermaLink="false">https://com.staging.comsol.com/blogs?p=497821</guid>

					<description><![CDATA[A guest blogger from SINTEF demonstrates how they use 2D axisymmetric simplification to reduce computation time for their pulse-echo simulations.]]></description>
										<content:encoded><![CDATA[<p><em>Guest blogger Anja Diez, a researcher in the Acoustics Group at SINTEF, shares a method for more efficiently modeling pulse-echo measurements in oil pipes.</em> </p>
<p>Pulse-echo measurements are a standard application in the oil industry for detecting material properties behind pipes. The measurement setup is simple, but modeling is challenging due to the high frequencies of ultrasonic pulses and the complexities of 3D modeling for this type of application. A 2D axisymmetric simplification can be a valuable step that reduces computation time and allows for parametric studies. In this blog post, we discuss how we used this type of simplification to improve our pipe simulations. </p>
<h3>Pulse-Echo Measurements in Pipes</h3>
<p>In the oil industry, pulse-echo ultrasonic measurements are important for obtaining information about the material properties behind an oil pipe and about the bonding of the material to the pipe. Relevant considerations are, for example:</p>
<ul>
<li>What the quality of the cement behind the pipe is</li>
<li>If the shale behind the pipe is bonded to the pipe</li>
<li>If there is a fluid-filled gap between the pipe and the solid surrounding material</li>
</ul>
<p>These considerations are important before and during production, but also during plug and abandonment operation when closing an oil field.</p>
<p>Pulse-echo measurements are used to derive the material properties outside of a pipe by measurements from inside the pipe.</p>
<p>From the circular transducer, a short Gaussian pulse is sent with normal incidence toward the pipe wall (Figure 1). Once the signal reaches the pipe wall, part of it is reflected back into the fluid toward the transducer while the other part is transmitted further through the pipe wall, to the outer material. The pulse is then reflected back and forth inside the pipe wall. Every time the pulse is reflected on the inner pipe wall part of the signal is transmitted toward the transducer.</p>
<p>These returning signals are recorded with the same transducer that is used to send the initial pulse. The decaying strength of the signal inside the pipe wall depends on the material parameters, specifically the impedances of the material inside the pipe, the pipe itself, and the material outside the pipe. The decay rate of this signal measured at the transducer can be used to estimate the material properties outside of the pipe if the properties of the pipe and the material inside the pipe are known.</p>
<div class="row">
<div class="col-sm-6">
    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/pulse-echo-concept.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="a&#x20;concept&#x20;of&#x20;the&#x20;pulse-echo&#x20;measurements&#x20;in&#x20;pipelines."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;pulse-echo-concept.png" alt="a&#x20;concept&#x20;of&#x20;the&#x20;pulse-echo&#x20;measurements&#x20;in&#x20;pipelines." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>

</div>
<div class="col-sm-6">
<script src="https://fast.wistia.com/assets/external/E-v1.js" async></script></p>
<div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;">
<div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;">
<div class="wistia_embed wistia_async_pzk8dx9fqd dnt=1 videoFoam=true" style="height:100%;position:relative;width:100%">
<div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"><img decoding="async" src="https://fast.wistia.com/embed/medias/pzk8dx9fqd/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" /></div>
</div>
</div>
</div>
</div>
</div>
<p><em>Figure 1. Concept of pulse-echo measurements in pipelines (left). An animation showing the transmitted and reflected signals (right).</em></p>
<p>Modeling this type of pulse-echo measurement in pipes is challenging due to the distance between the transducer and pipe, the high frequencies of the ultrasonic pulse, and the 3D geometric setup of a circular transducer within an elongated pipe. A 2D axisymmetric simplification is carried out with respect to the transducer symmetry axis, which proved to be a valuable step for the parametric study we were carrying out.</p>
<p>Through this model, we were able to reduce the computation time significantly, allowing us to build a database with about 1400 simulations including variations in pipe thickness and curvature, material parameters, and transducer–pipe distance, among other factors. These simulations allow for further research of the pulse-echo method, its sensitivities, and possible improvements to the interpretation of this type of data.</p>
<h3>The COMSOL Model</h3>
<p>To model this pulse-echo measurements setup correctly requires a 3D model. The transducer is circular, making it axisymmetric with the <em>x</em>-axis, while the pipe is axisymmetric with the <em>z</em>-axis (Figure 1). Hence, we can make use of two symmetry planes for this model, reducing the model domain to a quarter. Figure 2 shows the 3D model with the two implemented symmetry planes at four time steps. The ultrasonic pulse has propagated from the transducer surface (12 µs) to the pipe (36 µs), exciting acoustic waves in the pipe (52 µs), and the reflected pulse has traveled back to the transducer, where the signal is recorded (73 µs). Energy from the vibration within the pipe transmitted toward the transducer is visible behind the initial pulse in the snapshot at 73 µs. The modeling domain is surrounded by absorbing layers to ensure that no reflections of the waves occur at the domain boundaries. The <em>xy</em>-plane and the <em>xz</em>-plane are symmetric planes.</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/pulse-echo-3d-model.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;3D&#x20;modeling&#x20;results&#x20;of&#x20;a&#x20;pulse-echo&#x20;setup&#x20;inside&#x20;a&#x20;pipeline&#x20;showing&#x20;the&#x20;results&#x20;at&#x20;four&#x20;time&#x20;steps."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;pulse-echo-3d-model.png" alt="The&#x20;3D&#x20;modeling&#x20;results&#x20;of&#x20;a&#x20;pulse-echo&#x20;setup&#x20;inside&#x20;a&#x20;pipeline&#x20;showing&#x20;the&#x20;results&#x20;at&#x20;four&#x20;time&#x20;steps." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 2. 3D modeling results at four time steps, making use of two symmetry axes.</em></p>
<p>Parameters of a standard pipe and transducer geometry, common in industry applications, were implemented for the model shown in Figure 2. These parameters can be found in the table below:</p>
<table class="table-blog">
<tr>
<th>
Pipe Dimensions and Material Parameters
</th>
<td>
<ul>
<li>Pipe outer diameter: 9.625 inch</li>
<li>Pipe thickness: 13 mm</li>
<li>Material: steel AISI 4340 – impedance 45.5 MRayl</li>
</ul>
</td>
</tr>
<tr>
<th>
Material Inside Pipe
</th>
<td>
<ul>
<li>Oil-based mud – impedance 1.5 MRayl</li>
</ul>
</td>
</tr>
<tr>
<th>
Transducer Parameters
</th>
<td>
<ul>
<li>Focal length: 20 cm</li>
<li>Transducer diameter: 25 mm</li>
</ul>
</td>
</tr>
<tr>
<th>
Gaussian Pulse
</th>
<td>
<ul>
<li>Frequency: 250 kHz</li>
<li>Bandwidth: 0.7</li>
</ul>
</td>
</tr>
<tr>
<th>
Distance transducer
</th>
<td>
<ul>
<li>Transducer to Pipe: 45 mm</li>
</ul>
</td>
</tr>
</table>
<p>The time-dependent study step is computed from 0 to 140 µs to allow the propagation of the ultrasonic pulse to the pipe and back as well as the recording of a significant part of the pipe’s reverberations.</p>
<h3>Use of Time-Explicit Domain</h3>
<p>The pipe in this model is normally filled with some kind of fluid. Here, we used oil-based mud with longitudinal wave velocities of 1301 m/s. The pipe itself is of steel, with a longitudinal wave speed of 5800 m/s. We calculated the element size for the mesh using:</p>
<div class="latex">h_{el}=v/f_{max}/1.5</div>
<p>&nbsp;</p>
<p>with the element size <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAUCAQAAAA0V5VyAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8LBRjOZvRAAAAA+ElEQVQ4y52UW3HEMAxFj5aBKZiCKZiCKITCFkIKIRgWwppCIMQQGgjqRx521+mMJ/GPxqOb6B7diRj3nsdNXRGKl0ne8uxWWnUwBqPv1KXH8L3C2mMkW74DJ5D64UhZhyx8sxJwJHt1w8FjjDgDh+G64TDwc6DBiJfNvsArlxPTXkXsUhZZyroKnMh8VpcOLUGFr91h/d6PQZfGI8NxSdjQbGKUEUX3nqkNQNmhkmwVJYGMBPuyF2Hvmcvgj8ZhwoniLIvnCTKK7p7jn4AcA7bQibz/c3iOatUQdiR2PTOl2/fEi15l9RP/TBaVKCMAGYeWKMrdX8cv+kX1+yM+bVUAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADE3eDEyKzI5Nys2MzcNxFqWAAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" />, the material’s wave speed <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAMCAQAAAAXSy9vAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8KGTllutN0AAAAiklEQVQY04WOURHCMBBE33UwEAuxgIVYiIVYwEKQABJaC7EQC7VQCdsPSpowA9x93M7s7Ls18Wsm/tvm7GbZPIBFmztfCLIg8xCChMR7J7ArBfBsAHpShzRB4BFejdWlVYBI1fq9eaC8hAWWj2oCEQ+VTrRaurbs8OJy3DvJNhxoGZ6fIAKuBwuxAyISR+LqgZiqAAAALXRFWHRpY2M6Y29weXJpZ2h0AENvcHlyaWdodCBBcnRpZmV4IFNvZnR3YXJlIDIwMTEIusW0AAAAMXRFWHRpY2M6ZGVzY3JpcHRpb24AQXJ0aWZleCBTb2Z0d2FyZSBzUkdCIElDQyBQcm9maWxlEwwBhgAAAB90RVh0cHM6SGlSZXNCb3VuZGluZ0JveAA5eDcrMzAxKzYzObF3IzoAAAAedEVYdHBzOkxldmVsAFBTLUFkb2JlLTIuMCBFUFNGLTIuMEH5MxMAAAAASUVORK5CYII=" />, and the maximum frequency <img class="latexImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAWCAQAAADzsK04AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAHgAAAB4AJ31WmAAAAAHdElNRQfqBg8LBRjOZvRAAAABQ0lEQVQ4y82V0ZXCIBBF7+zZBmhhWqAFWqCFtKAlYAspwZRgSjAlSAlSwuxHUJPo/ix6zsIHCYSbd+bNgBifaF8fofL9PCWeCGTrG7i26TiuOI6cjL/3Z7WRYkV68nuDoExgY1tsny3zbTpfqJUOJZAlMTbq3RjmMVyLWXPfBsFTrLQHYYtVpnYoL9T+Z+w6ExR3w4oj4tnTkVFGFKXMBS0d4IDBMohH8fWLQ3VmlQeR6/25w3EiGQZGZxjzKolk4OacwbEzCJwNLvi6e4VNj5MAZ2CGgXIxDAInA604z7meIe72q98SzHMvAisS61tYjZHRymPW5oRc7FxYJioKeIYX9t3GyCA7Si3uwCQdiJcIBBtB0tayM4P0swUL7L4CDgAUPBMTQQKBjNZVFaWXiD5EyXzpSCLj2b+jwhbYd7cP3WU/Yprl386vNfQAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAIXRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADI2eDEzKzI5Mis2MzaDN9GSAAAAHnRFWHRwczpMZXZlbABQUy1BZG9iZS0yLjAgRVBTRi0yLjBB+TMTAAAAAElFTkSuQmCC" />. Due to the large difference in the speed of sound in steel and oil-based mud, there are significant differences in the required mesh size for these domains. Figure 3 shows the mesh size for a 2D plane. The most efficient way to model this was by using the time-explicit mode. The acoustic domain of the fluid-filled pipe and the elastic wave domain of the pipe and surrounding material were then coupled by identifying the respective surfaces as identity pairs and using the <em>Pair Acoustic–Structure Boundary</em> multiphysics coupling.</p>
<p>The domain is surrounded by absorbing layers to prevent reflections from the domain boundaries. Here, two absorbing layers were defined, one for the acoustic domain and one for the elastic wave domain. </p>
<h3>Geometry Reduction</h3>
<p>To be able to carry out parametric studies with hundreds of variations, it is important to have a model with a relatively short computation time. Hence, using the 3D model with a computation time of more than 7 hours on our machine for each model is unrealistic. Therefore, we explored the possibility of reducing the geometry dimensions.</p>
<p>A standard way to reduce the computation time is by going from a 3D simulation to a 2D simulation. Taking a slice in the <em>xy</em>-plane and making use of the pipe’s mirror symmetry makes it possible to reduce the model significantly. In this 2D case, the pipe is modeled correctly, as the 2D model assumes infinite extend in the third direction. However, the source also becomes infinite in the third direction and is therefore not modeled correctly. This leads to significant deviations between the model results from 2D models compared to 3D models for this measurement geometry (Ref. 1).</p>
<p>Another possibility to reduce the geometry dimension is the use of a 2D axisymmetric model. As pointed out, the transducer is axisymmetric with respect to the <em>x</em>-axis, while the pipe is axisymmetric with respect to the <em>z</em>-axis (Figure 1). Here, we chose to carry out the axisymmetric model so that the symmetry axis aligns with that of the transducer (Figure 3). Thus, the geometry of the circular transducer is modeled correctly. Choosing again the <em>xy</em>-plane for the modeling of the 2D-axisymmetric part means we are modeling the curvature of the pipe. However, applying the symmetry about the <em>x</em>-axis means that the pipe curvature is assumed to be axisymmetric, hence modeled as a part of a spherical shell (Figure 4).</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/pulse-echo-2d-axisymmetric-model.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="A&#x20;time&#x20;explicit&#x20;study&#x20;of&#x20;a&#x20;2d&#x20;axisymmetric&#x20;model&#x20;of&#x20;the&#x20;pulse-echo&#x20;setup."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;pulse-echo-2d-axisymmetric-model.png" alt="A&#x20;time&#x20;explicit&#x20;study&#x20;of&#x20;a&#x20;2d&#x20;axisymmetric&#x20;model&#x20;of&#x20;the&#x20;pulse-echo&#x20;setup." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 3. Building the model and grid for the 2D axisymmetric model. The time-explicit study step is used. The acoustic and solid domains are coupled by an identity pair.</em></p>
<p>Figure 4 shows the results of the wave propagation for the 2D axisymmetric model. The modeling is carried out for the domain shown in Figure 3, and the results in Figure 4 are plotted with the radial extension. The four presented time steps are the same as for the 3D model. The measured signal integrated over the transducer surface from the 2D axisymmetric and 3D model are plotted in Figure 5. (A detailed discussion of the comparison of 3D, 2D, and 2D axisymmetric models and the justification for using 2D axisymmetric models can be found in Ref. 1.)</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/pulse-echo-2d-axisymmetric-results.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;results&#x20;of&#x20;the&#x20;2d&#x20;axisymmetric&#x20;model&#x20;placed&#x20;in&#x20;the&#x20;revolved&#x20;geometry&#x20;for&#x20;four&#x20;time&#x20;steps."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;pulse-echo-2d-axisymmetric-results.png" alt="The&#x20;results&#x20;of&#x20;the&#x20;2d&#x20;axisymmetric&#x20;model&#x20;placed&#x20;in&#x20;the&#x20;revolved&#x20;geometry&#x20;for&#x20;four&#x20;time&#x20;steps." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 4. 2D axisymmetric modeling results in the revolved geometry for four time steps. The modeling domain is surrounded by absorbing layers.</em></p>
<h3>Building a Database</h3>
<p>The solution time for the 2D axisymmetric model was around 13 minutes, a significant improvement from the multiple hours of computation time for the 3D model. This speedup made it possible to build a database with hundreds of variations in the model (Ref. 2). Beside geometrical variations, we also introduced a fluid-filled annulus between the outside of the pipe and the surrounding solid material in the range of 10 to 1000 µm. We did this by making use of the advantages of the time-explicit implementation, using additional <em>Pair Acoustic–Structure Boundary</em> couplings for the transition between the fluid and solid domains. For each calculated model, the pressure at the transducer was exported and integrated over the transducer surface, giving the results of the measured signal from the pulse-echo modeling for further analysis and research (Figure 5).</p>
<p>    <a href="https://cdn.comsol.com/wordpress/sites/1/2026/05/Model-results-graph.png" class="thumbnail cmImgBox lazyload print-small"
    data-gallery="cmImgModal"
     
    caption=""
    data-cm-alt="The&#x20;model&#x20;results&#x20;of&#x20;the&#x20;pressure&#x20;over&#x20;the&#x20;transducers&#x20;surface&#x20;with&#x20;time&#x20;plotted&#x20;in&#x20;the&#x20;X&#x20;axis,&#x20;and&#x20;amplitude&#x20;normalized&#x20;on&#x20;the&#x20;Z&#x20;axis.&#x20;The&#x20;3D&#x20;and&#x20;2D&#x20;results&#x20;are&#x20;plotted&#x20;in&#x20;blue&#x20;and&#x20;orange&#x20;respectively,&#x20;and&#x20;near&#x20;identically&#x20;match&#x20;each&#x20;other."        > 
  <img id="" data-original="https&#x3A;&#x2F;&#x2F;cdn.comsol.com&#x2F;wordpress&#x2F;sites&#x2F;1&#x2F;2026&#x2F;05&#x2F;Model-results-graph.png" alt="The&#x20;model&#x20;results&#x20;of&#x20;the&#x20;pressure&#x20;over&#x20;the&#x20;transducers&#x20;surface&#x20;with&#x20;time&#x20;plotted&#x20;in&#x20;the&#x20;X&#x20;axis,&#x20;and&#x20;amplitude&#x20;normalized&#x20;on&#x20;the&#x20;Z&#x20;axis.&#x20;The&#x20;3D&#x20;and&#x20;2D&#x20;results&#x20;are&#x20;plotted&#x20;in&#x20;blue&#x20;and&#x20;orange&#x20;respectively,&#x20;and&#x20;near&#x20;identically&#x20;match&#x20;each&#x20;other." class="lazyload" src="/shared/images/graydot.gif" width="100%" />  </a>
 <em>Figure 5. COMSOL model results of the pressure over the transducer surface.</em></p>
<p>To simplify the calculation of all these models, we used LiveLink&trade; <span class="llCompany"><em class="ipFor">for</em>&nbsp;MATLAB<sup>&reg;</sup></span>, which enables the integration of COMSOL&nbsp;Multiphysics<sup>&reg;</sup> with MATLAB<sup>&reg;</sup> By doing so, we were able to drive the variation of all the calculations we were interested in automatically and export the pressure over the transducer surface. The input information and the averaged pressure over the transducer surface were then written into a JSON file. These results make up the database, which can be used for further analysis.</p>
<h3>Access the Data and Models</h3>
<p>To further explore the model discussed in this blog post, download it via the following Application Exchange entry: <a href="/community/exchange/1081/">Modeling pulse-echo ultrasonic data</a>. </p>
<p>The data generated within this project, and the 2D axisymmetric and 3D COMSOL<sup>&reg;</sup> models (v6.2), are available on Mendeley data (DOI:10.17632/3bs65nzpv2.1).</p>
<h3>References</h3>
<ol>
<li>A. Diez, T.F. Johansen, E.M. Viggen, &#8220;From 3D to 1D: Effective numerical modelling of pulse-echo measurements in pipes,&#8221; <em>Proc. 46th Scandinavian Symposium on Physical Acoustics</em>, pp. 1–23, 2023; ISBN 978-82-8123-023-1.</li>
<li>A. Diez, E.M. Viggen, T.F. Johansen, &#8220;Ultrasonic pulse-echo dataset from numerical modelling for oil and gas well integrity investigations,&#8221; <em>Sci Data</em> 12, 544, 2025; <a href="https://doi.org/10.1038/s41597-025-04851-x" target="blank">https://doi.org/10.1038/s41597-025-04851-x</a></li>
</ol>
<h3>Acknowledgement</h3>
<p>This work was a collaboration between A. Diez, T.F. Johansen (SINTEF), and E.M. Viggen (Norwegian University of Science and Technology) for the Centre for Innovative Ultrasound Solutions, funded by the Research Council of Norway under grant no. 237887.</p>
<h3>About the Author</h3>
<p>Anja Diez is a researcher in the Acoustics Group at SINTEF. She has a background in geophysics and worked the first years of her career using seismics and ground-penetrating radar to investigate the ice sheets in Antarctica and Svalbard, determining ice properties and conditions at the glacier bed. In recent years, she has worked on acoustic projects related to industrial applications and nondestructive testing, combining signal processing and data analysis with COMSOL<sup>&reg;</sup> modeling for wave propagation in fluids and solids.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.comsol.com/blogs/reduced-order-modeling-of-ultrasonic-pipe-measurements/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>