Loading src/cluster/cluster.cpp +63 −0 Original line number Diff line number Diff line Loading @@ -2101,6 +2101,69 @@ ClusterIterationData::~ClusterIterationData() { delete[] cmul; } long ClusterIterationData::get_size(GeometryConfiguration *gconf, ScattererConfiguration *sconf) { /* ParticleDescriptor *c1; double *gaps; double **tqse; dcomplex **tqspe; double **tqss; dcomplex **tqsps; double ****zpv; double **gapm; dcomplex **gappm; double *argi; double *args; double **gap; dcomplex **gapp; double **tqce; dcomplex **tqcpe; double **tqcs; dcomplex **tqcps; double *duk; double **cextlr; double **cext; double **cmullr; double **cmul; double *gapv; double *tqev; double *tqsv; double *u; double *us; double *un; double *uns; double *up; double *ups; double *unmp; double *unsmp; double *upmp; double *upsmp; dcomplex *am_vector; dcomplex **am; 37 root pointers double scan; double cfmp; double sfmp; double cfsp; double sfsp; double sqsfi; double vk; double wn; double xip; double accuracygoal; 10 double values dcomplex arg; 1 dcomplex value int number_of_scales; int xiblock; int firstxi; int lastxi; int proc_device; int refinemode; int maxrefiters; 7 int values bool is_first_scale; 1 boolean value tqse = new double*[2]; tqss = new double*[2]; tqce = new double*[2]; tqcs = new double*[2]; tqspe = new dcomplex*[2]; tqsps = new dcomplex*[2]; tqcpe = new dcomplex*[2]; tqcps = new dcomplex*[2]; gapp = new dcomplex*[3]; gappm = new dcomplex*[3]; gap = new double*[3]; gapm = new double*[3]; cextlr = new double*[4]; cext = new double*[4]; cmullr = new double*[4]; cmul = new double*[4]; zpv[] = new double*[6 * LM]; am = new dcomplex*[ndit]; (44 + 6 * LM + NDIT) long values tqse[] = new double[2 * c1->nsph](); tqss[] = new double[2 * c1->nsph](); tqce[] = new double[6](); tqcs[] = new double[6](); gaps = new double[c1->nsph](); tqev = new double[3](); tqsv = new double[3](); gap[] = new double[6](); gapm[] = new double[6](); gapv = new double[3](); u = new double[3](); us = new double[3](); un = new double[3](); uns = new double[3](); up = new double[3](); ups = new double[3](); unmp = new double[3](); unsmp = new double[3](); upmp = new double[3](); upsmp = new double[3](); argi = new double[1](); args = new double[1](); duk = new double[3](); cextlr[] = new double[16](); cext[] = new double[16](); cmullr[] = new double[16](); cmul[] = new double[16](); zpv[][] = new double[12 * lm]; (99 + 5 * NSPH + 12 * LM) double values tqspe[] = new dcomplex[2 * c1->nsph](); tqsps[] = new dcomplex[2 * c1->nsph](); tqcpe[] = new dcomplex[6](); tqcps[] = new dcomplex[6](); gapp[] = new dcomplex[6](); gappm[] = new dcomplex[6](); am_vector = new dcomplex[ndit * ndit](); (24 + 4 * NSPH + NDIT * NDIT) dcomplex values */ const int nsph = gconf->number_of_spheres; const int nlim = gconf->li * (gconf->li + 2); const int ndi = nsph * nlim; const np_int ndit = 2 * ndi; const int lm = (gconf->li > gconf->le) ? gconf->li : gconf->le; long result = sizeof(long) * 37; result += sizeof(double) * 10; result += sizeof(dcomplex); result += sizeof(int) * 7; result += sizeof(bool); result += sizeof(long) * (44 + 6 * lm + ndit); result += sizeof(double) * (99 + 5 * nsph + 12 * lm); result += sizeof(dcomplex) * (24 + 4 * nsph + ndit * ndit); result += ParticleDescriptor::get_size(gconf, sconf); return result; } int ClusterIterationData::update_orders(double **rcf, int inner_order, int outer_order) { int result = 0; int old_lm = c1->lm; Loading src/include/Commons.h +8 −0 Original line number Diff line number Diff line Loading @@ -409,6 +409,14 @@ public: * \return descriptor_type: `string` The descriptor type name. */ virtual std::string get_descriptor_type() { return "base descriptor"; } /*! \brief Compute the memory requirements of an instance. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \return result: `long` Estimated size in bytes. */ static long get_size(GeometryConfiguration *gconf, ScattererConfiguration *sconf) { return 0; } }; /*! \brief The data structure describing a particle model made by a cluster of spheres. Loading src/include/IterationData.h +8 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,14 @@ public: */ ~ClusterIterationData(); /*! \brief Compute the memory requirements of an instance. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \return result: `long` Estimated size in bytes. */ static long get_size(GeometryConfiguration *gconf, ScattererConfiguration *sconf); /*! \brief Update field expansion orders. * * \param rcf: `double **` Matrix of sphere fractional radii. Loading Loading
src/cluster/cluster.cpp +63 −0 Original line number Diff line number Diff line Loading @@ -2101,6 +2101,69 @@ ClusterIterationData::~ClusterIterationData() { delete[] cmul; } long ClusterIterationData::get_size(GeometryConfiguration *gconf, ScattererConfiguration *sconf) { /* ParticleDescriptor *c1; double *gaps; double **tqse; dcomplex **tqspe; double **tqss; dcomplex **tqsps; double ****zpv; double **gapm; dcomplex **gappm; double *argi; double *args; double **gap; dcomplex **gapp; double **tqce; dcomplex **tqcpe; double **tqcs; dcomplex **tqcps; double *duk; double **cextlr; double **cext; double **cmullr; double **cmul; double *gapv; double *tqev; double *tqsv; double *u; double *us; double *un; double *uns; double *up; double *ups; double *unmp; double *unsmp; double *upmp; double *upsmp; dcomplex *am_vector; dcomplex **am; 37 root pointers double scan; double cfmp; double sfmp; double cfsp; double sfsp; double sqsfi; double vk; double wn; double xip; double accuracygoal; 10 double values dcomplex arg; 1 dcomplex value int number_of_scales; int xiblock; int firstxi; int lastxi; int proc_device; int refinemode; int maxrefiters; 7 int values bool is_first_scale; 1 boolean value tqse = new double*[2]; tqss = new double*[2]; tqce = new double*[2]; tqcs = new double*[2]; tqspe = new dcomplex*[2]; tqsps = new dcomplex*[2]; tqcpe = new dcomplex*[2]; tqcps = new dcomplex*[2]; gapp = new dcomplex*[3]; gappm = new dcomplex*[3]; gap = new double*[3]; gapm = new double*[3]; cextlr = new double*[4]; cext = new double*[4]; cmullr = new double*[4]; cmul = new double*[4]; zpv[] = new double*[6 * LM]; am = new dcomplex*[ndit]; (44 + 6 * LM + NDIT) long values tqse[] = new double[2 * c1->nsph](); tqss[] = new double[2 * c1->nsph](); tqce[] = new double[6](); tqcs[] = new double[6](); gaps = new double[c1->nsph](); tqev = new double[3](); tqsv = new double[3](); gap[] = new double[6](); gapm[] = new double[6](); gapv = new double[3](); u = new double[3](); us = new double[3](); un = new double[3](); uns = new double[3](); up = new double[3](); ups = new double[3](); unmp = new double[3](); unsmp = new double[3](); upmp = new double[3](); upsmp = new double[3](); argi = new double[1](); args = new double[1](); duk = new double[3](); cextlr[] = new double[16](); cext[] = new double[16](); cmullr[] = new double[16](); cmul[] = new double[16](); zpv[][] = new double[12 * lm]; (99 + 5 * NSPH + 12 * LM) double values tqspe[] = new dcomplex[2 * c1->nsph](); tqsps[] = new dcomplex[2 * c1->nsph](); tqcpe[] = new dcomplex[6](); tqcps[] = new dcomplex[6](); gapp[] = new dcomplex[6](); gappm[] = new dcomplex[6](); am_vector = new dcomplex[ndit * ndit](); (24 + 4 * NSPH + NDIT * NDIT) dcomplex values */ const int nsph = gconf->number_of_spheres; const int nlim = gconf->li * (gconf->li + 2); const int ndi = nsph * nlim; const np_int ndit = 2 * ndi; const int lm = (gconf->li > gconf->le) ? gconf->li : gconf->le; long result = sizeof(long) * 37; result += sizeof(double) * 10; result += sizeof(dcomplex); result += sizeof(int) * 7; result += sizeof(bool); result += sizeof(long) * (44 + 6 * lm + ndit); result += sizeof(double) * (99 + 5 * nsph + 12 * lm); result += sizeof(dcomplex) * (24 + 4 * nsph + ndit * ndit); result += ParticleDescriptor::get_size(gconf, sconf); return result; } int ClusterIterationData::update_orders(double **rcf, int inner_order, int outer_order) { int result = 0; int old_lm = c1->lm; Loading
src/include/Commons.h +8 −0 Original line number Diff line number Diff line Loading @@ -409,6 +409,14 @@ public: * \return descriptor_type: `string` The descriptor type name. */ virtual std::string get_descriptor_type() { return "base descriptor"; } /*! \brief Compute the memory requirements of an instance. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \return result: `long` Estimated size in bytes. */ static long get_size(GeometryConfiguration *gconf, ScattererConfiguration *sconf) { return 0; } }; /*! \brief The data structure describing a particle model made by a cluster of spheres. Loading
src/include/IterationData.h +8 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,14 @@ public: */ ~ClusterIterationData(); /*! \brief Compute the memory requirements of an instance. * * \param gconf: `GeometryConfiguration *` Pointer to a `GeometryConfiguration` object. * \param sconf: `ScattererConfiguration *` Pointer to a `ScattererConfiguration` object. * \return result: `long` Estimated size in bytes. */ static long get_size(GeometryConfiguration *gconf, ScattererConfiguration *sconf); /*! \brief Update field expansion orders. * * \param rcf: `double **` Matrix of sphere fractional radii. Loading