PyBashProj

  • About Me
  • Contact
  • Acoustic
  • Bash
  • Vibration

Point Sound Source

Published: Mon 20 October 2025
By Ajay P.

In Acoustic.

Exploring Acoustic Pressure from a Point Source

Sound surrounds us every day—through music, conversations, or the steady buzz of machines. At the core of acoustics lies the idea of sound pressure, which helps us understand how sound travels and interacts with its environment. One of the simplest ways to explore this is by using a point source model. In this guide, we’ll explore how sound pressure behaves, how we simulate it using computer methods like FEM, and how to visualize it with Python.

What Is a Point Sound Source?

Imagine a tiny speaker that emits sound equally in all directions. This is called a monopole point source. The sound pressure it creates at a distance \(r\) is given by:

$$ p(r) = \frac{\dot{Q} \cdot \rho_0 \cdot c_0}{4\pi} \cdot \frac{e^{-jkr}}{r} $$

Where:

  • \(\dot{Q}\) is the source strength (how much air it pushes),
  • \(\rho_0\) is the air density,
  • \(c_0\) is the speed of sound,
  • \(k = \omega / c_0\) is the wave number,
  • \(r\) is the distance from the source.

This formula shows that pressure decreases as you move away from the source—like ripples fading in a pond.

What Happens at the Source Point?

Here’s the catch: when \(r = 0\), the formula becomes infinite! That’s a singularity—a point where math breaks down. In real life, no speaker is truly a point, so this isn’t a problem. But in simulations, especially using Finite Element Analysis (FEA), it causes trouble.

Acoustic FEM (Finite Element Method) is a powerful technique used to simulate how sound waves behave in complex environments. It helps engineers and researchers analyze sound pressure, vibration, and wave propagation in structures like rooms, speakers, engines, and more. Instead of solving equations everywhere at once, FEM breaks the space into small elements and solves the physics locally, making it ideal for irregular shapes and materials.

The main equation solved in acoustic FEM is the Helmholtz equation, which models steady-state sound waves:

$$ \nabla^2 p + k^2 p = S(\mathbf{r}) $$

Here, \(p\) is the acoustic pressure, \(k\) is the wave number, and \(S(\mathbf{r})\) is the source term.

This equation captures how pressure varies in space due to a sound source. FEM turns this into a system of equations that can be solved numerically, giving detailed insight into how sound behaves across the entire domain.

Here’s a fun twist from the world of acoustic simulations: first time when I tried to verify the pressure at the exact location of a point source in my FEA model, I expected to see a nice, clean value that matched the actual amplitude applied in FEA. Instead, I got wildly unpredictable results—sometimes huge spikes, sometimes near-zero values. It felt like the simulation was playing tricks on me! Turns out, the math behind a point source says the pressure goes to infinity at the source itself, so trying to measure it there is like asking how loud a speaker is from inside the speaker cone—it's undefined.

That’s when I relearned the golden rule: never trust the pressure at \(r = 0\) in FEA for a point source. Back to Basic. The correct approach is to measure pressure at a small distance away from the source, where the formula behaves nicely and the simulation gives stable results. It was a great reminder that even in high-tech simulations, physics still has the final say!

Visualizing Pressure with Python

Let’s plot how pressure changes with distance using Python:

import numpy as np
import matplotlib.pyplot as plt

# Constants
rho0 = 1.21       # Air density (kg/m^3)
c0 = 343.0        # Speed of sound (m/s)
f = 1000.0        # Frequency (Hz)
omega = 2 * np.pi * f
k = omega / c0
Qdot = 1e-5       # Source strength (m^3/s)

# Pressure formula
prefactor = Qdot * rho0 * c0 / (4 * np.pi)
r = np.linspace(1., 10.0, num= 100)  # Avoid r=0
p = prefactor * np.exp(-1j * k * r) / r
p_mag = np.abs(p)

p_db = 20*np.log10(p_mag/(2e-5))

# Plot
plt.plot(r, p_db)
plt.xlabel("Distance from source (m)")
plt.ylabel("Pressure Level (dB)")
plt.title("Sound Pressure Level from a Point Source")
plt.grid(True)
plt.show()

This graph shows how pressure drops as you move away from the source—just like sound fading with distance.

A simple thumb rule in acoustics is: every time you double the distance from a point sound source, the sound pressure level (SPL) drops by about 6 decibels (dB). This is known as the inverse square law for sound in open space.

Why does this happen? Because sound energy spreads out in all directions, and as you move farther away, that energy is spread over a larger area. Mathematically, sound pressure decreases proportionally to \(1/r\), and SPL (in decibels) decreases by \(20 \log_{10}(r)\). So if you're 1 meter away and move to 2 meters, the SPL drops by roughly 6 dB. Go to 4 meters, and it drops another 6 dB. This rule helps estimate how loud a sound will be at different distances—perfect for designing speakers, auditoriums, or noise control systems.

How to Calculate Sound Pressure Level

Following formula is used in python code mentioned above for calculating Sound Pressure Level (SPL) in decibels:

$$ \text{SPL (dB)} = 20 \log_{10} \left( \frac{p}{p_{\text{ref}}} \right) $$

where, \(p\) is the measured sound pressure and \(p_{\text{ref}} = 2 \times 10^{-5}\) Pa.

Pascal (Pa) is the SI unit of pressure, defined as one newton per square meter (N/m²).

The reference sound pressure in SI units is 20 micropascals (20 μPa), or \(2 \times 10^{-5}\) pascals. This is considered the threshold of human hearing in air at 1 kHz.

Why This Matters

Understanding how sound behaves helps us design better speakers, quieter machines, and even medical devices like ultrasound. Acoustics is a blend of physics, math, and engineering—and it’s full of fascinating challenges.

© 2025 Ajay P. | Email: pybashproj@proton.me | Built with Python