An enclosure design software is supposed to help a designer calculate the optimum dimensions of the predefined geometry of a speaker cabinet. Such a geometry includes the box and the ports -if any- as well. The optimum amount of sound absorbing material is also expected to be determined.
Ideally such a software should evaluate the SPL response of the bass drivers and the ports -if any- at a nearby reference point (usually on tweeter axis at 1m) for a frequency range of 20 to 1000Hz. These responses should be as accurate as possible. For this they should include the following effects:
a) edge diffraction step,
b) mutual coupling between bass drivers and ports,
c) the formation of standing wave modes within the enclosure and
d) the presence of sound absorbing material.
Factors a,c and d have a strong impact and can't be neglected. Most software implementations available today (ie. early 2015) are only an online computation of simple Thiele-Small-Margolis equations of the late seventies at which none of these factors was accounted for.
If we use these simplified equations as a reference for the computation of SPL responses, it is worth noting that:
a) Edge diffraction adds an "error" of 3 to 6 dB over the range of 600 to 20Hz in an approximately uniform and definitely slowly changing manner. It is therefore not a good idea to neglect this factor. Algorithms that evaluate it are slow and rather big for online implementation. They need all external enclosure dimensions and exact driver/port locations. A program that doesn't ask for or use default values for these parameters simply doesn't account for baffle diffraction step.
b) Mutual coupling between any possible pair of bass sources (either woofer driver or port) creates a small and slowly varying "error" response with respect to conventional Thiele-Small-Margolis computation, mainly below 120Hz and with a rather small dB amplitude (less than 1dB). It can be neglected in single woofer speakers or double-woofer speakers with woofer diameter less than 8''. Again algorithms that evaluate it are slow and rather big for online implementation. They need exact driver/port locations. A program that doesn't ask for or use default values for these parameters simply doesn't account for mutual coupling.
c) Standing waves formed within the volume of a speaker's cabinet create their own SPL response full of narrow-in-frequency peaks and dips, usually in the range of 100-1500Hz. These narrow dB "spikes" cause rather minor perturbations to all woofer driver SPL responses because they are actually damped by cabinet (wooden) walls and/or sound absorbing material -if present. However a very strong version of these peaks and dips invades port (vent) radiation and its associated SPL response. Peaks are perceived as annoying whistling noises emitted by speaker ports and easily detected by listeners especially when the reproduced signal includes female vocals.
Displacing drivers and/or vents by a few centimeters or changing cabinet height can effectively suppress these unwanted vent emissions and produce what we call an "optimised design". Unfortunately algorithms that incorporate the standing-wave approach are extremely CPU-intensive and therefore unsuitable for online implementation. They need interior cabinet dimensions, driver/port locations on the baffle and cabinet wood material data. Thus a program that doesn't ask for or use default values for these parameters simply doesn't account for standing-wave modes.
d) Sound propagation in absorbing materials within a speaker enclosure:
1) shifts the shape of conventional Thiele-Small-Margolis SPL responses in frequency,
2) shifts standing-wave peaks and dips in frequency and
3) suppresses their dB amplitude.
Such algorithms directly associate to standing-wave computation and ask for several parameters such as absorbing material type, quantity, placement etc. Thus a program that doesn't ask for or use default values for these parameters simply doesn't account for the presence of sound absorbing material.
Using all these guidelines can definitely help us predict whether a piece of software is expected to provide a high degree of accuracy or not.