modeproblem matrix parallel implementation to become default

Former-commit-id: ddf4ab3b83490de67034107b96272d725dde6a89
This commit is contained in:
Marek Nečada 2019-11-17 09:57:49 +02:00
parent d1068419f4
commit a712789386
4 changed files with 10 additions and 7 deletions

View File

@ -449,9 +449,9 @@ cdef class ScatteringSystem:
qpms_scatsys_build_modeproblem_matrix_irrep_packed_orbitorderR(&target_view[0][0], self.s, iri, k) qpms_scatsys_build_modeproblem_matrix_irrep_packed_orbitorderR(&target_view[0][0], self.s, iri, k)
elif (version == 'pR'): elif (version == 'pR'):
with nogil: with nogil:
qpms_scatsys_build_modeproblem_matrix_irrep_packed_parallelR(&target_view[0][0], self.s, iri, k)
else:
qpms_scatsys_build_modeproblem_matrix_irrep_packed(&target_view[0][0], self.s, iri, k) qpms_scatsys_build_modeproblem_matrix_irrep_packed(&target_view[0][0], self.s, iri, k)
else:
qpms_scatsys_build_modeproblem_matrix_irrep_packed_serial(&target_view[0][0], self.s, iri, k)
return target return target
def translation_matrix_full(self, double k, J = QPMS_HANKEL_PLUS): def translation_matrix_full(self, double k, J = QPMS_HANKEL_PLUS):

View File

@ -532,7 +532,7 @@ cdef extern from "scatsystem.h":
const qpms_scatsys_t *ss, qpms_iri_t iri, cdouble k, qpms_bessel_t J) const qpms_scatsys_t *ss, qpms_iri_t iri, cdouble k, qpms_bessel_t J)
cdouble *qpms_scatsys_build_modeproblem_matrix_irrep_packed_orbitorderR( cdouble *qpms_scatsys_build_modeproblem_matrix_irrep_packed_orbitorderR(
cdouble *target, const qpms_scatsys_t *ss, qpms_iri_t iri, cdouble k) cdouble *target, const qpms_scatsys_t *ss, qpms_iri_t iri, cdouble k)
cdouble *qpms_scatsys_build_modeproblem_matrix_irrep_packed_parallelR( cdouble *qpms_scatsys_build_modeproblem_matrix_irrep_packed_serial(
cdouble *target, const qpms_scatsys_t *ss, qpms_iri_t iri, cdouble k) nogil cdouble *target, const qpms_scatsys_t *ss, qpms_iri_t iri, cdouble k) nogil
cdouble *qpms_scatsys_incident_field_vector_full(cdouble *target_full, cdouble *qpms_scatsys_incident_field_vector_full(cdouble *target_full,
const qpms_scatsys_t *ss, qpms_incfield_t field_at_point, const qpms_scatsys_t *ss, qpms_incfield_t field_at_point,

View File

@ -1063,7 +1063,8 @@ complex double *qpms_scatsys_build_modeproblem_matrix_full(
return target; return target;
} }
complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed( // Serial reference implementation.
complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed_serial(
/// Target memory with capacity for ss->saecv_sizes[iri]**2 elements. If NULL, new will be allocated. /// Target memory with capacity for ss->saecv_sizes[iri]**2 elements. If NULL, new will be allocated.
complex double *target_packed, complex double *target_packed,
const qpms_scatsys_t *ss, qpms_iri_t iri, const qpms_scatsys_t *ss, qpms_iri_t iri,
@ -1615,7 +1616,9 @@ complex double *qpms_scatsys_build_translation_matrix_e_irrep_packed(
return target_packed; return target_packed;
} }
complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed_parallelR(
// Parallel implementation, now default
complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed(
/// Target memory with capacity for ss->saecv_sizes[iri]**2 elements. If NULL, new will be allocated. /// Target memory with capacity for ss->saecv_sizes[iri]**2 elements. If NULL, new will be allocated.
complex double *target_packed, complex double *target_packed,
const qpms_scatsys_t *ss, qpms_iri_t iri, const qpms_scatsys_t *ss, qpms_iri_t iri,

View File

@ -286,8 +286,8 @@ complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed_orbitorderR(
const qpms_scatsys_t *ss, qpms_iri_t iri, const qpms_scatsys_t *ss, qpms_iri_t iri,
complex double k ///< Wave number to use in the translation matrix. complex double k ///< Wave number to use in the translation matrix.
); );
/// Alternative implementation of qpms_scatsys_build_modeproblem_matrix_irrep_packed(). /// Alternative (serial reference) implementation of qpms_scatsys_build_modeproblem_matrix_irrep_packed().
complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed_orbitorder_parallelR( complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed_orbitorder_serial(
/// Target memory with capacity for ss->fecv_size**2 elements. If NULL, new will be allocated. /// Target memory with capacity for ss->fecv_size**2 elements. If NULL, new will be allocated.
complex double *target, complex double *target,
const qpms_scatsys_t *ss, qpms_iri_t iri, const qpms_scatsys_t *ss, qpms_iri_t iri,