scatsystem field evaluation (WIP)
Former-commit-id: ee0ad31050cf194a0a6e0fcd5a176b568e1d2064
This commit is contained in:
parent
f63f3fbefb
commit
c29a284bc6
|
@ -1460,10 +1460,19 @@ complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed_parallelR(
|
||||||
return target_packed;
|
return target_packed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
ccart3_t qpms_scatsys_eval_field(const qpms_scatsys_t *ss, const complex double *cvf, cart3_t where) {
|
ccart3_t qpms_scatsys_eval_field(const qpms_scatsys_t *ss,
|
||||||
TODO;
|
const complex double *cvf, const cart3_t where,
|
||||||
|
complex double omega, complex double refindex) {
|
||||||
|
QPMS_UNTESTED;
|
||||||
|
ccart3_t result = {0,0,0};
|
||||||
|
ccart3_t result_kahanc = {0,0,0};
|
||||||
|
|
||||||
|
for (qpms_ss_pi_t pi = 0; pi < ss->p_count; ++pi) {
|
||||||
|
const cart3_t particle_pos = ss->p[pi];
|
||||||
|
const csph_t kr = sph_cscale(...);
|
||||||
|
...;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -326,7 +326,9 @@ complex double *qpms_orbit_irrep_basis(
|
||||||
*/
|
*/
|
||||||
ccart3_t qpms_scatsys_eval_field(const qpms_scatsys_t *ss,
|
ccart3_t qpms_scatsys_eval_field(const qpms_scatsys_t *ss,
|
||||||
const complex double *coeff_vector, //< A full-length excitation vector.
|
const complex double *coeff_vector, //< A full-length excitation vector.
|
||||||
cart3_t where //< Evaluation point.
|
cart3_t where, //< Evaluation point.
|
||||||
|
complex double omega, //< Angular frequency
|
||||||
|
complex double refindex //< Background medium refractive index
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -338,6 +340,8 @@ ccart3_t qpms_scatsys_eval_field(const qpms_scatsys_t *ss,
|
||||||
ccart3_t qpms_scatsys_eval_field_irrep(const qpms_scatsys_t *ss,
|
ccart3_t qpms_scatsys_eval_field_irrep(const qpms_scatsys_t *ss,
|
||||||
qpms_iri_t iri, //< Irreducible representation
|
qpms_iri_t iri, //< Irreducible representation
|
||||||
const complex double *coeff_vector, //< A reduced excitation vector, corresponding to \a iri.
|
const complex double *coeff_vector, //< A reduced excitation vector, corresponding to \a iri.
|
||||||
cart3_t where //< Evaluation point.
|
cart3_t where, //< Evaluation point.
|
||||||
|
complex double omega, //< Angular frequency
|
||||||
|
complex double refindex //< Background medium refractive index
|
||||||
);
|
);
|
||||||
#endif //QPMS_SCATSYSTEM_H
|
#endif //QPMS_SCATSYSTEM_H
|
||||||
|
|
|
@ -169,6 +169,13 @@ static inline double cart3_dot(const cart3_t a, const cart3_t b) {
|
||||||
return a.x * b.x + a.y * b.y + a.z * b.z;
|
return a.x * b.x + a.y * b.y + a.z * b.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline csph_t sph_cscale(complex double c, const sph_t s) {
|
||||||
|
return {c * s.r, s.theta, s.phi};
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline sph_t sph_scale(double c, const sph_t s) {
|
||||||
|
return {c * s.r, s.theta, s.phi};
|
||||||
|
}
|
||||||
|
|
||||||
// equivalent to sph_loccart2cart in qpms_p.py
|
// equivalent to sph_loccart2cart in qpms_p.py
|
||||||
static inline ccart3_t csphvec2ccart(const csphvec_t sphvec, const sph_t at) {
|
static inline ccart3_t csphvec2ccart(const csphvec_t sphvec, const sph_t at) {
|
||||||
|
|
Loading…
Reference in New Issue