Loading src/include/outputs.h +58 −9 Original line number Original line Diff line number Diff line Loading @@ -41,9 +41,13 @@ */ */ class ClusterOutputInfo { class ClusterOutputInfo { protected: protected: //! \brief Number of azimuth directional calculations. //! \brief Number of incident azimuth calculations. int _num_theta; //! \brief Number of scattered azimuth calculations. int _num_thetas; int _num_thetas; //! \brief Number of elevation directional calculations. //! \brief Number of incident elevation calculations. int _num_phi; //! \brief Number of scattered elevation calculations. int _num_phis; int _num_phis; /*! \brief Write the output to a HDF5 file. /*! \brief Write the output to a HDF5 file. Loading @@ -54,6 +58,15 @@ protected: int write_hdf5(const std::string &output); int write_hdf5(const std::string &output); /*! \brief Write the output to a legacy text file. /*! \brief Write the output to a legacy text file. * * This function takes care of writing the output using the legacy * formatted ASCII structure. If the output file does not exist, it * is created. If it exists, the new content is appended to the old * one, without overwriting. This is useful for a simpler handling * of multi-process output combination, provided that only one process * writes to the output file at any given time. Simultaneous write * operations by different processes is not supported by the legacy * ASCII format. * * * \param output: `const string &` Path to the output to be written. * \param output: `const string &` Path to the output to be written. * \return result: `int` Exit code (0 if successful). * \return result: `int` Exit code (0 if successful). Loading Loading @@ -81,6 +94,8 @@ public: int iavm; int iavm; //! \brief Flag for reference to meridional plane. //! \brief Flag for reference to meridional plane. int isam; int isam; //! \brief Flag for dielectric function definition. int idfc; //! \brief Vector of spherical components X Cartesian coordinates. //! \brief Vector of spherical components X Cartesian coordinates. double *vec_x_coords; double *vec_x_coords; //! \brief Vector of spherical components Y Cartesian coordinates. //! \brief Vector of spherical components Y Cartesian coordinates. Loading Loading @@ -123,6 +138,8 @@ public: int jwtm; int jwtm; //! \brief Vector of scale (wavelength) indices. //! \brief Vector of scale (wavelength) indices. int *vec_jxi; int *vec_jxi; //! \brief Vector of error severities (0 - success, 1 - HJV, 2 - DME). short *vec_ier; //! \brief Vector of vacuum wave numbers. //! \brief Vector of vacuum wave numbers. double *vec_vk; double *vec_vk; //! \brief Vector of computed scales. //! \brief Vector of computed scales. Loading @@ -141,8 +158,12 @@ public: double *vec_sphere_exs; double *vec_sphere_exs; //! \brief Vector of sphere albedos (all configurations for every scale). //! \brief Vector of sphere albedos (all configurations for every scale). double *vec_sphere_albs; double *vec_sphere_albs; //! \brief Vector of sphere geometric cross-sections for configurations. //! \brief Vector of sphere scattering cross-section to geometric section ratios (all configurations for every scale). double *vec_gs; double *vec_sphere_sqscs; //! \brief Vector of sphere absorption cross-sections to geometric section ratios (all configurations for every scale). double *vec_sphere_sqabs; //! \brief Vector of sphere extinction cross-sections to geometric section ratios (all configurations for every scale). double *vec_sphere_sqexs; //! \brief Vector of sphere forward scattering amplitudes (all configurations for every scale). //! \brief Vector of sphere forward scattering amplitudes (all configurations for every scale). dcomplex *vec_fsas; dcomplex *vec_fsas; //! \brief Vector of QSCHU = 4 pi IMAG(FSAS) / TOTAL_GEOM_SECTION (all configurations for every scale). //! \brief Vector of QSCHU = 4 pi IMAG(FSAS) / TOTAL_GEOM_SECTION (all configurations for every scale). Loading Loading @@ -189,6 +210,18 @@ public: double *vec_albedc1; double *vec_albedc1; //! \brief Vector of cluster albedos (perpendicular polarization). //! \brief Vector of cluster albedos (perpendicular polarization). double *vec_albedc2; double *vec_albedc2; //! \brief Vector of cluster scattering to geometric cross-section ratios (parallel polarization). double *vec_qscamc1; //! \brief Vector of cluster scattering to geometric cross-section ratios (perpendicular polarization). double *vec_qscamc2; //! \brief Vector of cluster absorption to geometric cross-section ratios (parallel polarization). double *vec_qabsmc1; //! \brief Vector of cluster absorption to geometric cross-section ratios (perpendicular polarization). double *vec_qabsmc2; //! \brief Vector of cluster extinction to geometric cross-section ratios (parallel polarization). double *vec_qextmc1; //! \brief Vector of cluster extinction to geometric cross-section ratios (perpendicular polarization). double *vec_qextmc2; //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). double *vec_sccrt1; double *vec_sccrt1; //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). Loading Loading @@ -233,13 +266,13 @@ public: double *vec_fkc1; double *vec_fkc1; //! \brief Vector of optical forces along incidence direction [N] (perpendicular polarization). //! \brief Vector of optical forces along incidence direction [N] (perpendicular polarization). double *vec_fkc2; double *vec_fkc2; //! \brief Vector of incidence azimuth directions (one per direction). //! \brief Vector of incidence azimuth directions (one per incidence azimuth). double *vec_dir_tidg; double *vec_dir_tidg; //! \brief Vector of incidence elevation directions (one per direction). //! \brief Vector of incidence elevation directions (one per incidence elevation). double *vec_dir_pidg; double *vec_dir_pidg; //! \brief Vector of scattering azimuth directions (one per direction). //! \brief Vector of scattering azimuth directions (one per scattering azimuth). double *vec_dir_tsdg; double *vec_dir_tsdg; //! \brief Vector of scattering elevation directions (one per direction). //! \brief Vector of scattering elevation directions (one per scattering elevation). double *vec_dir_psdg; double *vec_dir_psdg; //! \brief Vector of scattering angles (one per direction). //! \brief Vector of scattering angles (one per direction). double *vec_dir_scand; double *vec_dir_scand; Loading @@ -252,7 +285,7 @@ public: //! \brief Control parameter for scattering plane referred to scattering plane (one per direction). //! \brief Control parameter for scattering plane referred to scattering plane (one per direction). double *vec_dir_sfsp; double *vec_dir_sfsp; //! \brief Components of the unitary vector perpendicular to incidence plane (three per direction). //! \brief Components of the unitary vector perpendicular to incidence plane (three per direction). double *vec_dir_uni; double *vec_dir_un; //! \brief Components of the unitary vector perpendicular to scattering plane (three per direction). //! \brief Components of the unitary vector perpendicular to scattering plane (three per direction). double *vec_dir_uns; double *vec_dir_uns; //! \brief Vector of sphere differential scattering amplitude with polarization parallel to parallel incidence field. //! \brief Vector of sphere differential scattering amplitude with polarization parallel to parallel incidence field. Loading Loading @@ -291,6 +324,18 @@ public: double *vec_dir_albedc1; double *vec_dir_albedc1; //! \brief Vector of cluster differential albedos (perpendicular polarization). //! \brief Vector of cluster differential albedos (perpendicular polarization). double *vec_dir_albedc2; double *vec_dir_albedc2; //! \brief Vector of differential scattering to geometric cross-section ratios (parallel polarization). double *vec_dir_qscc1; //! \brief Vector of differential scattering to geometric cross-section ratios (perpendicular polarization). double *vec_dir_qscc2; //! \brief Vector of differential absorption to geometric cross-section ratios (parallel polarization). double *vec_dir_qabc1; //! \brief Vector of differential absorption to geometric cross-section ratios (perpendicular polarization). double *vec_dir_qabc2; //! \brief Vector of differential extinction to geometric cross-section ratios (parallel polarization). double *vec_dir_qexc1; //! \brief Vector of differential extinction to geometric cross-section ratios (perpendicular polarization). double *vec_dir_qexc2; //! \brief Vector of differential cluster-to-total scattering cross-section ratios (parallel polarization). //! \brief Vector of differential cluster-to-total scattering cross-section ratios (parallel polarization). double *vec_dir_sccrt1; double *vec_dir_sccrt1; //! \brief Vector of differential cluster-to-total scattering cross-section ratios (perpendicular polarization). //! \brief Vector of differential cluster-to-total scattering cross-section ratios (perpendicular polarization). Loading Loading @@ -327,6 +372,10 @@ public: double *vec_dir_pschuc1; double *vec_dir_pschuc1; //! \brief Vector of differential cluster PSCHU (perpendicular polarization). //! \brief Vector of differential cluster PSCHU (perpendicular polarization). double *vec_dir_pschuc2; double *vec_dir_pschuc2; //! \brief Vector of cluster differential S0MAG (parallel polarization). double *vec_dir_s0magc1; //! \brief Vector of cluster differential S0MAG (perpendicular polarization). double *vec_dir_s0magc2; //! \brief Vector of differential cluster asymmetry parameters (parallel polarization). //! \brief Vector of differential cluster asymmetry parameters (parallel polarization). double *vec_dir_cosavc1; double *vec_dir_cosavc1; //! \brief Vector of differential cluster asymmetry parameters (perpendicular polarization). //! \brief Vector of differential cluster asymmetry parameters (perpendicular polarization). Loading src/libnptm/outputs.cpp +664 −35 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
src/include/outputs.h +58 −9 Original line number Original line Diff line number Diff line Loading @@ -41,9 +41,13 @@ */ */ class ClusterOutputInfo { class ClusterOutputInfo { protected: protected: //! \brief Number of azimuth directional calculations. //! \brief Number of incident azimuth calculations. int _num_theta; //! \brief Number of scattered azimuth calculations. int _num_thetas; int _num_thetas; //! \brief Number of elevation directional calculations. //! \brief Number of incident elevation calculations. int _num_phi; //! \brief Number of scattered elevation calculations. int _num_phis; int _num_phis; /*! \brief Write the output to a HDF5 file. /*! \brief Write the output to a HDF5 file. Loading @@ -54,6 +58,15 @@ protected: int write_hdf5(const std::string &output); int write_hdf5(const std::string &output); /*! \brief Write the output to a legacy text file. /*! \brief Write the output to a legacy text file. * * This function takes care of writing the output using the legacy * formatted ASCII structure. If the output file does not exist, it * is created. If it exists, the new content is appended to the old * one, without overwriting. This is useful for a simpler handling * of multi-process output combination, provided that only one process * writes to the output file at any given time. Simultaneous write * operations by different processes is not supported by the legacy * ASCII format. * * * \param output: `const string &` Path to the output to be written. * \param output: `const string &` Path to the output to be written. * \return result: `int` Exit code (0 if successful). * \return result: `int` Exit code (0 if successful). Loading Loading @@ -81,6 +94,8 @@ public: int iavm; int iavm; //! \brief Flag for reference to meridional plane. //! \brief Flag for reference to meridional plane. int isam; int isam; //! \brief Flag for dielectric function definition. int idfc; //! \brief Vector of spherical components X Cartesian coordinates. //! \brief Vector of spherical components X Cartesian coordinates. double *vec_x_coords; double *vec_x_coords; //! \brief Vector of spherical components Y Cartesian coordinates. //! \brief Vector of spherical components Y Cartesian coordinates. Loading Loading @@ -123,6 +138,8 @@ public: int jwtm; int jwtm; //! \brief Vector of scale (wavelength) indices. //! \brief Vector of scale (wavelength) indices. int *vec_jxi; int *vec_jxi; //! \brief Vector of error severities (0 - success, 1 - HJV, 2 - DME). short *vec_ier; //! \brief Vector of vacuum wave numbers. //! \brief Vector of vacuum wave numbers. double *vec_vk; double *vec_vk; //! \brief Vector of computed scales. //! \brief Vector of computed scales. Loading @@ -141,8 +158,12 @@ public: double *vec_sphere_exs; double *vec_sphere_exs; //! \brief Vector of sphere albedos (all configurations for every scale). //! \brief Vector of sphere albedos (all configurations for every scale). double *vec_sphere_albs; double *vec_sphere_albs; //! \brief Vector of sphere geometric cross-sections for configurations. //! \brief Vector of sphere scattering cross-section to geometric section ratios (all configurations for every scale). double *vec_gs; double *vec_sphere_sqscs; //! \brief Vector of sphere absorption cross-sections to geometric section ratios (all configurations for every scale). double *vec_sphere_sqabs; //! \brief Vector of sphere extinction cross-sections to geometric section ratios (all configurations for every scale). double *vec_sphere_sqexs; //! \brief Vector of sphere forward scattering amplitudes (all configurations for every scale). //! \brief Vector of sphere forward scattering amplitudes (all configurations for every scale). dcomplex *vec_fsas; dcomplex *vec_fsas; //! \brief Vector of QSCHU = 4 pi IMAG(FSAS) / TOTAL_GEOM_SECTION (all configurations for every scale). //! \brief Vector of QSCHU = 4 pi IMAG(FSAS) / TOTAL_GEOM_SECTION (all configurations for every scale). Loading Loading @@ -189,6 +210,18 @@ public: double *vec_albedc1; double *vec_albedc1; //! \brief Vector of cluster albedos (perpendicular polarization). //! \brief Vector of cluster albedos (perpendicular polarization). double *vec_albedc2; double *vec_albedc2; //! \brief Vector of cluster scattering to geometric cross-section ratios (parallel polarization). double *vec_qscamc1; //! \brief Vector of cluster scattering to geometric cross-section ratios (perpendicular polarization). double *vec_qscamc2; //! \brief Vector of cluster absorption to geometric cross-section ratios (parallel polarization). double *vec_qabsmc1; //! \brief Vector of cluster absorption to geometric cross-section ratios (perpendicular polarization). double *vec_qabsmc2; //! \brief Vector of cluster extinction to geometric cross-section ratios (parallel polarization). double *vec_qextmc1; //! \brief Vector of cluster extinction to geometric cross-section ratios (perpendicular polarization). double *vec_qextmc2; //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). double *vec_sccrt1; double *vec_sccrt1; //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). //! \brief Vector of cluster-to-sum-of-spheres scattering cross-section ratios (parallel polarization). Loading Loading @@ -233,13 +266,13 @@ public: double *vec_fkc1; double *vec_fkc1; //! \brief Vector of optical forces along incidence direction [N] (perpendicular polarization). //! \brief Vector of optical forces along incidence direction [N] (perpendicular polarization). double *vec_fkc2; double *vec_fkc2; //! \brief Vector of incidence azimuth directions (one per direction). //! \brief Vector of incidence azimuth directions (one per incidence azimuth). double *vec_dir_tidg; double *vec_dir_tidg; //! \brief Vector of incidence elevation directions (one per direction). //! \brief Vector of incidence elevation directions (one per incidence elevation). double *vec_dir_pidg; double *vec_dir_pidg; //! \brief Vector of scattering azimuth directions (one per direction). //! \brief Vector of scattering azimuth directions (one per scattering azimuth). double *vec_dir_tsdg; double *vec_dir_tsdg; //! \brief Vector of scattering elevation directions (one per direction). //! \brief Vector of scattering elevation directions (one per scattering elevation). double *vec_dir_psdg; double *vec_dir_psdg; //! \brief Vector of scattering angles (one per direction). //! \brief Vector of scattering angles (one per direction). double *vec_dir_scand; double *vec_dir_scand; Loading @@ -252,7 +285,7 @@ public: //! \brief Control parameter for scattering plane referred to scattering plane (one per direction). //! \brief Control parameter for scattering plane referred to scattering plane (one per direction). double *vec_dir_sfsp; double *vec_dir_sfsp; //! \brief Components of the unitary vector perpendicular to incidence plane (three per direction). //! \brief Components of the unitary vector perpendicular to incidence plane (three per direction). double *vec_dir_uni; double *vec_dir_un; //! \brief Components of the unitary vector perpendicular to scattering plane (three per direction). //! \brief Components of the unitary vector perpendicular to scattering plane (three per direction). double *vec_dir_uns; double *vec_dir_uns; //! \brief Vector of sphere differential scattering amplitude with polarization parallel to parallel incidence field. //! \brief Vector of sphere differential scattering amplitude with polarization parallel to parallel incidence field. Loading Loading @@ -291,6 +324,18 @@ public: double *vec_dir_albedc1; double *vec_dir_albedc1; //! \brief Vector of cluster differential albedos (perpendicular polarization). //! \brief Vector of cluster differential albedos (perpendicular polarization). double *vec_dir_albedc2; double *vec_dir_albedc2; //! \brief Vector of differential scattering to geometric cross-section ratios (parallel polarization). double *vec_dir_qscc1; //! \brief Vector of differential scattering to geometric cross-section ratios (perpendicular polarization). double *vec_dir_qscc2; //! \brief Vector of differential absorption to geometric cross-section ratios (parallel polarization). double *vec_dir_qabc1; //! \brief Vector of differential absorption to geometric cross-section ratios (perpendicular polarization). double *vec_dir_qabc2; //! \brief Vector of differential extinction to geometric cross-section ratios (parallel polarization). double *vec_dir_qexc1; //! \brief Vector of differential extinction to geometric cross-section ratios (perpendicular polarization). double *vec_dir_qexc2; //! \brief Vector of differential cluster-to-total scattering cross-section ratios (parallel polarization). //! \brief Vector of differential cluster-to-total scattering cross-section ratios (parallel polarization). double *vec_dir_sccrt1; double *vec_dir_sccrt1; //! \brief Vector of differential cluster-to-total scattering cross-section ratios (perpendicular polarization). //! \brief Vector of differential cluster-to-total scattering cross-section ratios (perpendicular polarization). Loading Loading @@ -327,6 +372,10 @@ public: double *vec_dir_pschuc1; double *vec_dir_pschuc1; //! \brief Vector of differential cluster PSCHU (perpendicular polarization). //! \brief Vector of differential cluster PSCHU (perpendicular polarization). double *vec_dir_pschuc2; double *vec_dir_pschuc2; //! \brief Vector of cluster differential S0MAG (parallel polarization). double *vec_dir_s0magc1; //! \brief Vector of cluster differential S0MAG (perpendicular polarization). double *vec_dir_s0magc2; //! \brief Vector of differential cluster asymmetry parameters (parallel polarization). //! \brief Vector of differential cluster asymmetry parameters (parallel polarization). double *vec_dir_cosavc1; double *vec_dir_cosavc1; //! \brief Vector of differential cluster asymmetry parameters (perpendicular polarization). //! \brief Vector of differential cluster asymmetry parameters (perpendicular polarization). Loading
src/libnptm/outputs.cpp +664 −35 File changed.Preview size limit exceeded, changes collapsed. Show changes