|
template<class T > |
std::complex< T > | CalcHz (const T &s, const T &l, const T &z, const T &k, const GLQuad2D< T > *gl) |
|
template<class T > |
int | CalcCwFieldRef (const sysparm_t< T > *sysparm, const ApertureData< T > *data, const T *pos, const size_t nPositions, std::complex< T > **odata, void *pBar) |
|
template<class T > |
int | CalcCwFieldFourRef (const sysparm_t< T > *sysparm, const ApertureData< T > *data, const T *pos, const size_t nPositions, std::complex< T > **odata) |
|
template<class T > |
int | CalcCwFocusNaiveFast (const sysparm_t< T > *sysparm, const ApertureData< T > &data, const T *pos, const size_t nPositions, std::complex< T > **odata) |
|
template<class T > |
std::complex< T > | CalcSingleFast (const T &s1, const T &s2, const T &l, const T &z, const T &k, const T *uxs, const T *uweights, const size_t nUs) |
|
template<class T > |
int | CalcCwTimeReversal (const fnm::sysparm_t< T > *sysparm, const ApertureData< T > *pData0, const ApertureData< T > *pData1, const T *pos, const size_t nPositions, const std::complex< T > *pFieldValues, const size_t nComplexValues, std::complex< T > **odata, sps::ProgressBarInterface *pBar) |
|
template<class T > |
int | CalcCwBackThreaded (const fnm::sysparm_t< T > *sysparm, const ApertureData< T > *data, const T *pos, const size_t nPositions, const std::complex< T > *pWeights, const size_t nWeights, std::complex< T > **odata, sps::ProgressBarInterface *pbar) |
|
template<class T > |
int | CalcCwThreaded (const fnm::sysparm_t< T > *sysparm, const ApertureData< T > *data, const T *pos, const size_t nPositions, std::complex< T > **odata, sps::ProgressBarInterface *pbar) |
|
template<class T > |
void | CalcCwField (const sysparm_t< T > *sysparm, const ApertureData< T > &data, const T *pos, const size_t nPositions, std::complex< T > **odata) |
|
template<class T > |
int | CalcCwFocus (const sysparm_t< T > *sysparm, const ApertureData< T > &data, const T *pos, const size_t nPositions, std::complex< T > **odata) |
|
template<class T > |
int | CalcCwFocusRef (const sysparm_t< T > *sysparm, const ApertureData< T > &data, const T *pos, const size_t nPositions, std::complex< T > **odata) |
|
int CalcCwFieldRef |
( |
const sysparm_t< T > * |
sysparm, |
|
|
const ApertureData< T > * |
data, |
|
|
const T * |
pos, |
|
|
const size_t |
nPositions, |
|
|
std::complex< T > ** |
odata, |
|
|
void * |
pBar |
|
) |
| |
Spatial impulse response computed at the positions pos for a frequency f0. The principle of superposition is used as shown below and the ranges of integration are reduced to give the most accurate result with the least amount of abcissas. This is a reference implementation. Eight integrals are evaluated, which can be reduced to four. See CalcCwFieldFourRef
The frequency f0 as well as the positional information for the aperture is contained in the ApertureData structure data.
Superposition principle:
^
|
+-----+-----+-----------+ (x,y)
| | | |
+-----+-----+-----------+
| | | |
| | | |
| | | | =
+ o-----+-----------+---->
| | |
hh | | |
| | |
+-----+-----+-----------+
hw
^ ^ ^ ^
| | | |
+-----------------------+ (x,y) | +-----------+ (x,y) +-----+-----+-----------+ (x,y) | +-----------+ (x,y)
| | | | | | | | | | | |
+ | | | | | +-----+-----------------+ + | +-----------+
| | | | | | | | | |
| | | | | | hh | | hh | |
| | | - | | | - | | + | |
| o-----------------|----> o-----+-----------+----> + o----------------------> + o---------------------->
| | | | |
hh | | | | |
| | | | |
+-----------+-----------+ +-----------+ +-----+-----+
hw hw hw
where
is the kernel function
- Parameters
-
sysparm | |
data | Structure holding element positions and f0 |
pos | Positions |
nPositions | # of positions |
odata | complex output |
pBar | progress bar |
- Returns
- error code