# computation integrator = phd.MovingMeshMUSCLHancock() integrator.set_mesh(mesh) integrator.set_riemann(phd.HLLC()) integrator.set_particles(particles) integrator.set_domain_manager(domain_manager) integrator.set_boundary_condition(phd.Reflective()) integrator.set_reconstruction(phd.PieceWiseLinear()) integrator.set_equation_state(phd.IdealGas(gamma=gamma)) sim_name = "sod" if phd._in_parallel: integrator.set_load_balance(phd.LoadBalance()) sim_name = "mpi_sod" # add finish criteria simulation_time_manager = phd.SimulationTimeManager() simulation_time_manager.add_finish(phd.Time(time_max=0.15)) # output last step output = phd.FinalOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # Create simulator simulation = phd.Simulation(simulation_name=sim_name) simulation.set_integrator(integrator) simulation.set_simulation_time_manager(simulation_time_manager) simulation.initialize() simulation.solve()
part += 1 # zero out velocities and set particle type pc['velocity-x'][:] = 0.0 pc['velocity-y'][:] = 0.0 pc['tag'][:] = phd.ParticleTAGS.Real pc['type'][:] = phd.ParticleTAGS.Undefined return pc # simulation driver sim = phd.Simulation(cfl=0.5, tf=2.5, pfreq=25, relax_num_iterations=0, output_relax=False, fname='implosion') sim.add_component( create_particles(1.4)) # create inital state of the simulation sim.add_component(phd.DomainLimits(dim=2, xmin=0., xmax=1.)) # spatial size of problem sim.add_component(phd.Boundary(boundary_type=phd.BoundaryType.Reflective) ) # reflective boundary condition sim.add_component(phd.Mesh()) # tesselation algorithm sim.add_component(phd.PieceWiseLinear()) # Linear reconstruction #sim.add_component(phd.PieceWiseConstant()) # Linear reconstruction sim.add_component(phd.HLLC(gamma=1.4)) # riemann solver sim.add_component(phd.MovingMesh(regularize=1)) # Integrator
integrator = phd.Nbody(dt=0.005) integrator.set_particles(particles) integrator.set_domain_manager(domain_manager) integrator.set_gravity_tree(gravity_tree) integrator.set_load_balance(load_balance) # add finish criteria simulation_time_manager = phd.SimulationTimeManager() simulation_time_manager.add_finish(phd.Time(time_max=1.0)) # output first step output = phd.InitialOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # output last step output = phd.FinalOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) output = phd.IterationInterval(iteration_interval=25) output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # Create simulator simulation = phd.Simulation(simulation_name="plummer", colored_logs=True) simulation.set_integrator(integrator) simulation.set_simulation_time_manager(simulation_time_manager) simulation.initialize() simulation.solve()
integrator = phd.MovingMeshMUSCLHancock() integrator.set_mesh(mesh) integrator.set_riemann(phd.HLLC()) integrator.set_particles(particles) integrator.set_domain_manager(domain_manager) integrator.set_boundary_condition(phd.Periodic()) integrator.set_reconstruction(phd.PieceWiseLinear(gizmo_limiter=False)) integrator.set_equation_state(phd.IdealGas(gamma=gamma)) # add finish criteria simulation_time_manager = phd.SimulationTimeManager() simulation_time_manager.add_finish(phd.Time(time_max=1.0)) # output last step output = phd.FinalOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # output initial data output = phd.InitialOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # Create simulator simulation = phd.Simulation(simulation_name="linear_wave_" + str(i), colored_logs=True) simulation.set_integrator(integrator) simulation.set_simulation_time_manager(simulation_time_manager) simulation.initialize() simulation.solve()
integrator.set_riemann(phd.HLLC(boost=True)) integrator.set_particles(particles) integrator.set_equation_state(phd.IdealGas()) integrator.set_domain_manager(domain_manager) integrator.set_load_balance(phd.LoadBalance()) integrator.set_boundary_condition(phd.Reflective()) integrator.set_reconstruction(phd.PieceWiseLinear(limiter="arepo", gizmo_limiter=True)) # source term integrator.add_source_term(phd.ConstantGravity()) # add finish criteria simulation_time_manager = phd.SimulationTimeManager() simulation_time_manager.add_finish(phd.Time(time_max=2.0)) # output last step output = phd.FinalOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) output = phd.IterationInterval(iteration_interval=100) output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # Create simulator simulation = phd.Simulation(simulation_name="rt", colored_logs=True) simulation.set_integrator(integrator) simulation.set_simulation_time_manager(simulation_time_manager) simulation.initialize() simulation.solve()
integrator = phd.Nbody(dt=dt) integrator.set_particles(particles) integrator.set_domain_manager(domain_manager) integrator.set_gravity_tree(gravity_tree) # add finish criteria simulation_time_manager = phd.SimulationTimeManager() simulation_time_manager.add_finish(phd.Time(time_max=10*T)) # output first step output = phd.InitialOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # output last step output = phd.FinalOutput() output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # output every time step output = phd.IterationInterval(iteration_interval=10) output.set_writer(phd.Hdf5()) simulation_time_manager.add_output(output) # Create simulator simulation = phd.Simulation(simulation_name="two_body") simulation.set_integrator(integrator) simulation.set_simulation_time_manager(simulation_time_manager) simulation.initialize() simulation.solve()
r = 0.1 cells = ((pc['position-x']-.5)**2 + (pc['position-y']-.5)**2) <= r**2 pc['pressure'][cells] = 1.0/(np.pi*r**2)*(gamma-1) # zero out the velocities and set particle type pc['velocity-x'][:] = 0.0 pc['velocity-y'][:] = 0.0 pc['tag'][:] = phd.ParticleTAGS.Real pc['type'][:] = phd.ParticleTAGS.Undefined return pc # simulation driver sim = phd.Simulation( cfl=0.5, tf=0.1, pfreq=1, relax_num_iterations=10, output_relax=False, fname='sedov_2d_uniform') sim.add_particles(create_particles(1.4)) # create inital state of the simulation sim.add_domain(phd.DomainLimits(dim=2, xmin=0., xmax=1.)) # spatial size of problem sim.add_boundary(phd.Boundary(boundary_type=phd.BoundaryType.Reflective)) # reflective boundary condition sim.add_mesh(phd.Mesh()) # tesselation algorithm sim.add_reconstruction(phd.PieceWiseLinear(limiter=1)) # Linear reconstruction #sim.add_reconstruction(phd.PieceWiseConstant(limiter=1)) # Linear reconstruction sim.add_riemann(phd.HLLC(gamma=1.4, boost=0)) # riemann solver sim.add_integrator(phd.MovingMesh(regularize=1)) # Integrator # run the simulation sim.solve()
cells = ((pc['position-x'] - .5)**2 + (pc['position-y'] - .5)**2) <= r**2 pc['pressure'][cells] = 1.0 / (dx * dx) * (gamma - 1) # zero out velocities and set particle type pc['velocity-x'][:] = 0.0 pc['velocity-y'][:] = 0.0 pc['tag'][:] = phd.ParticleTAGS.Real pc['type'][:] = phd.ParticleTAGS.Undefined return pc # simulation driver sim = phd.Simulation(cfl=0.5, tf=0.1, pfreq=1, relax_num_iterations=0, output_relax=False, fname='sedov_2d_cartesian') sim.add_particles( create_particles(1.4)) # create inital state of the simulation sim.add_domain(phd.DomainLimits(dim=2, xmin=0., xmax=1.)) # spatial size of problem sim.add_boundary(phd.Boundary(boundary_type=phd.BoundaryType.Reflective) ) # reflective boundary condition sim.add_mesh(phd.Mesh()) # tesselation algorithm sim.add_reconstruction(phd.PieceWiseLinear(limiter=1)) # Linear reconstruction #sim.add_reconstruction(phd.PieceWiseConstant(limiter=1)) # Linear reconstruction sim.add_riemann(phd.HLLC(gamma=1.4, boost=0)) # riemann solver sim.add_integrator(phd.MovingMesh(regularize=1)) # Integrator