Advertisement
Guest User

particle generator

a guest
Oct 14th, 2014
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. from yt.mods import *
  2. from yt.utilities.particle_generator import *
  3. import yt.utilities.initial_conditions as ic
  4. import yt.utilities.flagging_methods as fm
  5. from yt.frontends.stream.api import refine_amr
  6. from yt.utilities.lib.CICDeposit import CICSample_3
  7.  
  8. def _pgdensity(field, data):
  9. blank = np.zeros(data.ActiveDimensions, dtype='float32')
  10. if data.NumberOfParticles == 0: return blank
  11. CICSample_3(data["particle_position_x"].astype(np.float64),
  12. data["particle_position_y"].astype(np.float64),
  13. data["particle_position_z"].astype(np.float64),
  14. data["particle_gas_density"].astype(np.float32),
  15. np.int64(data.NumberOfParticles),
  16. blank, np.array(data.LeftEdge).astype(np.float64),
  17. np.array(data.ActiveDimensions).astype(np.int32),
  18. np.float64(data['dx']))
  19. return blank
  20.  
  21. add_field("particle_density_cic", function=_pgdensity,
  22. validators=[ValidateGridType()],
  23. display_name=r"$\mathrm{Particle}\/\mathrm{Density}$")
  24.  
  25. def add_indices(npart, start_num) :
  26. return np.arange((npart)) + start_num
  27.  
  28. domain_dims = (128, 128, 128)
  29. dens = 0.1*np.random.random(domain_dims)
  30. fields = {"Density": dens}
  31. ug = load_uniform_grid(fields, domain_dims, 1.0)
  32.  
  33. num_particles1 = 10000
  34. field_list = ["particle_position_x","particle_position_y",
  35. "particle_position_z","particle_gas_density"]
  36.  
  37. x = np.random.uniform(low=0.0, high=0.5, size=num_particles1) # random positions
  38. y = np.random.uniform(low=0.0, high=0.5, size=num_particles1) # random positions
  39. z = np.random.uniform(low=0.0, high=0.5, size=num_particles1) # random positions
  40.  
  41. pdata = {'particle_position_x':x,
  42. 'particle_position_y':y,
  43. 'particle_position_z':z}
  44.  
  45. particles1 = FromListParticleGenerator(ug, num_particles1, pdata)
  46. particles1.assign_indices()
  47. particles1.apply_to_stream()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement