DART-Ray
Data Types | Modules | Functions/Subroutines | Variables
visual_routines.f90 File Reference

Data Types

type  visual_routines::texture
 

Modules

module  visual_routines
 Contains the subroutines to calculate the surface brightness maps for either far-away observers or observers located within the radiation transfer model.
 

Functions/Subroutines

subroutine visual_routines::make_maps
 Calls routines to calculate surface brightness maps for the external observer. In MPI mode, every node calculates the maps corresponding to the wavelengths stored in the local i_obs_arr(). Then reduction of the map_arr_out() array is performed. If no communication mode is used, for simplicity only the master node calculates the maps. More...
 
subroutine visual_routines::convert_maps_to_mjy_sr
 Covert the map units to MJy/sr. More...
 
subroutine visual_routines::create_map_arrays
 Creates map_arr(), map_arr_hd() and map_out_arr(). It also sets size_map() and pixel_size(), pixel_size_hd(). More...
 
subroutine visual_routines::create_texture_array
 Creates texture_arr(). More...
 
subroutine visual_routines::calc_texture_array (theta, phi, obs_vec, xi_dir, yi_dir)
 Calculates texture_arr(), the normalized surface brightness profiles for the projections of the cells on the external observer maps. It also sets the direction of the axis on the observer maps. These directions are such that, when seeing the galaxy edge-on at a position along the 3D X axis, the Y' axis on the maps corresponds to the 3D Z axis while the X' axis on the map corresponds to the 3D Y axis. /todo maybe instead of 0.99 factor just subtract half pixel size. More...
 
subroutine visual_routines::find_ray_cell_intersections (rc, cellsize, ro, obs_vec, length)
 Finds the points of intersections between a line of sight and a cell. Used in the routines to calculate the cell normalized surface brightness profiles (both in the case of the external and internal observer). More...
 
subroutine visual_routines::calc_ray_inters (j, rc, cellsize, ro, obs_vec, flag_ray, p1, p2)
 
subroutine visual_routines::map_projection (idir, obs_vec, xi_dir, yi_dir)
 Projects the 3D grid cells onto the observer map. The calculated maps are only those corresponding to the wavelengths stored in the local i_obs_arr() array. More...
 
real(kind=real64) function visual_routines::average_section (map_section, ns)
 Returns the average of the values in a map section. Used for average smoothing. Note that zero elements are not considered in the average smoothing. More...
 
real(kind=real64) function visual_routines::median_section (map_section, ns, zero_value)
 calculates median of the input 2D array More...
 
subroutine visual_routines::find_projected_point (r, obs_vec, xi_dir, yi_dir, xpp, ypp, ix_p, iy_p)
 
real(kind=real64) function visual_routines::scal_prod (vector1, vector2)
 Calculates dot product between two 1-dimensional vectors. More...
 
subroutine visual_routines::normalize (vector)
 Normalises input vector. More...
 
subroutine visual_routines::cross_prod (vector1, vector2, out_arr)
 Calculates cross-product between two input arrays. Note that the all arrays need to have the same size. More...
 
subroutine visual_routines::map_in_projection (idir)
 Calculates surface brightness maps for internal observer by projecting emission of from each cell onto HealPix sphere centred at the observer position. More...
 
subroutine visual_routines::calc_cube_texture_sphere (cellsize, rc, ro, omega_cell, nside_map, n_px)
 Calculates normalized surface brightness profile of a projected cell over the observer sphere. This is done by calculating the intersection lengths of the line-of-sights corresponding to the HEALPix spherical pixels (and the observer position). The code determines the spherical region over which to calculate these intersections (calculating them over the entire sphere is inefficient and not necessary because cells cover only a limited region of the sky). This is done by calculating the intersections for neighbour pixels until all the neighbour pixels have zero intersection length. More...
 
subroutine visual_routines::find_starting_kall (kall)
 Finds the index of the first element of ind_out_maps() whose maps are being calculated. In the stellar RT this index is zero. In the dust RT it can be different. More...
 

Variables

real(kind=real64), dimension(:,:,:), allocatable visual_routines::map_arr
 
real(kind=real64), dimension(:,:), allocatable visual_routines::map_in_arr
 
integer visual_routines::npixel_maps_hd
 
real(kind=real64) visual_routines::pixel_size
 
real(kind=real64) visual_routines::pixel_size_hd
 
real(kind=real64) visual_routines::area_pixel
 
real(kind=real64) visual_routines::area_pixel_hd
 
type(texture), dimension(:), allocatable visual_routines::texture_arr
 
integer, dimension(:), allocatable visual_routines::im0
 
integer, dimension(:), allocatable visual_routines::im1
 
integer, dimension(:), allocatable visual_routines::nt_arr
 
integer, parameter visual_routines::hd_xfactor = 4
 
integer, dimension(:), allocatable visual_routines::iq_px
 
integer, dimension(:), allocatable visual_routines::pix_list
 
integer, dimension(:), allocatable visual_routines::neighbour_list
 
real(kind=real64), dimension(:), allocatable visual_routines::mproj