Ejemplo n.º 1
0
		public DVSTEP()
		{
			#region Initialization Common Blocks

			CommonBlock DVOD01 = new CommonBlock(48, 33, 0, 0);
			CommonBlock DVOD02 = new CommonBlock(1, 8, 0, 0);

			#endregion Initialization Common Blocks

			#region Dependencies (Initialization)

			DVNORM dvnorm = new DVNORM();
			DAXPY daxpy = new DAXPY();
			DSCAL dscal = new DSCAL();
			DCOPY dcopy = new DCOPY();
			DVSET dvset = new DVSET(DVOD01);
			DVJUST dvjust = new DVJUST(daxpy, DVOD01);

			#endregion Dependencies (Initialization)

			#region Set Dependencies

			this._dvnorm = dvnorm; this._dvjust = dvjust; this._dscal = dscal; this._dvset = dvset; this._daxpy = daxpy;
			this._dcopy = dcopy;

			#endregion Set Dependencies

			#region Data Initialization

			//KFC/-3
			KFC = -3;
			//KFH/-7
			KFH = -7;
			//MXNCF/10
			MXNCF = 10;
			//ADDON/1.0D-6
			ADDON = 1.0E-6;
			//BIAS1/6.0D0
			BIAS1 = 6.0E0;
			//BIAS2/6.0D0
			BIAS2 = 6.0E0;
			//BIAS3/10.0D0
			BIAS3 = 10.0E0;
			//ETACF/0.25D0
			ETACF = 0.25E0;
			//ETAMIN/0.1D0
			ETAMIN = 0.1E0;
			//ETAMXF/0.2D0
			ETAMXF = 0.2E0;
			//ETAMX1/1.0D4
			ETAMX1 = 1.0E4;
			//ETAMX2/10.0D0
			ETAMX2 = 10.0E0;
			//ETAMX3/10.0D0
			ETAMX3 = 10.0E0;
			//ONEPSM/1.00001D0
			ONEPSM = 1.00001E0;
			//THRESH/1.5D0
			THRESH = 1.5E0;
			//ONE/1.0D0
			ONE = 1.0E0;
			//ZERO/0.0D0
			ZERO = 0.0E0;

			#endregion Data Initialization

			#region Common varaible Initialization

			#region Common Block: DVOD01 Initialization

			this._dvod01 = DVOD01;
			ACNRM = DVOD01.doubleData[0];
			CCMXJ = DVOD01.doubleData[1];
			CONP = DVOD01.doubleData[2];
			CRATE = DVOD01.doubleData[3];
			DRC = DVOD01.doubleData[4];
			//Start Array: EL  StartIndex: 5  LastIndex: 17
			EL = DVOD01.doubleData;
			o_el = 4;  //o_ = StartIndex-1
								 //End Array: EL
			ETA = DVOD01.doubleData[18];
			ETAMAX = DVOD01.doubleData[19];
			H = DVOD01.doubleData[20];
			HMIN = DVOD01.doubleData[21];
			HMXI = DVOD01.doubleData[22];
			HNEW = DVOD01.doubleData[23];
			HSCAL = DVOD01.doubleData[24];
			PRL1 = DVOD01.doubleData[25];
			RC = DVOD01.doubleData[26];
			RL1 = DVOD01.doubleData[27];
			//Start Array: TAU  StartIndex: 28  LastIndex: 40
			TAU = DVOD01.doubleData;
			o_tau = 27;  //o_ = StartIndex-1
									 //End Array: TAU
									 //Start Array: TQ  StartIndex: 41  LastIndex: 45
			TQ = DVOD01.doubleData;
			o_tq = 40;  //o_ = StartIndex-1
									//End Array: TQ
			TN = DVOD01.doubleData[46];
			UROUND = DVOD01.doubleData[47];
			ICF = DVOD01.intData[0];
			INIT = DVOD01.intData[1];
			IPUP = DVOD01.intData[2];
			JCUR = DVOD01.intData[3];
			JSTART = DVOD01.intData[4];
			JSV = DVOD01.intData[5];
			KFLAG = DVOD01.intData[6];
			KUTH = DVOD01.intData[7];
			L = DVOD01.intData[8];
			LMAX = DVOD01.intData[9];
			LYH = DVOD01.intData[10];
			LEWT = DVOD01.intData[11];
			LACOR = DVOD01.intData[12];
			LSAVF = DVOD01.intData[13];
			LWM = DVOD01.intData[14];
			LIWM = DVOD01.intData[15];
			LOCJS = DVOD01.intData[16];
			MAXORD = DVOD01.intData[17];
			METH = DVOD01.intData[18];
			MITER = DVOD01.intData[19];
			MSBJ = DVOD01.intData[20];
			MXHNIL = DVOD01.intData[21];
			MXSTEP = DVOD01.intData[22];
			N = DVOD01.intData[23];
			NEWH = DVOD01.intData[24];
			NEWQ = DVOD01.intData[25];
			NHNIL = DVOD01.intData[26];
			NQ = DVOD01.intData[27];
			NQNYH = DVOD01.intData[28];
			NQWAIT = DVOD01.intData[29];
			NSLJ = DVOD01.intData[30];
			NSLP = DVOD01.intData[31];
			NYH = DVOD01.intData[32];

			#endregion Common Block: DVOD01 Initialization

			#region Common Block: DVOD02 Initialization

			this._dvod02 = DVOD02;
			HU = DVOD02.doubleData[0];
			NCFN = DVOD02.intData[0];
			NETF = DVOD02.intData[1];
			NFE = DVOD02.intData[2];
			NJE = DVOD02.intData[3];
			NLU = DVOD02.intData[4];
			NNI = DVOD02.intData[5];
			NQU = DVOD02.intData[6];
			NST = DVOD02.intData[7];

			#endregion Common Block: DVOD02 Initialization

			#endregion Common varaible Initialization
		}
Ejemplo n.º 2
0
		public DVODE()
		{
			#region Initialization Common Blocks

			CommonBlock DVOD01 = new CommonBlock(48, 33, 0, 0);
			CommonBlock DVOD02 = new CommonBlock(1, 8, 0, 0);

			#endregion Initialization Common Blocks

			#region Dependencies (Initialization)

			DVNORM dvnorm = new DVNORM();
			DCOPY dcopy = new DCOPY();
			DSCAL dscal = new DSCAL();
			IDAMAX idamax = new IDAMAX();
			DAXPY daxpy = new DAXPY();
			DDOT ddot = new DDOT();
			DUMSUM dumsum = new DUMSUM();
			DEWSET dewset = new DEWSET();
			IUMACH iumach = new IUMACH();
			DVSET dvset = new DVSET(DVOD01);
			DGEFA dgefa = new DGEFA(idamax, dscal, daxpy);
			DACOPY dacopy = new DACOPY(dcopy);
			DGBFA dgbfa = new DGBFA(idamax, dscal, daxpy);
			DVJAC dvjac = new DVJAC(dvnorm, dcopy, dscal, dgefa, dacopy, dgbfa, DVOD01, DVOD02);
			DGESL dgesl = new DGESL(ddot, daxpy);
			DGBSL dgbsl = new DGBSL(ddot, daxpy);
			DVSOL dvsol = new DVSOL(dgesl, dgbsl, DVOD01);
			DVNLSD dvnlsd = new DVNLSD(dvnorm, dcopy, dvjac, dvsol, dscal, daxpy, DVOD01, DVOD02);
			DUMACH dumach = new DUMACH(dumsum);
			DVHIN dvhin = new DVHIN(dvnorm);
			IXSAV ixsav = new IXSAV(iumach);
			XERRWD xerrwd = new XERRWD(ixsav);
			DVINDY dvindy = new DVINDY(dscal, xerrwd, DVOD01, DVOD02);
			DVJUST dvjust = new DVJUST(daxpy, DVOD01);
			DVSTEP dvstep = new DVSTEP(dvnorm, dvjust, dscal, dvset, daxpy, dcopy, DVOD01, DVOD02);

			#endregion Dependencies (Initialization)

			#region Set Dependencies

			this._dvnlsd = dvnlsd; this._dumach = dumach; this._dvnorm = dvnorm; this._dcopy = dcopy; this._dewset = dewset;
			this._dvhin = dvhin; this._dscal = dscal; this._dvindy = dvindy; this._xerrwd = xerrwd; this._dvstep = dvstep;

			#endregion Set Dependencies

			#region Data Initialization

			//MORD(1)/12
			MORD[1 + o_mord] = 12;
			//MORD(2)/5
			MORD[2 + o_mord] = 5;
			//MXSTP0/500
			MXSTP0 = 500;
			//MXHNL0/10
			MXHNL0 = 10;
			//ZERO/0.0D0
			ZERO = 0.0E0;
			//ONE/1.0D0
			ONE = 1.0E0;
			//TWO/2.0D0
			TWO = 2.0E0;
			//FOUR/4.0D0
			FOUR = 4.0E0;
			//PT2/0.2D0
			PT2 = 0.2E0;
			//HUN/100.0D0
			HUN = 100.0E0;

			#endregion Data Initialization

			#region Common varaible Initialization

			#region Common Block: DVOD01 Initialization

			this._dvod01 = DVOD01;
			ACNRM = DVOD01.doubleData[0];
			CCMXJ = DVOD01.doubleData[1];
			CONP = DVOD01.doubleData[2];
			CRATE = DVOD01.doubleData[3];
			DRC = DVOD01.doubleData[4];
			//Start Array: EL  StartIndex: 5  LastIndex: 17
			EL = DVOD01.doubleData;
			o_el = 4;  //o_ = StartIndex-1
								 //End Array: EL
			ETA = DVOD01.doubleData[18];
			ETAMAX = DVOD01.doubleData[19];
			H = DVOD01.doubleData[20];
			HMIN = DVOD01.doubleData[21];
			HMXI = DVOD01.doubleData[22];
			HNEW = DVOD01.doubleData[23];
			HSCAL = DVOD01.doubleData[24];
			PRL1 = DVOD01.doubleData[25];
			RC = DVOD01.doubleData[26];
			RL1 = DVOD01.doubleData[27];
			//Start Array: TAU  StartIndex: 28  LastIndex: 40
			TAU = DVOD01.doubleData;
			o_tau = 27;  //o_ = StartIndex-1
									 //End Array: TAU
									 //Start Array: TQ  StartIndex: 41  LastIndex: 45
			TQ = DVOD01.doubleData;
			o_tq = 40;  //o_ = StartIndex-1
									//End Array: TQ
			TN = DVOD01.doubleData[46];
			UROUND = DVOD01.doubleData[47];
			ICF = DVOD01.intData[0];
			INIT = DVOD01.intData[1];
			IPUP = DVOD01.intData[2];
			JCUR = DVOD01.intData[3];
			JSTART = DVOD01.intData[4];
			JSV = DVOD01.intData[5];
			KFLAG = DVOD01.intData[6];
			KUTH = DVOD01.intData[7];
			L = DVOD01.intData[8];
			LMAX = DVOD01.intData[9];
			LYH = DVOD01.intData[10];
			LEWT = DVOD01.intData[11];
			LACOR = DVOD01.intData[12];
			LSAVF = DVOD01.intData[13];
			LWM = DVOD01.intData[14];
			LIWM = DVOD01.intData[15];
			LOCJS = DVOD01.intData[16];
			MAXORD = DVOD01.intData[17];
			METH = DVOD01.intData[18];
			MITER = DVOD01.intData[19];
			MSBJ = DVOD01.intData[20];
			MXHNIL = DVOD01.intData[21];
			MXSTEP = DVOD01.intData[22];
			N = DVOD01.intData[23];
			NEWH = DVOD01.intData[24];
			NEWQ = DVOD01.intData[25];
			NHNIL = DVOD01.intData[26];
			NQ = DVOD01.intData[27];
			NQNYH = DVOD01.intData[28];
			NQWAIT = DVOD01.intData[29];
			NSLJ = DVOD01.intData[30];
			NSLP = DVOD01.intData[31];
			NYH = DVOD01.intData[32];

			#endregion Common Block: DVOD01 Initialization

			#region Common Block: DVOD02 Initialization

			this._dvod02 = DVOD02;
			HU = DVOD02.doubleData[0];
			NCFN = DVOD02.intData[0];
			NETF = DVOD02.intData[1];
			NFE = DVOD02.intData[2];
			NJE = DVOD02.intData[3];
			NLU = DVOD02.intData[4];
			NNI = DVOD02.intData[5];
			NQU = DVOD02.intData[6];
			NST = DVOD02.intData[7];

			#endregion Common Block: DVOD02 Initialization

			#endregion Common varaible Initialization
		}