model_movie_shearing_spot Class Reference

Defines an movie model based on the shearing spot models employed in VRT2. More...

#include "model/model_movie_shearing_spot.h"

Inheritance diagram for model_movie_shearing_spot:
Collaboration diagram for model_movie_shearing_spot:

Public Member Functions

 model_movie_shearing_spot (double start_observation, std::vector< double > observation_times, std::string sed_fit_parameter_file="VRT2/DataFiles/2010_combined_fit_parameters.d", double frequency=230e9, double M=VRT2::VRT2_Constants::M_SgrA_cm, double D=VRT2::VRT2_Constants::D_SgrA_cm)
 Constructor to make a shearing spot movie. Takes the start time of the observation (UTC), vector of times to create the movie at (UTC), frequerncy (Hz), mass (cm), distance (cm).
 
virtual size_t size () const
 Returns the number of the parameters the model expects.
 
void set_image_resolution (int Nray)
 
void set_screen_size (double Rmax)
 
void add_background_riaf ()
 
- Public Member Functions inherited from model_movie< model_image_shearing_spot >
 model_movie (std::vector< double > observation_times)
 
virtual void generate_model (std::vector< double > parameters)
 A user-supplied one-time generate function that permits model construction prior to calling the closure_phase for each datum. Takes a vector of parameters.
 
virtual std::complex< double > visibility (datum_visibility &d, double accuracy)
 Returns visibility in Jy, computed numerically. The accuracy parameters isn't used presently.
 
virtual double visibility_amplitude (datum_visibility_amplitude &d, double accuracy)
 Returns visibility amplitude in Jy, computed numerically. The accuracy parameters isn't used presently.
 
virtual double closure_phase (datum_closure_phase &d, double accuracy)
 Returns closure ampitudes, computed numerically. The accuracy parameter is not used at present.
 
void get_movie_frame (double t_frame, std::vector< std::vector< double > > &alpha, std::vector< std::vector< double > > &beta, std::vector< std::vector< double > > &I) const
 Provides direct access to the constructed image. Sets a 2D grid of angles (alpha, beta) in radians and intensities in Jy per pixel.
 
void get_visibilities (std::vector< std::vector< double > > &u, std::vector< std::vector< double > > &v, std::vector< std::vector< std::complex< double > > > &V) const
 Provides direct access to the complex visibilities. Sets a 2D grid of baselines (u,v) in lambda, and visibilites in Jy.
 
void get_visibility_amplitudes (std::vector< std::vector< double > > &u, std::vector< std::vector< double > > &v, std::vector< std::vector< double > > &V) const
 Provides direct access to the visibility amplitudes. Sets a 2D grid of baselines (u,v) in lambda, and visibilites in Jy.
 
void output_movie_frame (double t_frame, std::string fname, bool rotate=false)
 Outputs the frame of the movie at time t to the file with name fname. If rotate is true then each frame will be rotated by the position angle.
 
void use_spline_interp (bool use_spline)
 Provides ability to use bicubic spline interpolator (true) instead of regular bicubic. Code defaults to false.
 
std::vector< double > get_frame_times ()
 Provides the ability to get frame times in the movie.
 
virtual void set_mpi_communicator (MPI_Comm comm)
 Defines a set of processors provided to the model for parallel computation via an MPI communicator. Only facilates code parallelization if the model computation is parallelized via MPI.
 
model_image_shearing_spotget_movie_model_frame (size_t i)
 Provides access to the the individual model_image frames of the base movie. Requires the movie index.
 

Additional Inherited Members

- Protected Member Functions inherited from model_movie< model_image_shearing_spot >
virtual size_t find_time_index (double tobs) const
 
- Protected Attributes inherited from model_movie< model_image_shearing_spot >
bool _generated_model
 
std::vector< double > _observation_times
 
std::vector< model_image_shearing_spot * > _movie_frames
 
std::vector< double > _parameters
 
- Protected Attributes inherited from model_visibility
MPI_Comm _comm
 
- Protected Attributes inherited from model_visibility_amplitude
MPI_Comm _comm
 
- Protected Attributes inherited from model_closure_phase
MPI_Comm _comm
 

Detailed Description

From a user defined time list this creates an image at each requested time to allow the creation of a shearing spot "movie". There are additional tuning parameters that may impact accuracy, e.g., distance to the image screen, number of rays to produce, etc. See the appropriate parts of model_image_shearing_spot.cpp for more.

Parameter list:

  • parameters[0] ... Black hole spin parameter (-1 to 1).
  • parameters[1] ... Cosine of the inclincation relative to the line of sight.
  • parameters[2] ... Spot electron density normalization.
  • parameters[3] ... Standard deviation of the Gaussian in M of initial shearing spot.
  • parameters[4] ... Initial time of spot in observers time (M). Typically starts at -2000M for so that you see the start of the spot when ray-tracing back in time.
  • parameters[5] ... Initial radius of spot in M.
  • parameters[6] ... Initial azimuthal angle of spot around accretion disk.
  • parameters[7] ... Infalling rate parameter \(\alpha_r\) of accretion flow \(u^r = u_K^r + \alpha_r(u_{ff}^r - u_K^r)\).
  • parameters[8] ... Subkeplerian factor \(\alpha_{\Omega}\) of accretion flow \(\Omega u^{\phi}/u^t = \Omega_{ff} + \kappa(\Omega_K - \Omega_{ff})\).
  • parameters[9] ... Position angle in radians.
Warning
Requires the VRT2 library to be installed.

Member Function Documentation

void add_background_riaf ( )

Adds background sed fitted riaf to model as specified by sed_fit_parameters_file that was given in the constructor.

void set_image_resolution ( int  Nray)

Sets model_image_shearing_spot to generate production images with resolution Nray x Nray. The default is 128x128, which is probably larger than required in practice.

void set_screen_size ( double  Rmax)

Sets the screen size of the image in units M so that image has size Rmax x Rmax. The default is 15 which is probably larger than needed.


The documentation for this class was generated from the following files: