Beispiel #1
0
        /// <summary>
        /// Initialize the solver with parameters
        /// </summary>
        /// <param name="param"></param>
        public void Init(SolverParams param)
        {
            NX         = param.Width;
            NY         = param.Height;
            NZ         = param.Depth;
            dims       = new IntPos(NX, NY, NZ);
            array_size = NX * NY * NZ;

            dt     = param.Dt;
            dt_inv = -dt * NX;

            force       = param.Force;
            source      = param.Source;
            tAmb        = param.Tamb;
            temperature = param.Temperature;
            vorticity   = param.Vorticity;

            vel_x           = new float[array_size];
            vel_y           = new float[array_size];
            vel_z           = new float[array_size];
            vel_x_prev      = new float[array_size];
            vel_y_prev      = new float[array_size];
            vel_z_prev      = new float[array_size];
            density         = new float[array_size];
            density_prev    = new float[array_size];
            heat            = new float[array_size];
            heat_prev       = new float[array_size];
            pressure        = new float[array_size];
            pressure_prev   = new float[array_size];
            curl            = new float[array_size];
            compressibility = new float[array_size];
            divergence      = new float[array_size];
            obstacles       = new int[array_size];
        }
Beispiel #2
0
        public FluidSolver(SolverParams Params)
        {
            numCellsX = Params.Width;
            numCellsY = n = Params.Height;
            size      = (numCellsX + 2) * (numCellsY + 2);
            dt        = Params.dt;
            Diffusion = Params.Diffusion;
            Viscosity = Params.Viscosity;

            Init();
        }
Beispiel #3
0
 /// <summary>
 /// Brings up the new simulation form
 /// and responds accordingly
 /// </summary>
 private void NewSimulation()
 {
     pauseSim();
     using (NewSimForm form = new NewSimForm(Params))
     {
         if (form.ShowDialog() == DialogResult.OK)
         {
             solver = new Solver();
             Params = form.Params;
             initSim();
         }
         else
         {
             resumeSim();
         }
     }
 }
Beispiel #4
0
 public Solver(SolverParams param)
 {
     Init(param);
 }
Beispiel #5
0
 public NewSimForm(SolverParams Params)
 {
     InitializeComponent();
     this.Params = (Params != null) ? Params : new SolverParams();
     SetupFormFromParams();
 }