solids.elastic
Three longitudinal wave speeds of a solid, and which one a table prints.
A solid carries more than one longitudinal wave, and which one a number belongs to depends on the shape the wave travels in, not on the material. The three are
and they are not interchangeable. Take the steel of Hopkins Table A2,
rho = 7800 kg/m3, nu = 0.28 and a plate speed of 5 270 m/s, which is a
Young’s modulus of 200 GPa: the beam speed is 5 059 m/s and the bulk speed is
5 720 m/s. Reading one into another is a four to thirteen per cent error in
whatever it feeds, and the gap grows with Poisson’s ratio. The first two are
Hopkins (2007) Eqs. (2.20) and
(2.21), PDF page 144 (printed p. 117), which also records that the b and
p subscripts are dropped later in that book and the plate value is then
called cL with no qualifier at all. The third is Norton & Karczub (2003)
2e Eq. (1.225), PDF page 94 (printed p. 74), the wave velocity of a pure
longitudinal wave, after Fahy.
Which one a printed table holds has to be read off its own page, and the answer is not always the one the column heading suggests. EN 12354-1 Table B.3, Hopkins Table A2 and Mechel Table 3 tabulate the plate value; a table of bulk wave speeds, which is what an elastic solver integrates, is a different table. This module exists so the conversion between them is written once, named after the shape it belongs to, and never done in a caller’s head.
Each speed has its inverse here as well, because a catalogue is built from whatever its sources happened to print: Hopkins prints the plate speed and no Young’s modulus, Cremer and Mechel print the modulus and no speed, and the two only meet through these six functions.
Auto-generated from the source docstrings by
scripts/generate_api_docs.py(make api-docs). Do not edit by hand.
beam_longitudinal_speed
Section titled “beam_longitudinal_speed”beam_longitudinal_speed( youngs_modulus_pa: float, *, density_kg_m3: float,) -> floatQuasi-longitudinal wave speed along a beam (Hopkins Eq. 2.20).
. A beam is unconstrained on its sides, so the lateral strains cost nothing and Poisson’s ratio does not appear.
Parameters
| Name | Description |
|---|---|
youngs_modulus_pa | Young’s modulus E, in pascals (> 0). |
density_kg_m3 | Density rho, in kg/m3 (> 0). |
Returns: The wave speed, in m/s.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive input. |
bulk_longitudinal_speed
Section titled “bulk_longitudinal_speed”bulk_longitudinal_speed( youngs_modulus_pa: float, *, density_kg_m3: float, poisson_ratio: float,) -> floatPure longitudinal wave speed in an unbounded solid (Norton Eq. 1.225).
with the longitudinal modulus . Nothing is free to move sideways, which is why this is the fastest of the three and why it is the speed an elastic solver integrates.
Parameters
| Name | Description |
|---|---|
youngs_modulus_pa | Young’s modulus E, in pascals (> 0). |
density_kg_m3 | Density rho, in kg/m3 (> 0). |
poisson_ratio | Poisson’s ratio nu, between -1 and 0.5. |
Returns: The wave speed, in m/s.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive input or a ratio out of range. |
DEFAULT_SPEED_OF_SOUND_M_S
Section titled “DEFAULT_SPEED_OF_SOUND_M_S”Constant (float).
DEFAULT_SPEED_OF_SOUND_M_S = 343.0plate_longitudinal_speed
Section titled “plate_longitudinal_speed”plate_longitudinal_speed( youngs_modulus_pa: float, *, density_kg_m3: float, poisson_ratio: float,) -> floatQuasi-longitudinal wave speed along a plate (Hopkins Eq. 2.21).
. The plate is
constrained across its width, which stiffens it by
against the beam of beam_longitudinal_speed.
This is the value the building-acoustics tables print, and the one the critical frequency of a wall or floor is computed from.
Parameters
| Name | Description |
|---|---|
youngs_modulus_pa | Young’s modulus E, in pascals (> 0). |
density_kg_m3 | Density rho, in kg/m3 (> 0). |
poisson_ratio | Poisson’s ratio nu, between -1 and 1. |
Returns: The wave speed, in m/s.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive input or a ratio out of range. |
thickness_critical_frequency_product
Section titled “thickness_critical_frequency_product”thickness_critical_frequency_product( plate_speed_m_s: float, *, speed_of_sound: float = 343.0,) -> floatThe h f_c a materials table prints, from the plate wave speed.
which is the critical frequency of a thin plate multiplied by the thickness it was computed for, so the product is a property of the material alone. Hopkins Table A2, Long Table 9.1 and Mechel Table 3 each print this column, which makes it the cheapest cross-check there is between three books that otherwise share no column at all.
The constant here is the exact of the
thin-plate dispersion relation, which is what
phonometry.vibration.coincidence_frequency computes and what
reproduces the printed column: Hopkins states c0 = 343 m/s in the
heading of Table A2 and prints 12.3 m Hz for steel, which this returns and
the rounded 1.8 of ISO 12354-1 misses by 0.8 per cent (12.40).
phonometry.building.critical_frequency keeps the rounded constant,
because there it is the standard’s own arithmetic and not the material’s.
Parameters
| Name | Description |
|---|---|
plate_speed_m_s | Plate wave speed cL,p, in m/s (> 0). |
speed_of_sound | Speed of sound in air c0, in m/s (> 0). |
Returns: The product h f_c, in Hz m.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive input. |
youngs_modulus_from_beam_speed
Section titled “youngs_modulus_from_beam_speed”youngs_modulus_from_beam_speed( longitudinal_speed_m_s: float, *, density_kg_m3: float,) -> floatYoung’s modulus from a beam wave speed, the inverse of Eq. 2.20.
.
Parameters
| Name | Description |
|---|---|
longitudinal_speed_m_s | Beam wave speed cL,b, in m/s (> 0). |
density_kg_m3 | Density rho, in kg/m3 (> 0). |
Returns: Young’s modulus E, in pascals.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive input. |
youngs_modulus_from_bulk_speed
Section titled “youngs_modulus_from_bulk_speed”youngs_modulus_from_bulk_speed( longitudinal_speed_m_s: float, *, density_kg_m3: float, poisson_ratio: float,) -> floatYoung’s modulus from a bulk wave speed, the inverse of Eq. 1.225.
.
Parameters
| Name | Description |
|---|---|
longitudinal_speed_m_s | Bulk wave speed cL', in m/s (> 0). |
density_kg_m3 | Density rho, in kg/m3 (> 0). |
poisson_ratio | Poisson’s ratio nu, between -1 and 0.5. |
Returns: Young’s modulus E, in pascals.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive input or a ratio out of range. |
youngs_modulus_from_plate_speed
Section titled “youngs_modulus_from_plate_speed”youngs_modulus_from_plate_speed( longitudinal_speed_m_s: float, *, density_kg_m3: float, poisson_ratio: float,) -> floatYoung’s modulus from a plate wave speed, the inverse of Eq. 2.21.
. This is what turns a table
that prints cL and nu and no modulus, such as Hopkins Table A2,
into one that can be compared with a table that prints the modulus.
Parameters
| Name | Description |
|---|---|
longitudinal_speed_m_s | Plate wave speed cL,p, in m/s (> 0). |
density_kg_m3 | Density rho, in kg/m3 (> 0). |
poisson_ratio | Poisson’s ratio nu, between -1 and 1. |
Returns: Young’s modulus E, in pascals.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive input or a ratio out of range. |