/// <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]; }
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(); }
/// <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(); } } }
public Solver(SolverParams param) { Init(param); }
public NewSimForm(SolverParams Params) { InitializeComponent(); this.Params = (Params != null) ? Params : new SolverParams(); SetupFormFromParams(); }