Esempio n. 1
0
        public WaveSimFdtd2D(int gridW, int gridH, float c0, float Δx)
        {
            int hr = 0;

            mC0 = c0;
            mΔt = Δx * mSc / mC0;

            VisualizeMode = VisualizeModeType.VM_Linear;

            mGridW     = gridW;
            mGridH     = gridH;
            mGridCount = mGridW * mGridH;

#if false
            mC0 = c0;
            mΔt = Δt;
            mΔx = Δx;

            mSc = mC0 * mΔt / mΔx;
#endif
            // 上下左右 x 2
            mDelayArray = new Delay[(gridW + gridH) * 2 * 2];
            for (int i = 0; i < mDelayArray.Length; ++i)
            {
                mDelayArray[i] = new Delay(2);
            }

            Reset();

            mCS = new WWWave2DGpu();
            do
            {
                hr = mCS.Init();
                if (hr < 0)
                {
                    return;
                }

                WWWave2DParams p;
                p.fieldW = gridW;
                p.fieldH = gridH;
                p.deltaT = mΔt;
                p.sc     = mSc;
                p.c0     = mC0;

                hr = mCS.Setup(p, mLoss, mRoh, mCr);
            } while (false);
        }
Esempio n. 2
0
 public void Term()
 {
     mCS.Term();
     mCS = null;
 }