Переход назад
Оглавление

Файл BxVortex.h

Библиотека работы с оптически-чистыми вихрями. Подробнее...

См. исходные тексты.

Функции

void testC ()
 Тестовая процедура на C++.
void VortexAmplitudeTransformation1DExe (TComplex1D InFunction, int n, double lamda, double focus, TComplex1D OutFunction)
 Что то вроди оптического 1D преобразования Ханкеля.
void VortexAmplitudeReplacement1DExe (TComplex1D InFunction, double sigma, TComplex1D OutFunction, double R)
 Что то вроди оптического 1D преобразования Ханкеля.
void VortexIntencityMaxReplacement1DExe (TComplex1D InFunction, double Imax, int index, double deltaMin, TComplex1D OutFunction)
 Что то вроди оптического 1D преобразования Ханкеля.
void VortexRandomPhaseSet1DExe (TComplex1D OutFunction)
 Заполнение 1D функции случайными фазовыми биениями с единичной амплитудой.
void VortexModeExe (TComplex1D InFunction, int n, TOptics OutOptics)
 Построение моды ДОЭ фихрей из функции,.
double GetS (TComplex1D function, int index)
 Возвращает значение функции S(r).
void VortexExe (TOptics InOptics, TOptics OutOptics, TModes Modes)
 ДОЭ обеспечивающий построение мод пучка вихревой закрути.
void EllipsExe (TOptics InOptics, TOptics OutOptics, TModes Modes)
 ДОЭ обеспечивающий построение мод эллиптического пучка.
void WaveExe (TOptics InOptics, TOptics OutOptics, TModes Modes, unsigned short Param)
 ДОЭ обеспечивающий построение мод волнового пучка.
void EllipsoidWaveExe (TOptics InOptics, TOptics OutOptics, int ExpCount, double lamda, double a, double z)
 Решение ур. Гельмгольца в эллипсоидальной системе координат.
void NullVortex1D (TComplex1D OutOptics, TModes Modes, unsigned short Params, double sigma, bool isLog, double power)
 ДОЭ обеспечивающий построение мод самого разного характера.
void NullVortex2D (TOptics InOptics, TOptics OutOptics, TModes Modes, unsigned short Params, double sigma, bool isLog, double power)


Подробное описание

Библиотека работы с оптически-чистыми вихрями.

В данном модуле находится описание различные реализации оптических вихрей в рамках скалярной теории дифракционной оптики.

Автор:
Сергей Балалаев
Версия:
1.03
Прим.:
В связи с независимостью данной библиотеки с использующей ее системой ее версия может быть более ранней чем версия системы, однако при обратной ситуации (файл описания имеет более позднюю версию чем библиотека) может не допустить загрузки библиотеки.

Функции

void EllipsExe ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes 
)

ДОЭ обеспечивающий построение мод эллиптического пучка.

Дифракционнооптический элемент, т.е. пучок на нулевом расстоянии.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы (умножение).
OutOptics TOptics [out] - результирующее комплексное поле после ДОЭ.
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
См. также:
BesselExe , VortexExe , WaveExe .

void EllipsoidWaveExe ( TOptics  InOptics,
TOptics  OutOptics,
int  ExpCount,
double  lamda,
double  a,
double  z 
)

Решение ур. Гельмгольца в эллипсоидальной системе координат.

Является медленным алгоритмом вычисления интеграла Кирхгофа. Используется в непараксиальных областях распространения, при $ z \geq 10 \lambda $ .

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы [ $ U(\xi ,\eta) $ ].
OutOptics TOptics [out] - результирующее комплексное поле на расстоянии z [ $ U(x,y,z) $ ].
ExpCount - число внутриэкспоненциальных разбиений используется для увеличения точности в соответствии с алгоритмом Г. (пока не используется ExpCount = 1)
lamda - длинна волны лазера в нм [ $ \lambda $ ].
a - параметр алгоритма вычисления эллиптических функций.
z - расстояние от входного до выходного распределения в мм.
Уст.:
Оставлен для совместимости, следует использовать более быстрый алгоритм FastKirhgof2Exe
См. также:
FastKirhgof2Exe , Kirhgof2Exe , Frenel , fftFrenel , Fourier .

double GetS ( TComplex1D  function,
int  index 
)

Возвращает значение функции S(r).

Возвращает:
$ S(r) = \sqrt{ \arg [f^2(r) ] } $ .
Аргументы:
function TComplex1D [in] - входная функция.
index int [in] - индекс по которому получаем f(r).

void NullVortex1D ( TComplex1D  OutOptics,
TModes  Modes,
unsigned short  Params,
double  sigma,
bool  isLog,
double  power 
)

ДОЭ обеспечивающий построение мод самого разного характера.

Дифракционнооптический элемент, т.е. пучок на нулевом расстоянии. Реализует стандартную волну по формуле

\[ U( r, \phi) = A_0 { \left ( \frac{r} {w} \right ) }^{n} e^{i m \phi} e^{i \gamma g(r)} , \]

где $ g(r) = r^p $ , если isLog = false, в противном случае $ g(r) = \ln(r^p) $ , p - степенной параметр (power).

Аргументы:
OutOptics TComplex1D [out] - результирующее комплексное поле ДОЭ [ $ U(r, \phi = 0) $ ].
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
Param - параметры пучка. Примеры:
 Param = NORMAL_WAVE=0; 
- построение пучка с бесконечной функцией, т.е. [ $ A_0 = 1 $ ],
 Param = EXPONENT_WAVE=1; 
- построение пучка с экспоненциальным сглаживанием [ $ A_0 = e^{-frac{r^2} {2 {\sigma}^2 }} $ ].
sigma - параметры гаусовой перетяжки (работает только при Param = EXPONENT_WAVE и равен [$ \sigma $ ] )
isLog - придает логарифмическое сглаживание функции $ g(r) $ ]
power - степень функции $ g(r) $ ]
См. также:
NullHyperGeometric1D , Hankel2D .

void NullVortex2D ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes,
unsigned short  Params,
double  sigma,
bool  isLog,
double  power 
)

void testC (  ) 

Тестовая процедура на C++.

Если уж она не работает то система совсем плохая стала.

Прим.:
Использовать на крайний случай Для теста системы.

void VortexAmplitudeReplacement1DExe ( TComplex1D  InFunction,
double  sigma,
TComplex1D  OutFunction,
double  R 
)

Что то вроди оптического 1D преобразования Ханкеля.

Применительно для оптических вихрей.

Аргументы:
InFunction TComplex1D [in] - входная функция.
sigma double [in] - [ $ \sigma $ ] константа задающая тип заменяемой амплитуды A(r) если $ \sigma = 0 $ то A(r) = 1 для всех r < R если $ \sigma \not= 0 $ то $ A(r) = exp[ - r^2 / \sigma ^2] $ для всех r.
OutFunction TComplex1D [out] - выходная функция.
R double [in] - предел замены амплитуды за которым A(r) = 0.

void VortexAmplitudeTransformation1DExe ( TComplex1D  InFunction,
int  n,
double  lamda,
double  focus,
TComplex1D  OutFunction 
)

Что то вроди оптического 1D преобразования Ханкеля.

Применительно для оптических вихрей.

Аргументы:
InFunction TComplex1D [in] - входная функция.
n int [in] - параметр моды (порядок вихривой закрутки).
lamda [in] - длинна волны лазера в нм [ $ \lambda $ ].
focus [in] - фокус в мм. для оптического преобразования.
OutFunction TComplex1D [out] - выходная функция.

void VortexExe ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes 
)

ДОЭ обеспечивающий построение мод пучка вихревой закрути.

Дифракционнооптический элемент, т.е. пучок на нулевом расстоянии.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы (умножение).
OutOptics TOptics [out] - результирующее комплексное поле после ДОЭ.
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
См. также:
BesselExe , EllipsExe , WaveExe .

void VortexIntencityMaxReplacement1DExe ( TComplex1D  InFunction,
double  Imax,
int  index,
double  deltaMin,
TComplex1D  OutFunction 
)

Что то вроди оптического 1D преобразования Ханкеля.

Применительно для оптических вихрей.

Аргументы:
InFunction TComplex1D [in] - входная функция.
Imax double [in] - значение подставляемой интенсивности, если 0, то берется из массива.
index int [in] - индекс по которому производится подстановка.
deltaMin double [in] - часть от максимального значения интенсивности уходящая во все другие поля кроме index. Значение указано в единицах. то есть 0.05 соответствует 5%
OutFunction TComplex1D [out] - выходная функция.

void VortexModeExe ( TComplex1D  InFunction,
int  n,
TOptics  OutOptics 
)

Построение моды ДОЭ фихрей из функции,.

полученной на последней итерации преобразования случайного поля.

Аргументы:
InFunction TComplex1D [in] - входная функция предварительных преобразований.
n int [in] - параметр моды (порядок вихривой закрутки).
OutFunction TComplex1D [out] - выходное оптическое поле задающее ДОЭ вихря.

void VortexRandomPhaseSet1DExe ( TComplex1D  OutFunction  ) 

Заполнение 1D функции случайными фазовыми биениями с единичной амплитудой.

Нужна для получения начального распределения поля.

Аргументы:
OutFunction TComplex1D [out] - выходная функция.

void WaveExe ( TOptics  InOptics,
TOptics  OutOptics,
TModes  Modes,
unsigned short  Param 
)

ДОЭ обеспечивающий построение мод волнового пучка.

Дифракционнооптический элемент, т.е. пучок на нулевом расстоянии.

Аргументы:
InOptics TOptics [in] - комплексное поле на входе системы (умножение).
OutOptics TOptics [out] - результирующее комплексное поле после ДОЭ.
Modes TModes [in] - параметры мод, для формирования определенного вида пучка.
Param - параметры пучка. Примеры:
 Param = NORMAL_WAVE=0; 
- построение пучка с бесконечной функцией,
 Param = EXPONENT_WAVE=1; 
- построение пучка с экспоненциальным сглаживанием.
См. также:
BesselExe , EllipsExe , VortexExe , NullHyperGeometric2D .

Документация по системе CAAM. © Все права защищены БайтериКС 2005-2015. BYTERIX.COM byterix