Using ASA
Background
The ASA method is completely independent of the FNM codes. The basic idea is that you have a 2-d field of some kind that has already been calculated for the x-y plane. The ASA method propagates the field through various z coordinates creating a 3-d grid. Although this can be done entirely by the FNM, it is much faster to use ASA once a 2-d plane has been obtained.
Implementation
Our ASA function currently supports homogeneous media, with non-linear, layered medium cases coming soon. In all cases, the way to set up the problem is the same. First, a 2-d grid in the x-y plane has to be created. In theory the plane can be created in any plane, however, the accuracy of the ASA method has not be verified in planes other then the x-y plane. Depending on the problem, this grid may be pressure or velocity, it is up to the user to know which grid is needed. It is important that this 2-d grid be relatively accurate, as the accuracy of all subsequent calculations depends on it.
Once the 2-d grid has been created, all you need to do is run the function. This can be done interactively using the asa_run function. For pressure fields generated by the FNM code, the proper call is:
Pressure = asa_run(source,z,medium,nfft,delta,type,f0)