density[in_box] = rho_0

# Set up sphere 1
in_sphere_1 = (x - 10 * au) ** 2 + (y - 15 * au) ** 2 + (z - 20 * au) ** 2 < r_1 ** 2
density[in_sphere_1] = rho_1

# Set up sphere 2
in_sphere_2 = (x - 26.666667 * au) ** 2 + (y - 31.666667 * au) ** 2 + (z - 28.333333 * au) ** 2 < r_2 ** 2
density[in_sphere_2] = rho_2

# Remove dust close to source
in_rsub = np.sqrt(x * x + y * y + z * z) < RSUB
density[in_rsub] = 0.

m.add_density_grid(density, d)

# m.set_propagation_check_frequency(1.0)

# Set up illuminating source:
s = m.add_spherical_source()
s.radius = 6.6 * rsun
s.temperature = 33000.
s.luminosity = 4 * pi * s.radius ** 2 * sigma * s.temperature ** 4

# Set up number of photons
m.set_n_photons(initial=NPHOTONS, imaging=0)

# Write out and run
m.write(os.path.join('models', 'bm2_eff_vor_temperature.rtin'), overwrite=True)
m.run(os.path.join('models', 'bm2_eff_vor_temperature.rtout'), mpi=True, overwrite=True)
fnu = np.array([1., 1.])
nu = c / (wav * 1.e-4)

s = m.add_point_source_collection()
s.position = np.array([x, y, z]).transpose()
s.velocity = np.array([vx, vy, vz]).transpose()
s.spectrum = (nu[::-1], fnu[::-1])
s.luminosity = np.repeat(1., N)

# Set up images

i = m.add_peeled_images(sed=False, image=True)
i.set_wavelength_range(30, 0.995, 1.005)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_angles(np.linspace(0., 180, 13), np.linspace(0., 360, 13))

i = m.add_binned_images(sed=False, image=True)
i.set_wavelength_range(30, 0.995, 1.005)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_bins(500, 1)

m.set_forced_first_scattering(False)

m.set_n_initial_iterations(0)
m.set_n_photons(imaging=1e6)

m.write('disk_collection.rtin', overwrite=True)
m.run('disk_collection.rtout', overwrite=True, mpi=False)
Exemplo n.º 3
0
# cause a shadow.
density = np.ones(m.grid.shape) * 1e-21
density[26:38, 26:38, 26:38] = 1.e-18
m.add_density_grid(density, 'kmh_lite.hdf5')

# Add a point source in the center
s = m.add_point_source()
s.position = (0.4 * pc, 0., 0.)
s.luminosity = 1000 * lsun
s.temperature = 6000.

# Add multi-wavelength image for a single viewing angle
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(1, 190., 210.)
image.set_viewing_angles(np.repeat(45., 36), np.linspace(5., 355., 36))
image.set_image_size(400, 400)
image.set_image_limits(-1.5 * pc, 1.5 * pc, -1.5 * pc, 1.5 * pc)

# Set runtime parameters. We turn off scattering for the imaging since it is not
# important at these wavelengths.
m.set_n_initial_iterations(5)
m.set_raytracing(True)
m.set_n_photons(initial=4e6,
                imaging=0,
                raytracing_sources=1,
                raytracing_dust=1e7)

# Write out input file
m.write('flyaround_cube.rtin')
m.run('flyaround_cube.rtout', mpi=True)
Exemplo n.º 4
0
# Define cell walls
x = np.linspace(-10., 10., 101) * pc
y = np.linspace(-10., 10., 101) * pc
z = np.linspace(-10., 10., 101) * pc

# Initialize model and set up density grid
m = Model()
m.set_cartesian_grid(x, y, z)
m.add_density_grid(np.ones((100, 100, 100)) * 1.e-20, 'kmh_lite.hdf5')

# Generate random sources
for i in range(100):
    s = m.add_point_source()
    xs = random.uniform(-10., 10.) * pc
    ys = random.uniform(-10., 10.) * pc
    zs = random.uniform(-10., 10.) * pc
    s.position = (xs, ys, zs)
    s.luminosity = 10. ** random.uniform(0., 3.) * lsun
    s.temperature = random.uniform(3000., 8000.)

# Specify that the specific energy and density are needed
m.conf.output.output_specific_energy = 'last'
m.conf.output.output_density = 'last'

# Set the number of photons
m.set_n_photons(initial=10000000, imaging=0)

# Write output and run model
m.write('quantity_cartesian.rtin')
m.run('quantity_cartesian.rtout', mpi=True)
Exemplo n.º 5
0
m = Model()

m.set_amr_grid(amr)

m.add_density_grid(amr['density'], '/Users/desika//pd/hyperion-dust-0.1.0/dust_files/d03_3.1_6.0_A.hdf5')

m.set_minimum_temperature(10)

m.set_n_initial_iterations(0)

m.set_raytracing(True)

# Add a point source in the center
s = m.add_point_source()
s.position = (0, 0., 0.)
s.luminosity = 1000 * lsun
s.temperature = 6000.

i = m.add_peeled_images(sed=False, image=True)
i.set_image_limits(-1 * pc, 1 * pc, -1 * pc, 1 * pc)
i.set_image_size(256, 256)
i.set_viewing_angles(np.repeat(30, 8), np.linspace(0., 360, 9)[:-1])
i.set_wavelength_range(1, 1000, 1001)

m.set_n_photons(imaging=0, raytracing_sources=0, raytracing_dust=1e6)

m.set_copy_input(False)

m.write('test.rtin', overwrite=True)
m.run('test.rtout', overwrite=True)
image = m.add_peeled_images(sed=True, image=False)
image.set_wavelength_range(250, 0.01, 5000.0)
image.set_viewing_angles(np.linspace(0.0, 90.0, 10), np.repeat(20.0, 10))
image.set_track_origin("detailed")

# Add multi-wavelength image for a single viewing angle
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(30, 1.0, 1000.0)
image.set_viewing_angles([30.0], [20.0])
image.set_image_size(200, 200)
image.set_image_limits(-dist, dist, -dist, dist)

# Add a fly-around at 500 microns
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(1, 499.0, 501.0)
image.set_viewing_angles(np.repeat(45.0, 36), np.linspace(5.0, 355.0, 36))
image.set_image_size(200, 200)
image.set_image_limits(-dist, dist, -dist, dist)

# Radiative Transfer
m.set_n_initial_iterations(5)
m.set_raytracing(True)
m.set_n_photons(initial=1000000, imaging=1000000, raytracing_sources=1000000, raytracing_dust=1000000)
m.set_sample_sources_evenly(True)
m.set_mrw(True, gamma=2.0)
# m.set_pda(True)

# Write out and run input.rtin file
m.write("input_lessdense.rtin")
m.run("input_lessdense.rtout", mpi=True, n_processes=2)
fnu = np.array([1., 1.])
nu = c / (wav * 1.e-4)

s = m.add_point_source_collection()
s.position = np.array([x, y, z]).transpose()
s.velocity = np.array([vx, vy, vz]).transpose()
s.spectrum = (nu[::-1], fnu[::-1])
s.luminosity = np.repeat(1., N)

# Set up images

i = m.add_peeled_images(sed=False, image=True)
i.set_wavelength_range(30, 0.995, 1.005)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_angles(np.linspace(0., 180, 13), np.linspace(0., 360, 13))

i = m.add_binned_images(sed=False, image=True)
i.set_wavelength_range(30, 0.995, 1.005)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_bins(500, 1)

m.set_forced_first_scattering(False)

m.set_n_initial_iterations(0)
m.set_n_photons(imaging=1e6)

m.write('disk_collection.rtin', overwrite=True)
m.run('disk_collection.rtout', overwrite=True, mpi=False)
Exemplo n.º 8
0
# Add density grid with constant density and add a higher density cube inside to
# cause a shadow.
density = np.ones(m.grid.shape) * 1e-21
density[26:38, 26:38, 26:38] = 1.e-18
m.add_density_grid(density, 'kmh_lite.hdf5')

# Add a point source in the center
s = m.add_point_source()
s.position = (0.4 * pc, 0., 0.)
s.luminosity = 1000 * lsun
s.temperature = 6000.

# Add multi-wavelength image for a single viewing angle
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(1, 190., 210.)
image.set_viewing_angles(np.repeat(45., 36), np.linspace(5., 355., 36))
image.set_image_size(400, 400)
image.set_image_limits(-1.5 * pc, 1.5 * pc, -1.5 * pc, 1.5 * pc)

# Set runtime parameters. We turn off scattering for the imaging since it is not
# important at these wavelengths.
m.set_n_initial_iterations(5)
m.set_raytracing(True)
m.set_n_photons(initial=4e6, imaging=0,
                raytracing_sources=1, raytracing_dust=1e7)

# Write out input file
m.write('flyaround_cube.rtin')
m.run('flyaround_cube.rtout', mpi=True)
density = np.zeros(m.grid.shape)
density[:, :, 0] = 1.0

m.add_density_grid(density, "kmh_lite.hdf5")

# narrow emission line spectrum at 1 micron
wav = np.array([0.9999, 1.0001])
fnu = np.array([1.0, 1.0])
nu = c / (wav * 1.0e-4)

s = m.add_spherical_source()
s.position = 0.5, 0.0, 0.0
s.velocity = -1e8, 0.0, 0.0
s.spectrum = nu[::-1], fnu[::-1]
s.luminosity = 1
s.radius = 0.1

# Set up images

i = m.add_peeled_images(sed=False, image=True)
i.set_wavelength_range(30, 0.99, 1.01)
i.set_image_limits(-1.0, 1.0, -1.0, 1.0)
i.set_image_size(100, 100)
i.set_viewing_angles(np.linspace(0.0, 180, 13), np.repeat(0.0, 13))

m.set_n_initial_iterations(0)
m.set_n_photons(imaging=1e6)

m.write("simple_scat.rtin", overwrite=True)
m.run("simple_scat.rtout", overwrite=True, mpi=True)
Exemplo n.º 10
0
z = (arange(nz)-(float(nz)-1)/2)*au/1

m.set_cartesian_grid(x, y, z)

dens = zeros((nx-1,ny-1,nz-1)) + 1.0e-17

m.add_density_grid(dens, d)

source = m.add_spherical_source()
source.luminosity = lsun
source.radius = rsun
source.temperature = 4000.

m.set_n_photons(initial=1000000, imaging=0)
m.set_convergence(True, percentile=99., absolute=2., relative=1.02)

m.write("test_cartesian.rtin")

m.run("test_cartesian.rtout", mpi=False)

n = ModelOutput('test_cartesian.rtout')

grid = n.get_quantities()

temp = grid.quantities['temperature'][0]

plt.imshow(temp[:,4,:],origin="lower",interpolation="nearest", \
        vmin=temp.min(),vmax=temp.max())
plt.colorbar()
plt.show()
Exemplo n.º 11
0
# Define cell walls
x = np.linspace(-10., 10., 101) * pc
y = np.linspace(-10., 10., 101) * pc
z = np.linspace(-10., 10., 101) * pc

# Initialize model and set up density grid
m = Model()
m.set_cartesian_grid(x, y, z)
m.add_density_grid(np.ones((100, 100, 100)) * 1.e-20, 'kmh_lite.hdf5')

# Generate random sources
for i in range(100):
    s = m.add_point_source()
    xs = random.uniform(-10., 10.) * pc
    ys = random.uniform(-10., 10.) * pc
    zs = random.uniform(-10., 10.) * pc
    s.position = (xs, ys, zs)
    s.luminosity = 10. ** random.uniform(0., 3.) * lsun
    s.temperature = random.uniform(3000., 8000.)

# Specify that the specific energy and density are needed
m.conf.output.output_specific_energy = 'last'
m.conf.output.output_density = 'last'

# Set the number of photons
m.set_n_photons(initial=10000000, imaging=0)

# Write output and run model
m.write('example_cartesian.rtin')
m.run('example_cartesian.rtout', mpi=True)
image.set_wavelength_range(250, 0.01, 5000.)
image.set_viewing_angles(np.linspace(0., 90., 10), np.repeat(20., 10))
image.set_track_origin('detailed')

# Add multi-wavelength image for a single viewing angle
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(30, 1., 1000.)
image.set_viewing_angles([30.], [20.])
image.set_image_size(200, 200)
image.set_image_limits(-15*au, 15*au, -15*au, 15*au)

# Add a fly-around at 500 microns
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(1, 499., 501.)
image.set_viewing_angles(np.repeat(45., 36), np.linspace(5., 355., 36))
image.set_image_size(200, 200)
image.set_image_limits(-15*au, 15*au, -15*au, 15*au)

# Radiative Transfer
m.set_n_initial_iterations(5)
m.set_raytracing(True)
m.set_n_photons(initial=1000000, imaging=1000000,
                raytracing_sources=1000000, raytracing_dust=1000000)
m.set_sample_sources_evenly(True)
m.set_mrw(True, gamma=2.)
#m.set_pda(True)

# Write out and run input.rtin file
m.write('input_withoutproxima.rtin')
m.run('input_withoutproxima.rtout', mpi=True, n_processes = 2)
vy = np.zeros(m.grid.shape)
vz = np.zeros(m.grid.shape)

m.add_density_grid(density, 'kmh_lite.hdf5', velocity=(vx, vy, vz))

# narrow emission line spectrum at 1 micron
wav = np.array([0.9999, 1.0001])
fnu = np.array([1., 1.])
nu = c / (wav * 1.e-4)

s = m.add_spherical_source()
s.position = 0.5, 0., 0.
s.velocity = -1e8, 0., 0.
s.spectrum = nu[::-1], fnu[::-1]
s.luminosity = 1
s.radius = 0.1

# Set up images

i = m.add_peeled_images(sed=False, image=True)
i.set_wavelength_range(30, 0.99, 1.01)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_angles(np.linspace(0., 180, 13), np.repeat(0., 13))

m.set_n_initial_iterations(0)
m.set_n_photons(imaging=1e6)

m.write('moving_scat.rtin', overwrite=True)
m.run('moving_scat.rtout', overwrite=True, mpi=True)
Exemplo n.º 14
0
jnu = jlambda * wav / nu

# Set up the source - note that the normalization of the spectrum is not
# important - the luminosity is set separately.
s = m.add_external_spherical_source()
s.radius = pc
s.spectrum = (nu, jnu)
s.luminosity = np.pi * pc * pc * FOUR_PI_JNU

# Add an inside observer with an all-sky camera
image = m.add_peeled_images(sed=False, image=True)
image.set_inside_observer((0., 0., 0.))
image.set_image_limits(180., -180., -90., 90.)
image.set_image_size(256, 128)
image.set_wavelength_range(100, 0.01, 1000.)

# Use raytracing for high signal-to-noise
m.set_raytracing(True)

# Don't compute the temperature
m.set_n_initial_iterations(0)

# Only include photons from the source (since there is no dust)
m.set_n_photons(imaging=0,
                raytracing_sources=10000000,
                raytracing_dust=0)

# Write out and run the model
m.write('example_isrf.rtin')
m.run('example_isrf.rtout')
Exemplo n.º 15
0
nu = c / (wav * 1.e-4)

for isource in range(N):
    s = m.add_point_source()
    s.position = x[isource], y[isource], z[isource]
    s.velocity = vx[isource], vy[isource], vz[isource]
    s.spectrum = nu[::-1], fnu[::-1]
    s.luminosity = 1

# Set up images

i = m.add_peeled_images(sed=False, image=True)
i.set_wavelength_range(30, 0.995, 1.005)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_angles(np.linspace(0., 180, 13), np.linspace(0., 360, 13))

i = m.add_binned_images(sed=False, image=True)
i.set_wavelength_range(30, 0.995, 1.005)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_bins(500, 1)

m.set_forced_first_scattering(False)

m.set_n_initial_iterations(0)
m.set_n_photons(imaging=1e6)

m.write('disk_indiv.rtin', overwrite=True)
m.run('disk_indiv.rtout', overwrite=True, mpi=False)
Exemplo n.º 16
0
    def run_thermal_hyperion(self, nphot=1e6, mrw=False, pda=False, \
            niterations=20, percentile=99., absolute=2.0, relative=1.02, \
            max_interactions=1e8, mpi=False, nprocesses=None):
        d = []
        for i in range(len(self.grid.dust)):
            d.append(IsotropicDust( \
                    self.grid.dust[i].nu[::-1].astype(numpy.float64), \
                    self.grid.dust[i].albedo[::-1].astype(numpy.float64), \
                    self.grid.dust[i].kext[::-1].astype(numpy.float64)))

        m = HypModel()
        if (self.grid.coordsystem == "cartesian"):
            m.set_cartesian_grid(self.grid.w1*AU, self.grid.w2*AU, \
                    self.grid.w3*AU)
        elif (self.grid.coordsystem == "cylindrical"):
            m.set_cylindrical_polar_grid(self.grid.w1*AU, self.grid.w3*AU, \
                    self.grid.w2)
        elif (self.grid.coordsystem == "spherical"):
            m.set_spherical_polar_grid(self.grid.w1*AU, self.grid.w2, \
                    self.grid.w3)

        for i in range(len(self.grid.density)):
            if (self.grid.coordsystem == "cartesian"):
                m.add_density_grid(numpy.transpose(self.grid.density[i], \
                        axes=(2,1,0)), d[i])
            if (self.grid.coordsystem == "cylindrical"):
                m.add_density_grid(numpy.transpose(self.grid.density[i], \
                        axes=(1,2,0)), d[i])
            if (self.grid.coordsystem == "spherical"):
                m.add_density_grid(numpy.transpose(self.grid.density[i], \
                        axes=(2,1,0)), d[i])

        sources = []
        for i in range(len(self.grid.stars)):
            sources.append(m.add_spherical_source())
            sources[i].luminosity = self.grid.stars[i].luminosity * L_sun
            sources[i].radius = self.grid.stars[i].radius * R_sun
            sources[i].temperature = self.grid.stars[i].temperature

        m.set_mrw(mrw)
        m.set_pda(pda)
        m.set_max_interactions(max_interactions)
        m.set_n_initial_iterations(niterations)
        m.set_n_photons(initial=nphot, imaging=0)
        m.set_convergence(True, percentile=percentile, absolute=absolute, \
                relative=relative)

        m.write("temp.rtin")

        m.run("temp.rtout", mpi=mpi, n_processes=nprocesses)

        n = ModelOutput("temp.rtout")

        grid = n.get_quantities()

        self.grid.temperature = []
        temperature = grid.quantities['temperature']
        for i in range(len(temperature)):
            if (self.grid.coordsystem == "cartesian"):
                self.grid.temperature.append(numpy.transpose(temperature[i], \
                        axes=(2,1,0)))
            if (self.grid.coordsystem == "cylindrical"):
                self.grid.temperature.append(numpy.transpose(temperature[i], \
                        axes=(2,0,1)))
            if (self.grid.coordsystem == "spherical"):
                self.grid.temperature.append(numpy.transpose(temperature[i], \
                        axes=(2,1,0)))

        os.system("rm temp.rtin temp.rtout")
density = np.zeros(m.grid.shape)
density[:, :, 0] = 1.

m.add_density_grid(density, 'kmh_lite.hdf5')

# narrow emission line spectrum at 1 micron
wav = np.array([0.9999, 1.0001])
fnu = np.array([1., 1.])
nu = c / (wav * 1.e-4)

s = m.add_spherical_source()
s.position = 0.5, 0., 0.
s.velocity = -1e8, 0., 0.
s.spectrum = nu[::-1], fnu[::-1]
s.luminosity = 1
s.radius = 0.1

# Set up images

i = m.add_peeled_images(sed=False, image=True)
i.set_wavelength_range(30, 0.99, 1.01)
i.set_image_limits(-1., 1., -1., 1.)
i.set_image_size(100, 100)
i.set_viewing_angles(np.linspace(0., 180, 13), np.repeat(0., 13))

m.set_n_initial_iterations(0)
m.set_n_photons(imaging=1e6)

m.write('simple_scat.rtin', overwrite=True)
m.run('simple_scat.rtout', overwrite=True, mpi=True)
Exemplo n.º 18
0
    def run_thermal_hyperion(self, nphot=1e6, mrw=False, pda=False, \
            niterations=20, percentile=99., absolute=2.0, relative=1.02, \
            max_interactions=1e8, mpi=False, nprocesses=None):
        d = []
        for i in range(len(self.grid.dust)):
            d.append(IsotropicDust( \
                    self.grid.dust[i].nu[::-1].astype(numpy.float64), \
                    self.grid.dust[i].albedo[::-1].astype(numpy.float64), \
                    self.grid.dust[i].kext[::-1].astype(numpy.float64)))

        m = HypModel()
        if (self.grid.coordsystem == "cartesian"):
            m.set_cartesian_grid(self.grid.w1*AU, self.grid.w2*AU, \
                    self.grid.w3*AU)
        elif (self.grid.coordsystem == "cylindrical"):
            m.set_cylindrical_polar_grid(self.grid.w1*AU, self.grid.w3*AU, \
                    self.grid.w2)
        elif (self.grid.coordsystem == "spherical"):
            m.set_spherical_polar_grid(self.grid.w1*AU, self.grid.w2, \
                    self.grid.w3)

        for i in range(len(self.grid.density)):
            if (self.grid.coordsystem == "cartesian"):
                m.add_density_grid(numpy.transpose(self.grid.density[i], \
                        axes=(2,1,0)), d[i])
            if (self.grid.coordsystem == "cylindrical"):
                m.add_density_grid(numpy.transpose(self.grid.density[i], \
                        axes=(1,2,0)), d[i])
            if (self.grid.coordsystem == "spherical"):
                m.add_density_grid(numpy.transpose(self.grid.density[i], \
                        axes=(2,1,0)), d[i])

        sources = []
        for i in range(len(self.grid.stars)):
            sources.append(m.add_spherical_source())
            sources[i].luminosity = self.grid.stars[i].luminosity * L_sun
            sources[i].radius = self.grid.stars[i].radius * R_sun
            sources[i].temperature = self.grid.stars[i].temperature

        m.set_mrw(mrw)
        m.set_pda(pda)
        m.set_max_interactions(max_interactions)
        m.set_n_initial_iterations(niterations)
        m.set_n_photons(initial=nphot, imaging=0)
        m.set_convergence(True, percentile=percentile, absolute=absolute, \
                relative=relative)

        m.write("temp.rtin")

        m.run("temp.rtout", mpi=mpi, n_processes=nprocesses)

        n = ModelOutput("temp.rtout")

        grid = n.get_quantities()

        self.grid.temperature = []
        temperature = grid.quantities['temperature']
        for i in range(len(temperature)):
            if (self.grid.coordsystem == "cartesian"):
                self.grid.temperature.append(numpy.transpose(temperature[i], \
                        axes=(2,1,0)))
            if (self.grid.coordsystem == "cylindrical"):
                self.grid.temperature.append(numpy.transpose(temperature[i], \
                        axes=(2,0,1)))
            if (self.grid.coordsystem == "spherical"):
                self.grid.temperature.append(numpy.transpose(temperature[i], \
                        axes=(2,1,0)))

        os.system("rm temp.rtin temp.rtout")
Exemplo n.º 19
0
image.set_wavelength_range(250, 0.01, 5000.)
image.set_viewing_angles(np.linspace(0., 90., 10), np.repeat(20., 10))
image.set_track_origin('detailed')

# Add multi-wavelength image for a single viewing angle
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(30, 1., 1000.)
image.set_viewing_angles([30.], [20.])
image.set_image_size(200, 200)
image.set_image_limits(-dist, dist, -dist, dist)

# Add a fly-around at 500 microns
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(1, 499., 501.)
image.set_viewing_angles(np.repeat(45., 36), np.linspace(5., 355., 36))
image.set_image_size(200, 200)
image.set_image_limits(-dist, dist, -dist, dist)

# Radiative Transfer
m.set_n_initial_iterations(5)
m.set_raytracing(True)
m.set_n_photons(initial=1000000, imaging=1000000,
                raytracing_sources=1000000, raytracing_dust=1000000)
m.set_sample_sources_evenly(True)
m.set_mrw(True, gamma=2.)
#m.set_pda(True)

# Write out and run input.rtin file
m.write('input.rtin')
m.run('input.out', mpi=True, n_processes = 2)
Exemplo n.º 20
0
m.set_spherical_polar_grid(r, t, p)

dens = zeros((nr-1,nt-1,np-1)) + 1.0e-17

m.add_density_grid(dens, d)

source = m.add_spherical_source()
source.luminosity = lsun
source.radius = rsun
source.temperature = 4000.

m.set_n_photons(initial=1000000, imaging=0)
m.set_convergence(True, percentile=99., absolute=2., relative=1.02)

m.write("test_spherical.rtin")

m.run("test_spherical.rtout", mpi=False)

n = ModelOutput('test_spherical.rtout')

grid = n.get_quantities()

temp = grid.quantities['temperature'][0]

for i in range(9):
    plt.imshow(temp[i,:,:],origin="lower",interpolation="nearest", \
            vmin=temp.min(),vmax=temp.max())
    plt.colorbar()
    plt.show()
Exemplo n.º 21
0
m.set_spherical_polar_grid(r, t, p)

dens = zeros((nr - 1, nt - 1, np - 1)) + 1.0e-17

m.add_density_grid(dens, d)

source = m.add_spherical_source()
source.luminosity = lsun
source.radius = rsun
source.temperature = 4000.

m.set_n_photons(initial=1000000, imaging=0)
m.set_convergence(True, percentile=99., absolute=2., relative=1.02)

m.write("test_spherical.rtin")

m.run("test_spherical.rtout", mpi=False)

n = ModelOutput('test_spherical.rtout')

grid = n.get_quantities()

temp = grid.quantities['temperature'][0]

for i in range(9):
    plt.imshow(temp[i,:,:],origin="lower",interpolation="nearest", \
            vmin=temp.min(),vmax=temp.max())
    plt.colorbar()
    plt.show()
Exemplo n.º 22
0
m.set_cartesian_grid(w, w, w)

# Add density grid with constant density and add a higher density cube inside to
# cause a shadow.
density = np.ones(m.grid.shape) * 1e-21
density[26:38, 26:38, 26:38] = 1.e-18
m.add_density_grid(density, 'kmh_lite.hdf5')

# Add a point source in the center
s = m.add_point_source()
s.position = (0.4 * pc, 0., 0.)
s.luminosity = 1000 * lsun
s.temperature = 6000.

# Add multi-wavelength image for a single viewing angle
image = m.add_peeled_images(sed=False, image=True)
image.set_wavelength_range(20, 1., 1000.)
image.set_viewing_angles([60.], [80.])
image.set_image_size(400, 400)
image.set_image_limits(-1.5 * pc, 1.5 * pc, -1.5 * pc, 1.5 * pc)

# Set runtime parameters
m.set_n_initial_iterations(5)
m.set_raytracing(True)
m.set_n_photons(initial=4e6, imaging=4e7,
                raytracing_sources=1, raytracing_dust=1e7)

# Write out input file
m.write('simple_cube.rtin')
m.run('simple_cube.rtout', mpi=True)