Defines an movie model based on the shearing spot models employed in VRT2. More...
#include "model/model_movie_shearing_spot.h"
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_spot * | get_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: