Workflow
Sound radiation & rooms
Every acoustic method in inWaves lives behind one button: Simulation ▸ Acoustic Solve ▸ Choose acoustic method…. All of them are listed at once, including the ones that cannot run on your scene, which stay visible with the reason.
The two questions the dialog asks
The chooser is split along the physical chain:
- Motion → Sound. You have a vibration or a motion and you want the sound it puts into the air. Each card names its input: a mode set, a transducer signal or a stored motion record.
- Direct Acoustics. No mesh, no motion solve. A source and a bounded volume are enough.
Each card carries a cost chip (fast, balanced, slow), what the method buys you and what it cannot do.
1. Rigid-body radiation from a measured signal
The shortest path from a measurement to a sound field. The body is applied rigidly, so it suits a stiff housing, a cone or a centre-driven panel. It is wrong for anything whose own bending is the story.
- Import a measurement with an acceleration or velocity channel (Import Signal… (WAV/CSV/UFF)). A pressure or voltage channel cannot drive a transducer and is rejected.
- Place the drive: Actuators ▸ Transducer, on a node of the meshed part, with a direction. Every transducer in the scene drives together.
- Place at least one Sensors ▸ Microphone at the coordinate your specification names.
- Decide the boundary. The button in Acoustic Solve shows the current one and its α, and opens Acoustic room, where Boundary condition is Free field (no reflection) or Shoebox room (image source). For a shoebox, set the corners (or press Fit to scene), then Absorption α (all walls) and Max reflection order.
- Open the chooser and pick Rigid body: Rayleigh integral or Rigid body: BEM (boundary elements).
Which is honest. Rayleigh scales linearly with element count and is exact for a flat, baffled radiator. It carries no scattering and no shadowing, and a closed body reads systematically high. BEM solves the exterior Helmholtz problem on the real surface, so diffraction, shadowing and material absorption are included, at a cost going as the square of the element count and a practical ceiling around ten thousand elements.
Boundary elements need bempp-cl, which exists only in the desktop build. Elsewhere the card is greyed and says so in place. Use Rayleigh instead. The two-way FSI variant disappears with it.
2. Flexible-body radiation: modes first, then sound
When the body's own bending is what radiates, the surface velocity has to come from a modal solution. Solve modes, then radiate them.
- Give the part a volume (tetrahedral) mesh and solve Solve Modes. See Structural: mesh to modes.
- Set Settings ▸ Simulation Settings ▸ Radiation & FEM ▸ Modal damping ζ. The radiated level follows it: steel around 0.001 rings long, a damped assembly around 0.03 does not. The same tab holds Upper frequency f_max, the Radiating-element limit and the Field-map resolution (n×n).
- In the chooser pick Flexible body: FEM modal + acoustics, then the Radiating mode set and the Radiation method.
The Radiation method list, in order of fidelity:
- Fast: Rayleigh integral: baffled, the body transparent to its own sound. Correct when the radiator is essentially planar.
- Rayleigh + shadowing (the body blocks its own sound): the same integral with geometric occlusion. Valid above the diffraction threshold.
- Realistic: BEM (scattering/diffraction): scattering and diffraction solved rather than approximated. Shadowing then becomes unnecessary.
- Fully coupled: BEM + two-way FSI: the air loads the structure back. Offered only where the chain supports it and BEM is available.
With more than one mode set in the scene the card offers Parts radiating together: check the parts that radiate into the same field.
Imposed motion: base excitation is the shaker test: the transducers impose the measured acceleration rather than a force. It needs a mode set solved with imposed motion enabled. Motion → sound: rigid-body contact radiates a stored motion record, covered in Motion, contact & flow.
3. Rooms by ray tracing
No mesh, no structural solve. A boundary, a source and listeners are the whole model.
- Define the volume: Acoustic Solve ▸ the boundary button ▸ Shoebox room (image source), with corners from Min corner X through Max corner Z (ceiling), or press Fit to scene. The source and every microphone must sit inside it; the solve refuses by name and offers to grow the boundary.
- Set absorption. Absorption α (all walls) is the single-number route: α = 0.05 is a hard wall, α = 0.99 approaches an anechoic wedge. For an octave-band surface, assign a boundary material from the library. A structural material has no α and is refused rather than treated as reflective.
- Place the source: Actuators ▸ Loudspeaker. Type Position X and the Look-at X point it aims at, then Driver diameter (0 = omni), which sets coverage as a baffled piston: a large driver narrows the beam at high frequency. Gain and Delay let a multi-source system interfere as the real one would. Signal to play attaches programme material for auralisation.
- Place listeners: Sensors ▸ Microphone, one per seat you care about.
- Tune the trace in Settings ▸ Simulation Settings ▸ Room Acoustics: Ray count (more rays, less noise, linearly more time), Maximum trace time (roughly half the expected T30 is enough data; a room that rings past it has its T30 clipped), Seat map: X divisions, Seat map: Y divisions and Ear height (above the floor). Air absorption comes from Environment ▸ Temperature and Relative humidity, computed to ISO 9613-1. All of it is saved with the project.
- Run Hall acoustics: ray tracing, choosing the Source if the scene has more than one.
The result appears in the tree as four views plus one row per listener, each with its own T30. Seat map paints the selected parameter over the seating grid at the selected band. Arrival directions draws the first 200 ms as spikes from the first seat: spike direction is arrival direction, length is level, legend early to late. Past 200 ms the field is diffuse and an individual arrival means nothing. Echogram opens the band's decay as a chart. Band values plots the selected parameter across octave bands, and for T30 draws Eyring (classical estimate) alongside.
ISO 3382 parameters, per band and per listener: T30, EDT, C80, C50, D50, Ts (centre time), G (strength) and LF (lateral energy). Results are quoted at 1 kHz by default.
Ray tracing is geometric: no phase, no wave interference. Below the room's Schroeder frequency the room is modal and the answer is not trustworthy. The solve computes that frequency for your volume. In a small room it covers most of the interesting band; use the wave solver below there.
Sabine's RT60, reported when you define the boundary, assumes a diffuse field and stays finite even at α = 1. When absorption is high enough that the formula no longer holds, inWaves says so and asks you to read the number as "short" rather than as a measurement. Source directivity is a baffled piston of the diameter you typed, not measured balloon data.
4. Auralisation: listening to the room
Auralisation: listen renders the first microphone binaurally into a playable result in the tree. It needs a ray-tracing solve and a listener; a loudspeaker with a Signal to play supplies programme material, and several playing speakers sum as pressures. Its ray settings live under Settings ▸ Simulation Settings ▸ Auralisation. Two limits: the head is a spherical model, not a measured HRTF, so no height and no front/back discrimination; and absolute dB SPL is not calibrated. Left/right separation and envelopment are right. The run reports its IACC; a low value means enveloping.
5. The time-domain wave solver
Two cards march the wave equation directly, and both are slow on purpose. Wave equation: room (modal region) solves the room itself: modes and phase come out, and it is the only valid method below the Schroeder frequency. It needs a closed volume and at least one microphone. Wave equation: full vibro-acoustic solves the air around the bodies instead, cutting the air region from the scene boundary. It requires parts that still carry their STEP solid; cutting against a triangulated surface would corrupt the radiating area.
Work scales as the fourth power of the upper frequency: three powers from the volume mesh, one from the CFL time step. Doubling Upper frequency f_max makes the run sixteen times longer. The core computes the ceiling for your volume and refuses above it. Treat it as a reference, not an everyday tool.
6. Reading acoustic results
A radiation run puts its views in the project tree; clicking one loads it into the 3D scene:
- SPL field map. A cross-sectional map at the selected frequency, in dB re 20 µPa. The colour bar is editable: type into the top and bottom numbers to fix the range, otherwise each run auto-scales to its own extremes. The colormap chooser offers Sequential (viridis) and Diverging (two-ended). A pill switches between the body surface, a point grid and an iso-level presentation.
- Directivity diagram. The balloon or polar plot in the named plane, radius proportional to level. Directivity angle count sets its angular resolution.
- Surface pressure. Pressure on the radiating surface at one frequency. Surface wavefront is the same quantity animated.
- Wavefront. The instantaneous pressure field animated, with a slow-motion factor, phase and speed controls and Stop the animation. The legend reads Instantaneous pressure [Pa], a signed field: use the diverging colormap for it.
- Virtual microphone and accelerometer rows are real signal sets: Listen / download ▸ ▶ Play to hear one, WAV / CSV to export it.
The ✕ on a run's row removes the signals it produced with it (Delete the run and everything it produced).
When a microphone signal came from the coupled flow solver rather than a vibrating surface, its far field is a compact Curle dipole. That model propagates loading noise, the tonal blade-passing part, and none of turbulence's quadrupole contribution. Broadband sources are under-represented in the far signal. Read such a far-field spectrum as tonal content plus a broadband floor you should not quote. Details in Motion, contact & flow.
A baffled piston has a closed-form field. The shipped piston.iwp project is that case, benchmarked against the analytic on-axis pressure to within 0.13 % at 250, 500 and 1000 Hz. Build the same disc yourself and you should land in the same place. If not, check the mesh and the requested band.
A room's T30 should track a diffuse-field estimate where that estimate is valid. The Band values chart draws Eyring next to your T30. Expect agreement in the diffuse, moderately absorbing middle, and divergence in a specular box, which rings longer than the formula predicts, and at high absorption, where the formula itself stops applying.
Doubling the ray count must not move a converged answer. Run the room, double Ray count, run again. If T30 or C80 shifts by more than the noise you are willing to quote, the first run was under-sampled. Same test for Maximum trace time: if extending it changes T30, the decay was being clipped.
The BEM path is checked against closed-form spheres (a pulsating sphere to within 0.4 %, NAFEMS CA1 to a worst-case 0.41 %) and against published vendor results on the same problem. Mesh independence is shown on the sphere case, where three refinements converge to +0.03 %. The piston and room paths carry no equivalent refinement sweep, so on your own geometry run the convergence check above. Full record: verification record.
Next: Motion, contact & flow: where a stored motion record comes from, and how the coupled flow solver makes sound of its own.