📄 stdafx.h
字号:
#if !defined(NLSE_1DIM_H__INCLUDED_)
#define NLSE_1DIM_H__INCLUDED_
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <fstream.h>
#include <math.h>
#define Pi 3.14159265358979323846264338327950289
#define PI2 6.28318530717958647692528676655900577
#define GVD_Sign 1//-1 //GVD的符号
#define GVD_Coef_Thd 0//归一化后3rd-GVD的系数
#define NLS_Coef_SS 0//Selfl-Steeping的系数
#define NLS_Coef_NN 0//归一化所有非线性项的公共系数
#define NLS_Coef_RT 0// //简化后SRS项的系数
class Nlse1Dim{
protected:
int NN; //数组大小,只能取2^N
double *data;//为2XNN的离散的电场,偶数为实部,奇数为虚部
double Dt;//时间的步长
int Nz;//纵向步数
double Dz;//纵向步长
double OUTF_Time_Win;
double OUTF_Freq_Win;
int OUTF_Numb;
void Cout_constant();
void FFT1D(double *, int ,int isign);//一维FFT,isign=1为正变换,isign=-1为逆变换
void Line_Prop(double prop_rang);//线性传输部分子程序
void SelfSteep(int i, double *SS);
void NonLn_Prop(double prop_rang);//非线性传输部分子程序
void Phase(double *data1d, double *phase);//电场的相位求解
void Copydata(double *data1d);//电场的复制
public:
Nlse1Dim();
Nlse1Dim(int nn, double ld, double dz, int nz,double Otw,
double Ofw, int On);
~Nlse1Dim();
void Save_ReIm_InPh(char *fn);//存储电场的实部、虚部、强度、相位,Size表示存储中间的NN/(Size)
void Save_Freq_ReIm_InPh(char *fn);//存储电场频率域的实部、虚部、强度、相位,Size表示存储中间的NN/(Size)
void Sech(double Tau=1,double Chirp=0);//初始值,Tau为时间归一化后的系数
void triangle(double Tau=1);
void Bsoliton(double Tau=1);
void Gauss(int m=1, double Chirp=0,double Tau=1);//初始值,Tau为时间归一化后的系数
void LN_NLS(int nzdot=1);//简化SRS后的一维NLS求解,nzdot<26^2为中间均匀输出的电场数。
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -