<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Solid Mechanics on Keqi's blog</title><link>https://yekq.top/en/tags/solid-mechanics/</link><description>Recent content in Solid Mechanics on Keqi's blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>plloningye@gmail.com (Keqi Ye)</managingEditor><webMaster>plloningye@gmail.com (Keqi Ye)</webMaster><copyright>Keqi Ye</copyright><lastBuildDate>Tue, 26 May 2026 11:30:00 +0800</lastBuildDate><atom:link href="https://yekq.top/en/tags/solid-mechanics/index.xml" rel="self" type="application/rss+xml"/><item><title>1D Elastic Uniaxial Strain Wave Validation - GASPHiA Test Case</title><link>https://yekq.top/en/posts/gasphia/1d-elastic-uniaxial-strain-wave/</link><pubDate>Tue, 26 May 2026 11:30:00 +0800</pubDate><author>plloningye@gmail.com (Keqi Ye)</author><guid>https://yekq.top/en/posts/gasphia/1d-elastic-uniaxial-strain-wave/</guid><description>&lt;h1 id="1d-elastic-uniaxial-strain-wave-validation">1D Elastic Uniaxial Strain Wave Validation
&lt;/h1>&lt;h2 id="overview">Overview
&lt;/h2>&lt;p>A rigid piston on the right pushes an aluminum linear-elastic rod at constant velocity, with the left end fixed. The system propagates a one-dimensional elastic uniaxial strain compression wave. This case does not involve flyer-plate impact, plastic yielding, or nonlinear Hugoniot relations, making it suitable for verifying GASPHiA&amp;rsquo;s accuracy in computing &lt;strong>elastic longitudinal wave speed, pressure plateau, deviatoric stress plateau, and total axial stress plateau&lt;/strong>.&lt;/p>
&lt;p>Results from this run:&lt;/p>
&lt;ul>
&lt;li>Longitudinal wave speed relative error: ~&lt;code>1.80%&lt;/code>&lt;/li>
&lt;li>Pressure plateau relative error: ~&lt;code>0.24% - 0.27%&lt;/code>&lt;/li>
&lt;li>Deviatoric stress plateau relative error: ~&lt;code>1.01% - 1.04%&lt;/code>&lt;/li>
&lt;li>Total axial stress plateau relative error: ~&lt;code>0.48% - 0.51%&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>When modifying the elastic EOS, strength model, stress update, or boundary treatment, this case serves as a quick regression test.&lt;/p>
&lt;p>&lt;img src="https://yekq.top/posts/gasphia/1d-elastic-uniaxial-strain-wave/elastic_wave_validation.png"
width="2491"
height="2911"
srcset="https://yekq.top/posts/gasphia/1d-elastic-uniaxial-strain-wave/elastic_wave_validation_hu4f0a5b9d5b35e1ee602c81a642f16504_167479_480x0_resize_box_3.png 480w, https://yekq.top/posts/gasphia/1d-elastic-uniaxial-strain-wave/elastic_wave_validation_hu4f0a5b9d5b35e1ee602c81a642f16504_167479_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="1D Elastic Uniaxial Strain Wave Validation"
class="gallery-image"
data-flex-grow="85"
data-flex-basis="205px"
>&lt;/p>
&lt;hr>
&lt;h2 id="theoretical-solution-and-validation-metrics">Theoretical Solution and Validation Metrics
&lt;/h2>&lt;p>For a one-dimensional elastic uniaxial strain compression wave, the theoretical relations are:&lt;/p>
$$
c_L = \sqrt{\frac{K + 4G/3}{\rho_0}}
$$
$$
\varepsilon_{xx} = \frac{U_p}{c_L}
$$
$$
P = K \varepsilon_{xx}
$$
$$
|S_{xx}| = \frac{4G}{3}\varepsilon_{xx}
$$
$$
|\sigma_{xx}| = P + |S_{xx}| = \rho_0 c_L U_p
$$
&lt;p>Parameters used in this case:&lt;/p>
&lt;ul>
&lt;li>Initial density: &lt;code>\rho_0 = 2700 kg/m^3&lt;/code>&lt;/li>
&lt;li>Bulk modulus: &lt;code>K = 75.2 GPa&lt;/code>&lt;/li>
&lt;li>Shear modulus: &lt;code>G = 26.0 GPa&lt;/code>&lt;/li>
&lt;li>Piston velocity: &lt;code>U_p = 100 m/s&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>The resulting theoretical values:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Quantity&lt;/th>
&lt;th style="text-align:left">Theoretical Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Longitudinal wave speed &lt;code>c_L&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>6378.98 m/s&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Pressure plateau &lt;code>P&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>1.1789 GPa&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Deviatoric stress plateau `&lt;/td>
&lt;td style="text-align:left">Sxx&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Total axial stress plateau `&lt;/td>
&lt;td style="text-align:left">\sigma_{xx}&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The simulation results should be compared against the following metrics:&lt;/p>
&lt;ol>
&lt;li>Whether the wave front propagation speed is close to &lt;code>c_L&lt;/code>&lt;/li>
&lt;li>Whether the post-wave pressure plateau is close to the theoretical value&lt;/li>
&lt;li>Whether the post-wave deviatoric stress plateau is close to the theoretical value&lt;/li>
&lt;li>Whether the total axial stress plateau is stable and of the correct order of magnitude&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="how-to-run">How to Run
&lt;/h2>&lt;p>Test directory:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">GASPHiA-Tests/1D_Elastic_Uniaxial_Strain_Wave
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Run with:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">./run_all.sh --source-dir /path/to/GASPHiA --cuda &lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>The script performs the following steps in sequence:&lt;/p>
&lt;ol>
&lt;li>Compile the initial condition generator&lt;/li>
&lt;li>Generate &lt;code>input/input_1d_uniaxial_strain.h5&lt;/code>&lt;/li>
&lt;li>Compile GASPHiA using the local &lt;code>para.cuh&lt;/code>&lt;/li>
&lt;li>Run &lt;code>ust.ini&lt;/code>&lt;/li>
&lt;li>Post-process the output and generate validation plots&lt;/li>
&lt;/ol>
&lt;p>A noteworthy engineering detail: compilation uses &lt;code>PARA_CUH&lt;/code> to point to the &lt;code>para.cuh&lt;/code> in this case directory, rather than copying test parameters into the main source tree. This prevents polluting the main project configuration when switching between different tests.&lt;/p>
&lt;hr>
&lt;h2 id="result-interpretation">Result Interpretation
&lt;/h2>&lt;p>The validation plot above shows numerical results at three time instants — &lt;code>20 us&lt;/code>, &lt;code>40 us&lt;/code>, and &lt;code>60 us&lt;/code> — compared against theoretical plateaus. The three rows correspond to:&lt;/p>
&lt;ul>
&lt;li>Pressure &lt;code>P&lt;/code>&lt;/li>
&lt;li>Deviatoric stress magnitude &lt;code>|Sxx|&lt;/code>&lt;/li>
&lt;li>Total axial stress magnitude &lt;code>|\sigma_{xx}|&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Key features observable from the plot:&lt;/p>
&lt;ol>
&lt;li>The wave front propagates from right to left at a steady speed, with positions close to the reference positions given by the theoretical wave speed.&lt;/li>
&lt;li>The post-wave plateaus are flat, with no apparent non-physical oscillations.&lt;/li>
&lt;li>The pressure, deviatoric stress, and total stress values all fall near the theoretical values, indicating that the EOS and stress decomposition coupling is self-consistent.&lt;/li>
&lt;/ol>
&lt;p>Compared to more complex impact cases, this test involves no wave system interference, fragmentation, plasticity, or pore compaction processes. Its value lies in its structural simplicity, making it easy to pinpoint deviations to specific implementation modules.&lt;/p>
&lt;hr>
&lt;h2 id="actual-run-data">Actual Run Data
&lt;/h2>&lt;p>Key metrics extracted from this run:&lt;/p>
&lt;h3 id="wave-speed">Wave Speed
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Metric&lt;/th>
&lt;th style="text-align:left">Value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Theoretical wave speed &lt;code>cL_ref&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>6378.98 m/s&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Numerical wave speed &lt;code>cL_num&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>6494.04 m/s&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Relative error&lt;/td>
&lt;td style="text-align:left">&lt;code>1.80%&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="plateau-metrics-at-three-sampling-times">Plateau Metrics at Three Sampling Times
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Time&lt;/th>
&lt;th style="text-align:left">Wave Front Position Error&lt;/th>
&lt;th style="text-align:left">Pressure Plateau Error&lt;/th>
&lt;th style="text-align:left">Deviatoric Stress Plateau Error&lt;/th>
&lt;th style="text-align:left">Total Stress Plateau Error&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>20 us&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>-2.06 mm&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>0.24%&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>1.01%&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>0.48%&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>40 us&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>-4.24 mm&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>0.26%&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>1.03%&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>0.50%&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>60 us&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>-6.67 mm&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>0.27%&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>1.04%&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>0.51%&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>From the plateau metrics, the results are stable overall, with pressure and total stress errors in particular well under control. The wave front position error accumulates slightly with propagation time, but remains within an acceptable range overall.&lt;/p></description></item></channel></rss>