Numbering the orbits of the same type.
Former-commit-id: 2911e40cbf8fce5f7fe6fe5c26fccdfb1fad5357
This commit is contained in:
parent
a4b0022305
commit
0053eeb953
|
@ -400,6 +400,7 @@ static void add_orbit_type(qpms_scatsys_t *ss, const qpms_ss_orbit_type_t *ot_cu
|
|||
"The cumulative size of the symmetry-adapted bases is wrong; "
|
||||
"expected %d = %d * %d, got %d.",
|
||||
ot_new->size * bspecn, ot_new->size, bspecn, bs_cumsum);
|
||||
ot_new->instance_count = 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -580,7 +581,9 @@ qpms_scatsys_t *qpms_scatsys_apply_symmetry(const qpms_scatsys_t *orig, const qp
|
|||
const qpms_ss_pi_t pi_opi = current_orbit[opi];
|
||||
ss->p_orbitinfo[pi_opi].t = oti;
|
||||
ss->p_orbitinfo[pi_opi].p = opi;
|
||||
ss->p_orbitinfo[pi_opi].osn = ss->orbit_types[oti].instance_count;
|
||||
}
|
||||
ss->orbit_types[oti].instance_count++;
|
||||
}
|
||||
}
|
||||
// Possibly free some space using the new ss->p_count instead of (old) ss->p_count*sym->order
|
||||
|
|
|
@ -352,13 +352,15 @@ typedef struct qpms_ss_orbit_type_t {
|
|||
* TODO doc.
|
||||
*/
|
||||
complex double *irbases;
|
||||
|
||||
/// TODO doc.
|
||||
size_t instance_count;
|
||||
} qpms_ss_orbit_type_t;
|
||||
|
||||
/// Auxillary type used in qpms_scatsys_t that identifies the particle's orbit and its id inside that orbit.
|
||||
typedef struct qpms_ss_particle_orbitinfo {
|
||||
qpms_ss_oti_t t; ///< Orbit type.
|
||||
#define QPMS_SS_P_ORBITINFO_UNDEF (-1) ///< This labels that the particle has not yet been assigned to an orbit.
|
||||
ptrdiff_t osn; ///< "Serial number" of the orbit in the given type. TODO type and more doc.
|
||||
qpms_ss_orbit_pi_t p; ///< Order (sija, ei rankki) of the particle inside that orbit type.
|
||||
} qpms_ss_particle_orbitinfo_t;
|
||||
|
||||
|
|
Loading…
Reference in New Issue