NSE Help Documentation v1.1 22 May, 2012 GUI::TABs::NSE (x)/NSE (y) NSESettings::NSExSettings::lFFT_WINDOW_SIZE GUI::TABs::NSE (x)/NSE (y)::FT Window Size Description: FT window size (N) is the size of the array that will be used to store the pulse and calculate Fourier transforms. When choosing this size, you need to keep in mind that there are enough sampling points across the pulse in both time and frequency domains in order to ensure the accuracy of fast Fourier transforms. To ensure the FFT runs at high efficiency, choose the size to be power of 2. Example(s): 65536 NSESettings::NSExSettings::lFFT_TIME_WINDOW GUI::TABs::NSE (x)/NSE (y)::FT Time Window Description: FT time window is a width in real time (with units of seconds) that is considered for the FT window. If the time windows is T seconds, then the FT window will be from -0.5T to 0.5T. Depending on FT window size, the sampling resolution in time domain will be T/N. The time array corresponding to the FT window will be (-0.5N:1:0.5N-1)*T/N if N is even or (-0.5N:1:0.5N)*T/N if N is odd. Example(s): 100e-12 NSESettings::NSExSettings::lPROP_LENGTH GUI::TABs::NSE (x)/NSE (y)::Propagation Length Description: The length set for the pulse to propagate. There are two ways of set this length. Either put a single value or use the format of “x1>x2>x3”. The three variables in the second way means the pulse propagates a total length of x3 and the program start saving results start from x1 with an interval of x2. Example(s): 10e-3 0>1e-3>20e-3 NSESettings::NSExSettings::lPROP_STEP_SIZE GUI::TABs::NSE (x)/NSE (y)::Propagation Step Size Description: The step size (dz) for propagation. If NSExSettings::lTOLERANCE is non-zero, local error control method will be used and dz changes dynamically. Example(s): 1e-6 NSESettings::NSExSettings::lNSE_METHOD GUI::TABs::NSE (x)/NSE (y)::NSE Method Description: There are two methods supported by this program, Split-Step Fourier (SSF) method and Runge-Kutta 4th-order in the Interaction Picture (RK4IP) method. The RK4IP method calculates twice more FFTs than SSF method but provides higher accuracy with same step size. When simulating vectorial NSE, only RK4IP method is available. Example(s): RK4IP SSF NSESettings::NSExSettings/NSEySettings::lPULSE_WIDTH GUI::TABs::NSE (x)/NSE (y)::Pulse Width Description: Parameter for single pulse generation. Width T0 of Gaussian or hyperbolic secant pulses. This parameter is not used when generating soliton pulses. Example(s): 100e-15 NSESettings::NSExSettings/NSEySettings::lPULSE_POWER GUI::TABs::NSE (x)/NSE (y)::Pulse Peak Power Description: Parameter for single pulse generation. The peak power of the pulse in units of Watts. Example(s): 10000 NSESettings::NSExSettings/NSEySettings::lNOISE_LEVEL GUI::TABs::NSE (x)/NSE (y)::Noise level (%) Description: Random noise with amplitude of center percentage of the peak power will be added to the pulses if this parameter is non-zero. Example(s): 2 NSESettings::NSExSettings/NSEySettings::lSHOT_NOISE GUI::TABs::NSE (x)/NSE (y)::Shot Noise Description: Add shot noise to the pulses. Example(s): on off NSESettings::NSExSettings/NSEySettings::lSHOT_NOISE_LIMIT GUI::TABs::NSE (x)/NSE (y)::Shot Noise Limitation Description: The limitation of a wavelength span around the pump that will be considered for adding host noise to. The limitation window is symmetric in wavelength. If the value is -1, then this function will be inactive. Example(s): -1 40e-9 NSESettings::NSExSettings/NSEySettings::lPULSE_TYPE GUI::TABs::NSE (x)/NSE (y)::Pulse Type Description: Pulse type of the pulses that is going to generate. This program support two types of internal pulse type: Gaussan and hyperbolic secant pulse. If this parameter start with @ or # followed by path/filename[:args], the program will load a plugin to interpolate the pulse with the arguments args if available. @ indicate the following file is a source code. The program will try to compile it to a dynamic library tmpInterppulse.so and then load it using the settings in NSExSettings::lCC_CFLAGS, NSExSettings::lCXX_CXXFLAGS and NSExSettings::lFC_FFLAGS depending on the extension name of the file. # indicates the following file is a pre-compiled dynamic library. The program will try to load it directly. If this parameter start with $ followed by path/filename[:arg], the program will consider the file provided here is a Matlab .mat file and load the pulse from variable UTime. If the argument arg is available, the program will load the column arg from the UTime matrix. When using .mat files, make sure there is no “nan” or “inf” in UTime. Example(s): gaussian sech @../example/test.cpp #../example/test.so:100e-15,1e4 $../example/test.mat:10 NSESettings::NSExSettings/NSEySettings::lGAUSSIAN_DEGREE GUI::TABs::NSE (x)/NSE (y)::Gaussian Degree Description: Parameter used for generating Gaussian pulses. Gaussian pulses with degree larger than 1 are super Gaussians. This parameter is only used when NSExSettings/NSEySettings::lPULSE_TYPE is set to Gaussian. Example(s): 1 3 NSESettings::NSExSettings/NSEySettings::lCHIRP GUI::TABs::NSE (x)/NSE (y)::Pulse Chirp Description: Parameter used for generating pulses. Please refer to «Nonlinear Fiber Optics» by Govind P. Agrawal. The chirp here refer to chirp parameter C in the book. Example(s): 0 NSESettings::NSExSettings/NSEySettings::lSOLITON_ORDER GUI::TABs::NSE (x)/NSE (y)::Soliton Order (N) Description: Parameter used for generating soliton pulses. This parameter is only used when NSExSettings/NSEySettings::lPULSE_TYPE is set to soliton. Example(s): 1 NSESettings::NSExSettings/NSEySettings::lOPTICAL_SHOCK_TIME GUI::TABs::NSE (x)/NSE (y)::Optical Shock Time (tshock) Description: Optical shock time tτ in units of seconds. If this parameter is %, the program will use 1/ω0 for tτ where ω0 calculated based on NSExSettings::lPUMP_WAVELENGTH. Example(s): 10e-15 % NSESettings::NSExSettings/NSEySettings::lRAMAN_RESPONSE_TIME GUI::TABs::NSE (x)/NSE (y)::Raman Response Time (tr) Description: Raman response time tr. When this parameter starts with @ or # followed by path/filename, the program will try to compile it to tmpInterphr.so and then load it if the file provided is source code or load it directly if the file provided is a dynamic library. Example(s): 10e-15 @../example/test.c #../example/test.so NSESettings::NSExSettings/NSEySettings::lRAMAN_FRACTION GUI::TABs::NSE (x)/NSE (y)::Raman Fraction (fr) Description: Raman fraction fr. Example(s): 0.18 NSESettings::NSExSettings::lPUMP_WAVELENGTH GUI::TABs::NSE (x)/NSE (y)::Pump Wavelength Description: The central wavelength of the input pulse. Example(s): 1550e-9 NSESettings::NSExSettings/NSEySettings::lLOSS GUI::TABs::NSE (x)/NSE (y)::Loss (dB/m) Description: Loss in units of dB/m. When this parameter starts with @ or # followed by path/filename, the program will try to compile it to tmpInterploss.so and then load it if the file provided is source code, or load it directly if the file provided is a dynamic library. Example(s): 1 @../example/test.c #../example/test.so NSESettings::NSExSettings/NSEySettings::lNONLINEARITY GUI::TABs::NSE (x)/NSE (y)::Nonlinearity (gamma) Description: Nonlinear coefficient γ. When this parameter starts with @ or # followed by path/filename, the program will try to compile it to tmpInterpnl.so and then load it if the file provided is a source code, or load it directly if the file provided is a dynamic library. Example(s): 0.011 @../example/test.c #../example/test.so NSESettings::NSExSettings::lNONLINEARITY_CROSS GUI::TABs::NSE (x)/NSE (y)::gamma_cross Description: Nonlinear coefficient γc used for vectorial NSE. When this parameter is %, the program will use 2/3 of NSExSettings::lNONLINEARITY as this value. Example(s): 0.667 % NSESettings::NSExSettings::lNONLINEARITY_CROSS_PRIMED GUI::TABs::NSE (x)/NSE (y)::gamma_cross_primed Description: Nonlinear coefficient γ’c used for vectorial NSE. When this parameter is %, the program will use 1/3 of NSExSettings::lNONLINEARITY as this value. Example(s): 0.333 % NSESettings::NSExSettings/NSEySettings::lDISPERSION GUI::TABs::NSE (x)/NSE (y)::Dispersion (beta) Description: Group velocity dispersion of the waveguide. If this parameter starts with @ or # followed by path/filename, the program will try to compile it to tmpInterpgvd.so and then load it if the file provided is source code, or load directly if the file provided is a dynamic library. If this parameter starts with % followed by a number, the program will consider the group velocity dispersion as a constant will value equal to this number. If this parameter is in the form of x1:x2:x3: … , the program will consider x1, x2, x3 … as a train of Taylor series of propagation constants β1, β2, β3, … Example(s): @../example/test.c #../example/test.so %1 0:0:1e-12 NSESettings::NSExSettings::lFFT_METHOD GUI::TABs::NSE (x)/NSE (y)::FFT Method Description: This parameter tells the program how to initialize the fast Fourier calculation. For details, check documentations on http://www.fftw.org. Example(s): estimate measure patient exhaustive NSESettings::NSExSettings::lTOLERANCE GUI::TABs::NSE (x)/NSE (y)::Tolerance Description: Tolerance that is used for the automatic error check of the program. If 0 is used, the error check of the program will be turned off. Example(s): 1e-5 0 NSESettings::NSExSettings::lERASE_PLOT GUI::TABs::NSE (x)/NSE (y)::Erase before Plot Description: If this parameter is set to yes, the program will erase the plot window before start a new drawing. Example(s): yes no NSESettings::NSExSettings::lFREQ_PLOT_LOG GUI::TABs::NSE (x)/NSE (y)::Frequency Plot Log Scale Description: When this parameter is set to yes, the program will plot the spectrum in logarithmic scale. Example(s): yes no NSESettings::NSExSettings::lFREQ_PLOT_WAVE GUI::TABs::NSE (x)/NSE (y)::Frequency Plot as Wavelength Description: When this parameter is set to yes, the program will plot the spectrum versus wavelength instead of frequency. Example(s): yes no NSESettings::NSExSettings::lWAVELENGTH_RANGE GUI::TABs::NSE (x)/NSE (y)::Wavelength Range Description: The range of the wavelength of the pulse that will be plotted in program GUI. Example(s): 500e-9:6e-6 NSESettings::NSExSettings::lLOG_PLOT_NEG_THRHLD GUI::TABs::NSE (x)/NSE (y)::Log Plot Threshold (dB) Description: The lower limit regarding to the peak of the pulse that will be plotted when plotting is set in log scale. This parameter will not take effect when NSExSettings::lFREQ_PLOT_LOG is set to yes Example(s): -100 NSESettings::NSExSettings::lPLOT_AS_PROP GUI::TABs::NSE (x)/NSE (y)::Plot as Propagating Description: Automatic plotting parameter. The number of steps will be calculated every time before the program plots the pulse. Example(s): 100 NSESettings::NSExSettings::lNUM_OF_THREAD GUI::TABs::NSE (x)/NSE (y)::Num Of Threads Description: If the program is compiled with OpenMP support, this parameter will tell the program how many threads it should use to do the calculation. Example(s): 1 NSESettings::NSExSettings::lSAVE_PREFIX GUI::TABs::NSE (x)/NSE (y)::Save File Prefix Description: The prefix that will be added to the save file of the data Example(s): test_ NSESettings::NSExSettings::lSAVE_INIT_ID GUI::TABs::NSE (x)/NSE (y)::Save File Initial ID Description: The initial number of an automatic counter will be used together with NSExSettings::lSAVE_PREFIX to construct the file name to save the data. If the value is -1, the counter will automatic increase 1 to the previous number. Example(s): -1 0 NSESettings::NSExSettings::lSAVE_TYPE GUI::TABs::NSE (x)/NSE (y)::Save Type Description: The file format the data will be saved to. If the program is compiled with Matlab support, mat format can be used. Otherwise, bin format will be used by default. The bin format uses ZV file for storage. The data are highly compressed in ZV file, and they can be load directly into Matlab using attached toolsets with the program. The data can also be saved to ASCII format using txt. Example(s): mat bin txt NSESettings::NSExSettings::lCC_CFLAGS GUI::TABs::NSE (x)/NSE (y)::CC and CFLAGS Description: C compiler and flags that should be used for compile the plugins for the program. For details, please refer to the GNU Compiler Collection http://gcc.gnu.org/. Example(s): gcc -shared -fPIC -lgsl -lm NSESettings::NSExSettings::lCXX_CXXFLAGS GUI::TABs::NSE (x)/NSE (y)::CXX and CXXFLAGS Description: C++ compiler and flags that should be used for compile the plugins for the program. Example(s): g++ -shared -fPIC -lm NSESettings::NSExSettings::lFC_FFLAGS GUI::TABs::NSE (x)/NSE (y)::FC and FFLAGS Description: Fortran compiler and flags that should be used for compile the plugins for the program. Example(s): gfortran -shared -fPIC GUI::BUTTONs::Start Description: Start scalar pulse propagation GUI::BUTTONs::Start_Vectorial Description: Start vectorial pulse propagation GUI::BUTTONs::Start_Loop Description: Start scalar pulse propagation in an automatic loop Number the required parameter in the Order column and list the parameters needed to be looped through in the Iteration List separated by comma. The program will automatically loop through all the combination of items listed in the Iteration List. Order number must not be repeated. Example(s): Order Iteration List 1 a,b 2 c,d 3 e,f The loop will contain parameter combinations in the following order: ace acf ade adf bce bcf bde bdf GUI::BUTTONs::Stop Description: Stop the pulse propagation simulation while the program is running. GUI::BUTTONs::Pause/Continue Description: Pause or continue a paused simulation. GUI::TABs::Plot GUI::BUTTONs::Plot Description: Plot the content stored in the buffer. Usually the buffer is filled with pulse at positions defined by NSExSettings::lPROP_LENGTH or the pulse updated by auto plotting if NSExSettings::lPLOT_AS_PROP is set. GUI::BUTTONs::Clear Description: Clear the drawing window. GUI::TABs::Log GUI::TABs::Network Description: The network function allows one to run simulations cross multiple computers and different platforms. NETSettings::lRUN_MODE GUI::TABs::Network::Run as (Server/Client/Agent) Description: Example(s): Server Client Agent NETSettings::lIP_ADDRESS GUI::TABs::Network::IP Address Description: Example(s): 127.0.0.1 NETSettings::lPORT GUI::TABs::Network::Port Description: Example(s): 60000 NETSettings::lDISTRIBUTE_FILES GUI::TABs::Network::Distribute files Description: Example(s): yes no NETSettings::lRETRIEVE_RESULTS GUI::TABs::Network::Retrieve results Description: Example(s): yes no NETSettings::lFILE_BLOCK_SIZE GUI::TABs::Network::File block size Description: Example(s): 1024 GUI::TABs::Network::BUTTONs::Start_Network Description: GUI::Network::BUTTONs::Stop_Network Description: GUI::TABs::Help Description: Empty CMD