void Prepare() { fft = isf.fft; fft.init(); isf.hbar = HBar; isf.estimate_dt = 1.0f / InvDt; isf.InitComputeShader(); isf.InitISF(); InitComputeShader(); var N = isf.N; psi1 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); psi2 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); psi_mask = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RFloat); isf.InitializePsi(ref psi1, ref psi2); //for(int i = 0; i < 10; ++i) //{ //UpdatePsi(ref psi1, ref psi2); //} //fft.ExportComplex3D(psi1, "test/ink.psi1.json"); InitilizeParticles(); }
void Prepare() { InitScale(); fft = isf.fft; fft.init(); isf.hbar = HBar; isf.size = Size; isf.N = N; isf.estimate_dt = 1.0f / DtInv; NFloat = ISFUtils.IntToFloat(N); isf.InitComputeShader(); isf.InitISF(); psi1 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); psi2 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); isf.InitializePsi(ref psi1, ref psi2); InitComputeShader(); InitPsi(ref psi1, ref psi2); InitParticles(); }
void PrepareNozzle() { fft = isf.fft; fft.init(); isf.InitComputeShader(); isf.InitISF(); InitComputeShader(); var N = isf.N; psi1 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); psi2 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); UpdateNozzles(); isf.InitializePsi(ref psi1, ref psi2); for (int i = 0; i < 10; ++i) { InitilizeNozzlePsi(ref psi1, ref psi2); } CreateShpereObstacleMask(); InitilizeParticles(); // fft.ExportFloat4_3D(particles.GetParticlePostion(), "test/part.init.json"); }
void TakeTestN(Vector3Int N) { isf.N = N; isf.InitISF(); psi1 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); psi2 = FFT.CreateRenderTexture3D(N[0], N[1], N[2], RenderTextureFormat.RGFloat); isf.InitializePsi(ref psi1, ref psi2); var watch = new System.Diagnostics.Stopwatch(); watch.Start(); for (int i = 0; i < 5; ++i) { isf.current_tick += 1; isf.ShroedingerIntegration(ref psi1, ref psi2); isf.Normalize(ref psi1, ref psi2); isf.PressureProject(ref psi1, ref psi2); fft.ExportComplex3D(psi1, null); Debug.Log(" At: " + i.ToString()); } watch.Stop(); BenchmarkSingleResult ben = new BenchmarkSingleResult(); ben.milli = watch.ElapsedMilliseconds / 5.0; ben.Nx = N.x; ben.Ny = N.y; ben.Nz = N.z; ben.scale = N.x * N.y * N.z; result.results.Add(ben); }