00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef QCPHASE_H
00028 #define QCPHASE_H
00029
00030 #include "qccomplexfield.h"
00031 #include "qcparameter.h"
00032
00037 class QCPhase
00038 {
00039 public:
00040
00046 QCPhase(void);
00050 ~QCPhase(void);
00052
00053
00060 parameterType constantFunction();
00065 parameterType spiralFunction(parameterType x, parameterType y);
00069 void applyUniform(QCComplexField<2> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00073 void applyUniform(QCComplexField<3> &field, parameterType deltaX, parameterType deltaY, parameterType deltaZ, int x0, int y0, int z0);
00077 void applyRandom(QCComplexField<2> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00081 void applyRandomQuadrant(QCComplexField<2> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00086 void applyVortex(QCComplexField<2> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00091 void applyVortex(QCComplexField<3> &field, parameterType deltaX, parameterType deltaY, parameterType deltaZ, int x0, int y0, int z0);
00096 void applyVortexReverse(QCComplexField<2> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00100 void applyDisturbanceTypeI(QCComplexField<2> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00104 void applyDisturbanceTypeII(QCComplexField<2> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00108 void applyDisturbanceTypeII(QCComplexField<3> &field, parameterType deltaX, parameterType deltaY, int x0, int y0);
00110
00111
00117 bool outputPhaseFunction(QCComplexField<2> &field, const char* filename);
00121 bool outputPhaseFunction(QCComplexField<3> &field, const char* filename);
00123
00124
00130 void setDisturbPosition(int position)
00131 { disturbPosition = position; }
00135 void setDisturbWidth(int width)
00136 { disturbWidth = width; }
00140 void setDisturbHeight(parameterType height)
00141 { disturbHeight = height; }
00145 int getDisturbPosition()
00146 { return disturbPosition; }
00150 int getDisturbWidth()
00151 { return disturbWidth; }
00155 parameterType getDisturbHeight()
00156 { return disturbHeight; }
00158 private:
00159 int disturbPosition;
00160 int disturbWidth;
00161 parameterType disturbHeight;
00162 };
00163 #endif