⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stdafx.h

📁 光脉冲在光纤传输中的自陡峭问题C语言源程序。
💻 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 + -