Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from yt.mods import *
- from yt.utilities.particle_generator import *
- import yt.utilities.initial_conditions as ic
- import yt.utilities.flagging_methods as fm
- from yt.frontends.stream.api import refine_amr
- from yt.utilities.lib.CICDeposit import CICSample_3
- def _pgdensity(field, data):
- blank = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return blank
- CICSample_3(data["particle_position_x"].astype(np.float64),
- data["particle_position_y"].astype(np.float64),
- data["particle_position_z"].astype(np.float64),
- data["particle_gas_density"].astype(np.float32),
- np.int64(data.NumberOfParticles),
- blank, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- np.float64(data['dx']))
- return blank
- add_field("particle_density_cic", function=_pgdensity,
- validators=[ValidateGridType()],
- display_name=r"$\mathrm{Particle}\/\mathrm{Density}$")
- def add_indices(npart, start_num) :
- return np.arange((npart)) + start_num
- domain_dims = (128, 128, 128)
- dens = 0.1*np.random.random(domain_dims)
- fields = {"Density": dens}
- ug = load_uniform_grid(fields, domain_dims, 1.0)
- num_particles1 = 10000
- field_list = ["particle_position_x","particle_position_y",
- "particle_position_z","particle_gas_density"]
- x = np.random.uniform(low=0.0, high=0.5, size=num_particles1) # random positions
- y = np.random.uniform(low=0.0, high=0.5, size=num_particles1) # random positions
- z = np.random.uniform(low=0.0, high=0.5, size=num_particles1) # random positions
- pdata = {'particle_position_x':x,
- 'particle_position_y':y,
- 'particle_position_z':z}
- particles1 = FromListParticleGenerator(ug, num_particles1, pdata)
- particles1.assign_indices()
- particles1.apply_to_stream()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement