Loading src/cluster/cluster.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -104,13 +104,13 @@ using namespace std; * executed. * * \param jxi488: `int` Wavelength loop index. * \param sconf: `ScattererConfiguration *` Pointer to a ScattererConfiguration object. * \param gconf: `GeometryConfiguration *` Pointer to a GeometryConfiguration object. * \param sa: `ScatteringAngles *` Pointer to a ScatteringAngles object. * \param cid: `ClusterIterationData *` Pointer to a ClusterIterationData object. * \param output: `VirtualAsciiFile *` Pointer to a VirtualAsciiFile object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sa: `ScatteringAngles *` Pointer to a `ScatteringAngles` object. * \param cid: `ClusterIterationData *` Pointer to a `ClusterIterationData` object. * \param output: `VirtualAsciiFile *` Pointer to a `VirtualAsciiFile` object. * \param output_path: `const string &` Path to the output directory. * \param vtppoanp: `VirtualBinaryFile *` Pointer to a VirtualBinaryFile object. * \param vtppoanp: `VirtualBinaryFile *` Pointer to a `VirtualBinaryFile` object. */ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, ClusterIterationData *cid, VirtualAsciiFile *output, const string& output_path, VirtualBinaryFile *vtppoanp); Loading src/include/Commons.h +19 −2 Original line number Diff line number Diff line Loading @@ -140,11 +140,27 @@ public: //! \brief Required accuracy level. double accuracygoal; /*! \brief `ClusterIterationData` default instance constructor. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param mpidata: `mixMPI *` Pointer to a `mixMPI` object. * \param device_count: `const int` Number of offload devices available on the system. */ ClusterIterationData(GeometryConfiguration *gconf, ScattererConfiguration *sconf, const mixMPI *mpidata, const int device_count); /*! \brief `ClusterIterationData` copy constructor. * * \param rhs: `const ClusterIterationData &` Reference to the `ClusterIterationData` object to be copied. */ ClusterIterationData(const ClusterIterationData& rhs); #ifdef MPI_VERSION /*! \brief `ClusterIterationData` MPI constructor. * * \param mpidata: `const mixMPI *` Pointer to a `mixMPI` instance. * \param device_count: `const int` Number of offload devices available on the system. */ ClusterIterationData(const mixMPI *mpidata, const int device_count); /*! \brief Broadcast over MPI the ClusterIterationData instance from MPI process 0 to all others. Loading @@ -157,10 +173,11 @@ public: * \param mpidata: `mixMPI *` Pointer to the mpi structure used to do the MPI broadcast. */ void mpibcast(const mixMPI *mpidata); #endif #endif // MPI_VERSION /*! \brief `ClusterIterationData` instance destroyer. */ ~ClusterIterationData(); }; /*! \brief Basic data structure describing the particle model and its interaction with fields. Loading src/include/Configuration.h +0 −16 Original line number Diff line number Diff line Loading @@ -524,22 +524,6 @@ public: */ int get_nshl(int index) { return _nshl_vec[index]; } /* /*! \brief Get the value of a parameter by name. * * The proper way to access read-only parameters from outside a class is to define * public methods that return their values. For configuration operations, whose * optimization is not critical, it is possible to define a single function that * returns simple scalar values called by name. Access to more complicated data * structures, on the other hand, require specialized methods which avoid the * burden of searching the necessary value across the whole array every time. * * \param param_name: `string` Name of the parameter to be retrieved. * \return value: `double` Value of the requested parameter. double get_param(const std::string& param_name); */ /*! \brief Get the radius of a sphere by its index. * * This is a specialized function to get the radius of a sphere through its Loading src/include/clu_subs.h +2 −1 Original line number Diff line number Diff line Loading @@ -127,10 +127,11 @@ void crsm1(double vk, double exri, ParticleDescriptor *c1); * \param l2: `int` * \param m2: `int` * \param c1: `ParticleDescriptor *` * \param rac3j: `dcomplex *` */ dcomplex ghit_d( int ihi, int ipamo, int nbl, int l1, int m1, int l2, int m2, ParticleDescriptor *c1 ParticleDescriptor *c1, dcomplex *rac3j ); /*! \brief Compute the transfer vector from N2 to N1. Loading src/inclusion/inclusion.cpp +35 −1 Original line number Diff line number Diff line Loading @@ -171,11 +171,27 @@ public: //! \brief Required accuracy level. double accuracygoal; /*! \brief `InclusionIterationData` default instance constructor. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param mpidata: `mixMPI *` Pointer to a `mixMPI` object. * \param device_count: `const int` Number of offload devices available on the system. */ InclusionIterationData(GeometryConfiguration *gconf, ScattererConfiguration *sconf, const mixMPI *mpidata, const int device_count); /*! \brief `InclusionIterationData` copy constructor. * * \param rhs: `const InclusionIterationData &` Reference to the `InclusionIterationData` object to be copied. */ InclusionIterationData(const InclusionIterationData& rhs); #ifdef MPI_VERSION /*! \brief `InclusionIterationData` MPI constructor. * * \param mpidata: `const mixMPI *` Pointer to a `mixMPI` instance. * \param device_count: `const int` Number of offload devices available on the system. */ InclusionIterationData(const mixMPI *mpidata, const int device_count); /*! \brief Broadcast over MPI the InclusionIterationData instance from MPI process 0 to all others. Loading @@ -190,8 +206,9 @@ public: void mpibcast(const mixMPI *mpidata); #endif /*! \brief `InclusionIterationData` instance destroyer. */ ~InclusionIterationData(); }; // >>> End of InclusionIterationData header <<< // Loading Loading @@ -742,6 +759,23 @@ InclusionIterationData::~InclusionIterationData() { } // >>> End of InclusionIterationData implementation <<< // /*! \brief Main calculation loop. * * The solution of the scattering problem for different wavelengths is an * embarrasingly parallel task. This function, therefore, collects all the * operations that can be independently executed by different processes, * after the configuration stage and the first calculation loop have been * executed. * * \param jxi488: `int` Wavelength loop index. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sa: `ScatteringAngles *` Pointer to a `ScatteringAngles` object. * \param cid: `InclusionIterationData *` Pointer to an `InclusionIterationData` object. * \param output: `VirtualAsciiFile *` Pointer to a `VirtualAsciiFile` object. * \param output_path: `const string &` Path to the output directory. * \param vtppoanp: `VirtualBinaryFile *` Pointer to a `VirtualBinaryFile` object. */ int inclusion_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, InclusionIterationData *cid, VirtualAsciiFile *output, const string& output_path, VirtualBinaryFile *vtppoanp); /*! \brief C++ implementation of INCLU Loading Loading
src/cluster/cluster.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -104,13 +104,13 @@ using namespace std; * executed. * * \param jxi488: `int` Wavelength loop index. * \param sconf: `ScattererConfiguration *` Pointer to a ScattererConfiguration object. * \param gconf: `GeometryConfiguration *` Pointer to a GeometryConfiguration object. * \param sa: `ScatteringAngles *` Pointer to a ScatteringAngles object. * \param cid: `ClusterIterationData *` Pointer to a ClusterIterationData object. * \param output: `VirtualAsciiFile *` Pointer to a VirtualAsciiFile object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sa: `ScatteringAngles *` Pointer to a `ScatteringAngles` object. * \param cid: `ClusterIterationData *` Pointer to a `ClusterIterationData` object. * \param output: `VirtualAsciiFile *` Pointer to a `VirtualAsciiFile` object. * \param output_path: `const string &` Path to the output directory. * \param vtppoanp: `VirtualBinaryFile *` Pointer to a VirtualBinaryFile object. * \param vtppoanp: `VirtualBinaryFile *` Pointer to a `VirtualBinaryFile` object. */ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, ClusterIterationData *cid, VirtualAsciiFile *output, const string& output_path, VirtualBinaryFile *vtppoanp); Loading
src/include/Commons.h +19 −2 Original line number Diff line number Diff line Loading @@ -140,11 +140,27 @@ public: //! \brief Required accuracy level. double accuracygoal; /*! \brief `ClusterIterationData` default instance constructor. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param mpidata: `mixMPI *` Pointer to a `mixMPI` object. * \param device_count: `const int` Number of offload devices available on the system. */ ClusterIterationData(GeometryConfiguration *gconf, ScattererConfiguration *sconf, const mixMPI *mpidata, const int device_count); /*! \brief `ClusterIterationData` copy constructor. * * \param rhs: `const ClusterIterationData &` Reference to the `ClusterIterationData` object to be copied. */ ClusterIterationData(const ClusterIterationData& rhs); #ifdef MPI_VERSION /*! \brief `ClusterIterationData` MPI constructor. * * \param mpidata: `const mixMPI *` Pointer to a `mixMPI` instance. * \param device_count: `const int` Number of offload devices available on the system. */ ClusterIterationData(const mixMPI *mpidata, const int device_count); /*! \brief Broadcast over MPI the ClusterIterationData instance from MPI process 0 to all others. Loading @@ -157,10 +173,11 @@ public: * \param mpidata: `mixMPI *` Pointer to the mpi structure used to do the MPI broadcast. */ void mpibcast(const mixMPI *mpidata); #endif #endif // MPI_VERSION /*! \brief `ClusterIterationData` instance destroyer. */ ~ClusterIterationData(); }; /*! \brief Basic data structure describing the particle model and its interaction with fields. Loading
src/include/Configuration.h +0 −16 Original line number Diff line number Diff line Loading @@ -524,22 +524,6 @@ public: */ int get_nshl(int index) { return _nshl_vec[index]; } /* /*! \brief Get the value of a parameter by name. * * The proper way to access read-only parameters from outside a class is to define * public methods that return their values. For configuration operations, whose * optimization is not critical, it is possible to define a single function that * returns simple scalar values called by name. Access to more complicated data * structures, on the other hand, require specialized methods which avoid the * burden of searching the necessary value across the whole array every time. * * \param param_name: `string` Name of the parameter to be retrieved. * \return value: `double` Value of the requested parameter. double get_param(const std::string& param_name); */ /*! \brief Get the radius of a sphere by its index. * * This is a specialized function to get the radius of a sphere through its Loading
src/include/clu_subs.h +2 −1 Original line number Diff line number Diff line Loading @@ -127,10 +127,11 @@ void crsm1(double vk, double exri, ParticleDescriptor *c1); * \param l2: `int` * \param m2: `int` * \param c1: `ParticleDescriptor *` * \param rac3j: `dcomplex *` */ dcomplex ghit_d( int ihi, int ipamo, int nbl, int l1, int m1, int l2, int m2, ParticleDescriptor *c1 ParticleDescriptor *c1, dcomplex *rac3j ); /*! \brief Compute the transfer vector from N2 to N1. Loading
src/inclusion/inclusion.cpp +35 −1 Original line number Diff line number Diff line Loading @@ -171,11 +171,27 @@ public: //! \brief Required accuracy level. double accuracygoal; /*! \brief `InclusionIterationData` default instance constructor. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param mpidata: `mixMPI *` Pointer to a `mixMPI` object. * \param device_count: `const int` Number of offload devices available on the system. */ InclusionIterationData(GeometryConfiguration *gconf, ScattererConfiguration *sconf, const mixMPI *mpidata, const int device_count); /*! \brief `InclusionIterationData` copy constructor. * * \param rhs: `const InclusionIterationData &` Reference to the `InclusionIterationData` object to be copied. */ InclusionIterationData(const InclusionIterationData& rhs); #ifdef MPI_VERSION /*! \brief `InclusionIterationData` MPI constructor. * * \param mpidata: `const mixMPI *` Pointer to a `mixMPI` instance. * \param device_count: `const int` Number of offload devices available on the system. */ InclusionIterationData(const mixMPI *mpidata, const int device_count); /*! \brief Broadcast over MPI the InclusionIterationData instance from MPI process 0 to all others. Loading @@ -190,8 +206,9 @@ public: void mpibcast(const mixMPI *mpidata); #endif /*! \brief `InclusionIterationData` instance destroyer. */ ~InclusionIterationData(); }; // >>> End of InclusionIterationData header <<< // Loading Loading @@ -742,6 +759,23 @@ InclusionIterationData::~InclusionIterationData() { } // >>> End of InclusionIterationData implementation <<< // /*! \brief Main calculation loop. * * The solution of the scattering problem for different wavelengths is an * embarrasingly parallel task. This function, therefore, collects all the * operations that can be independently executed by different processes, * after the configuration stage and the first calculation loop have been * executed. * * \param jxi488: `int` Wavelength loop index. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sa: `ScatteringAngles *` Pointer to a `ScatteringAngles` object. * \param cid: `InclusionIterationData *` Pointer to an `InclusionIterationData` object. * \param output: `VirtualAsciiFile *` Pointer to a `VirtualAsciiFile` object. * \param output_path: `const string &` Path to the output directory. * \param vtppoanp: `VirtualBinaryFile *` Pointer to a `VirtualBinaryFile` object. */ int inclusion_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConfiguration *gconf, ScatteringAngles *sa, InclusionIterationData *cid, VirtualAsciiFile *output, const string& output_path, VirtualBinaryFile *vtppoanp); /*! \brief C++ implementation of INCLU Loading