NSE Help Documentation v1.1

advertisement
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
Download