//! \brief Number of scales included in the output.
int_xi_length;
//! \brief Number of azimuth directional calculations.
int_num_thetas;
//! \brief Number of elevation directional calculations.
int_num_phis;
public:
//! \brief Number of spheres in the aggregate.
@@ -95,16 +99,14 @@ public:
doublephsstp;
//! \brief Last scattered radiation elevation angle.
doublephslst;
//! \brief Number of computed directions.
intnum_angles;
//! \brief Number of directions to be explicitly solved.
intndirs;
//! \brief Refractive index of external medium.
doubleexri;
//! \brief Number of scales (wavelengths)
intnxi;
//! \brief Number of scales handled by the current process.
intxi_block_size;
//! \brief Number of directions to be explicitly solved.
intndirs;
//! \brief Index of the wavelength for T-matrix output.
intjwtm;
//! \brief Vector of scale (wavelength) indices.
@@ -115,143 +117,93 @@ public:
double*vec_xi;
//! \brief Number of sphere configurations.
intconfigurations;
//! \brief Vector of sphere sizes.
//! \brief Vector of sphere sizes (all configurations for every scale).
double*vec_sphere_sizes;
//! \brief Sphere sizes arranged for scale (rows) and configurations (columns).
double**sphere_sizes;
//! \brief Vector of sphere refractive indices.
//! \brief Vector of sphere refractive indices (all configurations for every scale).
dcomplex*vec_sphere_ref_indices;
//! \brief Sphere refractive indices arranged for scale (rows) and configurations (columns).
dcomplex**sphere_ref_indices;
//! \brief Vector of sphere scattering cross-sections.
//! \brief Vector of sphere scattering cross-sections (all configurations for every scale).
double*vec_sphere_scs;
//! \brief Sphere scattering cross-sections for scale (rows) and configurations (columns).
double**sphere_scs;
//! \brief Vector of sphere absorption cross-sections.
//! \brief Vector of sphere absorption cross-sections (all configurations for every scale).
double*vec_sphere_abs;
//! \brief Sphere scattering cross-sections for scale (rows) and configurations (columns).
double**sphere_scs;
//! \brief Vector of sphere extinction cross-sections.
//! \brief Vector of sphere extinction cross-sections (all configurations for every scale).
double*vec_sphere_exs;
//! \brief Sphere extinction cross-sections for scale (rows) and configurations (columns).
double**sphere_exs;
//! \brief Vector of sphere albedos.
//! \brief Vector of sphere albedos (all configurations for every scale).
double*vec_sphere_albs;
//! \brief Sphere albedos for scale (rows) and configurations (columns).
double**sphere_albeds;
//! \brief Sphere geometric cross-sections for configurations.
double*gs;
//! \brief Vector of sphere forward scattering amplitudes.
//! \brief Vector of sphere geometric cross-sections for configurations.
double*vec_gs;
//! \brief Vector of sphere forward scattering amplitudes (all configurations for every scale).
dcomplex*vec_fsas;
//! \brief Sphere forward scattering amplitudes for scale (rows) and configuration (columns).
dcomplex**fsas;
//! \brief Vector of QSCHU = 4 pi IMAG(FSAS) / TOTAL_GEOM_SECTION.
dcomplex*vec_qschus;
//! \brief Sphere QSCHU for scale (rows) and configuration (columns).
dcomplex**qschus;
//! \brief Vector of PSCHU = 4 pi REAL(FSAS) / TOTAL_GEOM_SECTION.
dcomplex*vec_pschus;
//! \brief Sphere PSCHU for scale (rows) and configuration (columns).
dcomplex**pschus;
//! \brief Vector of S0MAG = ABS(FSAS) / (4 pi k^3).
dcomplex*vec_s0mags;
//! \brief Sphere S0MAG for scale (rows) and configuration (columns).
dcomplex**s0mags;
//! \brief Vector of asymmetry parameters.
dcomplex*vec_cosavs;
//! \brief Sphere asymmetry parameters for scale (rows) and configuration (columns).
dcomplex**cosavs;
//! \brief Vector of extinction contributions to radiation torques along k for parallel linear polarization.
//! \brief Vector of QSCHU = 4 pi IMAG(FSAS) / TOTAL_GEOM_SECTION (all configurations for every scale).
double*vec_qschus;
//! \brief Vector of PSCHU = 4 pi REAL(FSAS) / TOTAL_GEOM_SECTION (all configurations for every scale).
double*vec_pschus;
//! \brief Vector of S0MAG = ABS(FSAS) / (4 pi k^3) (all configurations for every scale).
double*vec_s0mags;
//! \brief Vector of sphere asymmetry parameters (all configurations for every scale).
double*vec_cosavs;
//! \brief Vector of sphere radiation pressure forces (all configurations for every scale).
double*vec_raprs;
//! \brief Vector of extinction contributions to radiation torques along k for parallel linear polarization (all configurations for every scale).
dcomplex*vec_tqek1;
//! \brief Sphere extinction contributions to radiation torques along k for parallel linear polarization (scales along rows, configurations along columns).
dcomplex**tqek1;
//! \brief Vector of scattering contributions to radiation torques along k for parallel linear polarization.
//! \brief Vector of scattering contributions to radiation torques along k for parallel linear polarization (all configurations for every scale).
dcomplex*vec_tqsk1;
//! \brief Sphere scattering contributions to radiation torques along k for parallel linear polarization (scales along rows, configurations along columns).
dcomplex**tqsk1;
//! \brief Vector of extinction contributions to radiation torques along k for perpendicular linear polarization.
//! \brief Vector of extinction contributions to radiation torques along k for perpendicular linear polarization (all configurations for every scale).
dcomplex*vec_tqek2;
//! \brief Sphere extinction contributions to radiation torques along k for perpendicular linear polarization (scales along rows, configurations along columns).
dcomplex**tqek2;
//! \brief Vector of scattering contributions to radiation torques along k for perpendicular linear polarization.
//! \brief Vector of scattering contributions to radiation torques along k for perpendicular linear polarization (all configurations for every scale).
dcomplex*vec_tqsk2;
//! \brief Sphere scattering contributions to radiation torques along k for perpendicular linear polarization (scales along rows, configurations along columns).
dcomplex**tqsk2;
//! \brief Vector of total forward scattering amplitudes.
//! \brief Vector of total forward scattering amplitudes (one for each scale).
dcomplex*vec_fsat;
//! \brief Vector of total QSCHU.
//! \brief Vector of total QSCHU (one for each scale).
double*vec_qschut;
//! \brief Vector of total PSCHU.
//! \brief Vector of total PSCHU (one for each scale).
double*vec_pschut;
//! \brief Vector of total S0MAG.
//! \brief Vector of total S0MAG (one for each scale).
double*vec_s0magt;
//! \brief Total geometric section.
doubletgs;
//! \brief Vector of cluster scattering cross-sections.
//! \brief Vector of cluster scattering cross-sections (two polarization states per scale).
double*vec_scc;
//! \brief Cluster scattering cross-sections for scales (rows) and polarization (columns)
double**scc;
//! \brief Vector of cluster absorption cross-sections.
//! \brief Vector of cluster absorption cross-sections (two polarization states per scale).
double*vec_abc;
//! \brief Cluster absorption cross-sections for scales (rows) and polarization (columns)
double**abc;
//! \brief Vector of cluster extinction cross-sections.
//! \brief Vector of cluster extinction cross-sections (two polarization states per scale).
double*vec_exc;
//! \brief Cluster extinction cross-sections for scales (rows) and polarization (columns)
double**exc;
//! \brief Vector of cluster albedos.
//! \brief Vector of cluster albedos (two polarization states per scale).
double*vec_albedc;
//! \brief Cluster albedos for scales (rows) and polarization (columns)
double**albedc;
//! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios.
//! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (two polarization states per scale).
double*vec_sccrt;
//! \brief Cluster-to-sum-of-spheres scattering cross-section ratios for scales (rows) and polarization (columns).
double**sccrt;
//! \brief Vector of cluster-to-sum-of-spheres absorption cross-section ratios.
//! \brief Vector of cluster-to-sum-of-spheres absorption cross-section ratios (two polarization states per scale).
double*vec_abcrt;
//! \brief Cluster-to-sum-of-spheres absorption cross-section ratios for scales (rows) and polarization (columns).
double**abcrt;
//! \brief Vector of cluster-to-sum-of-spheres extinction cross-section ratios.
//! \brief Vector of cluster-to-sum-of-spheres extinction cross-section ratios (two polarization states per scale).
double*vec_excrt;
//! \brief Cluster-to-sum-of-spheres extinction cross-section ratios for scales (rows) and polarization (columns).
double**excrt;
//! \brief Vector of forward scattering amplitudes for polarization parallel to incidence.
//! \brief Vector of forward scattering amplitudes for polarization parallel to incidence (one per scale).
dcomplex*vec_fsac11;
//! \brief Vector of forward scattering amplitudes for polarization perpendicular to incidence.
//! \brief Vector of forward scattering amplitudes for polarization perpendicular to incidence (one per scale).
dcomplex*vec_fsac21;
//! \brief Vector of forward scattering amplitudes for polarization parallel to incidence.
//! \brief Vector of forward scattering amplitudes for polarization parallel to incidence (one per scale).
dcomplex*vec_fsac22;
//! \brief Vector of forward scattering amplitudes for polarization perpendicular to incidence.
//! \brief Vector of forward scattering amplitudes for polarization perpendicular to incidence (one per scale).
dcomplex*vec_fsac12;
//! \brief Vector of cluster QSCHU.
dcomplex*vec_qschuc;
//! \brief Cluster QSCHU for scales (rows) and polarization (columns).
dcomplex**qschuc;
//! \brief Vector of cluster PSCHU.
dcomplex*vec_pschuc;
//! \brief Cluster PSCHU for scales (rows) and polarization (columns).
dcomplex**pschuc;
//! \brief Vector of cluster S0MAG.
dcomplex*vec_s0magc;
//! \brief Cluster S0MAG for scales (rows) and polarization (columns).
dcomplex**s0magc;
//! \brief Vector of cluster asymmetry parameters.
dcomplex*vec_cosavc;
//! \brief Cluster asymmetry parameters for scales (rows) and polarization (columns).
dcomplex**cosavc;
//! \brief Vector of optical forces along incidence direction [N].
dcomplex*vec_fkc;
//! \brief Optical forces along incidence direction for scales (rows) and polarization (columns).
dcomplex**fkc;
//! \brief Vector of incidence azimuth directions.
//! \brief Vector of cluster QSCHU (two polarization states per scale).
double*vec_qschuc;
//! \brief Vector of cluster PSCHU (two polarization states per scale).
double*vec_pschuc;
//! \brief Vector of cluster S0MAG (two polarization states per scale).
double*vec_s0magc;
//! \brief Vector of cluster asymmetry parameters (two polarization states per scale).
double*vec_cosavc;
//! \brief Vector of cluster radiation pressure forces (two polarization states per scale).
double*vec_raprc;
//! \brief Vector of optical forces along incidence direction [N] (two polarization states per scale).
double*vec_fkc;
//! \brief Vector of incidence azimuth directions (one per direction).
double*vec_dir_tidg;
//! \brief Vector of incidence elevation directions.
//! \brief Vector of incidence elevation directions (one per direction).
double*vec_dir_pidg;
//! \brief Vector of scattering azimuth directions.
//! \brief Vector of scattering azimuth directions (one per direction).
double*vec_dir_tsdg;
//! \brief Vector of scattering elevation directions.
//! \brief Vector of scattering elevation directions (one per direction).
double*vec_dir_psdg;
//! \brief Vector of scattering angles.
//! \brief Vector of scattering angles (one per direction).
double*vec_dir_scand;
//! \brief Control parameter for incidence plane referred to meridional plane.