Commit Graph

1195 Commits

Author SHA1 Message Date
Marek Nečada c9a5661519 Fix invalid pointer in qpms_apply_tmatrix.
Former-commit-id: ba9400c3e1a39d472cfdebf7e61ab175c5c8fb6e
2019-11-14 13:36:45 +02:00
Marek Nečada 1821a0d8f5 Try to recover from failed quadrature.
Former-commit-id: 746709b224d825baf4a41ddfcd040a0c80fc45c8
2019-11-12 07:18:20 +02:00
Marek Nečada e4f368f47a Multi-threaded integration in axial symmetric T-matrix.
Former-commit-id: 71dc4ae5978f0dc10d82f4d8450fb2117ba64ce8
2019-11-08 17:43:07 +02:00
Marek Nečada cfda120a20 Fix sign in Drude-Lorentz model.
In our convention, where outgoing wave correspond to
Hankel functions of FIRST kind, the time-harmonic waves carry
(contrary to the more usual electrotechnical convention)
the factor exp(-iωt) and lossy materials are represented
by Im ε > 0, i.e. Im n > 0.


Former-commit-id: 19108c43a31899c2f9196c1a0fc44c5ecae69b5a
2019-11-08 09:36:12 +02:00
Marek Nečada 28f4e7f3d2 Complexify wavenumber in (finite) translation operators.
Former-commit-id: f84e1588cdda916d8feda6d807c12bca69512e5f
2019-11-06 18:13:50 +02:00
Marek Nečada cc9dbb6cc5 Make the additional Drude-Lorentz parameters available from Python
Former-commit-id: f08c96459c7cfd07b2adbf4670de59b1ce0b6ea1
2019-11-06 12:04:52 +02:00
Marek Nečada 493ba079e2 Some more Drude-Lorentz data from drudelorentz.com
Former-commit-id: 62f7f550e4e72d176690ac2b3532cec9bedb889f
2019-11-04 21:42:19 +02:00
Marek Nečada d79a35110c Merge branch 'beyn_rework'
Former-commit-id: 3366b1421056a2ac097b79f62bfbccd82d87de1b
2019-11-04 09:43:44 +02:00
Marek Nečada 84acb1ada2 Allow to select only either of long/short range Ewald sum parts
(cherry picked from commit 97b7782291380193835c23a4f0ea04ff5f44273e [formerly 41b1a76d5ed571b507abc0515b3cba60e8c0ccca])


Former-commit-id: 4d51186e653babfdc84fc45a4ab70a3ffdc02eee
2019-11-04 09:38:23 +02:00
Marek Nečada 4dd3234b0a Remove the branch cut at negative real axis in Ewald sum.
Move the cut to the negative imaginary axis instead.

Also update comments.


Former-commit-id: a70e6a4db0ac33836d672d9ee2356ea19a899a30
2019-10-09 13:20:20 +03:00
Marek Nečada acff55f396 Extend hardcoded T-matrix similarity tolerance.
Also some cython functions->properties.


Former-commit-id: 4a0605b1cf8b857c681f194a475ff3f10e7dfe71
2019-10-07 15:15:34 +03:00
Marek Nečada e7f0e0131f Basic branch selection functionality for incomplete Γ.
No modifications with effects on Ewald sums done yet.


Former-commit-id: e362341713ce306482386b9e6f2a48c336fad7a1
2019-10-06 01:30:29 +03:00
Marek Nečada 2dd9fe2f34 Minor stuff.
Former-commit-id: c0de35f6a52ce4cc4f34cf4b417364d92e8dac4d
2019-10-05 20:38:04 +03:00
Marek Nečada aa86fcfb08 Expose low-level scalar Ewald sums via cython.
Former-commit-id: 9910decff1e8e91c802f0f8d10573ec430dda468
2019-10-03 00:52:14 +03:00
Marek Nečada 2d891be12f ewald.h cleanup
Former-commit-id: c02360cfa9df1dac06897883115cafc98a912107
2019-10-02 20:11:25 +03:00
Marek Nečada 0239a3c9a1 Fix memset size in Mie T-matrix generator.
Former-commit-id: 244dad82dec42fdc1e08cc12205e373711465622
2019-10-02 17:53:01 +03:00
Marek Nečada 79e6c47f94 Beyn integration contours to pxd
Former-commit-id: d33de9a694ea7d5600a627062c7119e8483d753e
2019-10-01 11:52:29 +03:00
Marek Nečada c7f2e32ee4 Free unfinished PGens from Ewald sums.
Also replace some bare `if (xxx) abort();` with
`QPMS_ENSURE_SUCCESS(xxx)`.


Former-commit-id: d4712292fe0f9fb397cf3a490131bcb37d542fa6
2019-10-01 11:29:15 +03:00
Marek Nečada 7e74cb100c Experimental speedup by earlier cutoff for Ewald summation.
TODO check whether PGen is properly destroyed


Former-commit-id: db2c64292b9c1bd80e97255bf71e570385b409a4
2019-09-30 17:57:06 +03:00
Marek Nečada dad170b8fe Kidney contour basic test
Former-commit-id: 861cf5f9a8409db360e48db74274f20069b94391
2019-09-30 10:54:10 +03:00
Marek Nečada f940e62e52 Test and fix the rounded half-ellipse contour..
Former-commit-id: 448c30d375b3f9d0abab9442ae00bfcd123e5cb9
2019-09-30 08:53:57 +03:00
Marek Nečada d6084f3264 WIP Alternative integration contour (untested)
Former-commit-id: c82da58ac33364797d7175a69feed475184937d9
2019-09-29 22:32:53 +03:00
Marek Nečada 2e7b925be2 WIP trying to fix the half-ellipse contour.
Former-commit-id: cbba6fffacbb38322a590478899f38c7d7dafe8e
2019-09-26 11:36:41 +03:00
Marek Nečada b3c3eeb2a2 Fix derivatives in integration contours.
Former-commit-id: 7575a69a82eb19126aaac9aede9f170815b6015a
2019-09-26 10:09:35 +03:00
Marek Nečada 2fcc6282fa "Half-ellipse" integration contour.
Former-commit-id: 800079fba837d65f84af62d5adfad177a6aa3cdf
2019-09-26 10:09:35 +03:00
Marek Nečada 67f93e461c Ewald translation calculator function using base specs.
Former-commit-id: d49880caa280cc089fa688d0cdeccb95db7cb64b
2019-09-23 08:59:18 +03:00
Marek Nečada 6445c3523e Experiments with Beyn's algorithm and singularities.
It seems that everything is fine in the end except
essential singularities inside the contour.


Former-commit-id: 9fe7135cb30d1fff1dc3ff9bf8a9152c6b0ef9b4
2019-09-17 15:14:09 +03:00
Marek Nečada 42931eb0a0 Additional test to Beyn solver (Example 4.9).
Former-commit-id: 63a78fa09fd3875e5d10b6b4fb6eea72010cfcee
2019-09-17 14:11:23 +03:00
Marek Nečada bd0b8a83e9 Beyn: functionality for testing if points are inside contour.
Former-commit-id: 5c88b6e9aa4308201871a9b19c8d20c04b93a718
2019-09-17 07:58:59 +03:00
Marek Nečada 9d0f910bba Some comments to beyn.c
Former-commit-id: cc756b3343a9290f3b3b8c79cec75559b11a952f
2019-09-17 07:17:04 +03:00
Marek Nečada e8a2426b55 Handle k->0 in Ewald sum.
Former-commit-id: fb61b297ead4828541b763b2ecdb0c81de1d35f1
2019-09-16 12:37:32 +03:00
Marek Nečada 2762ada49c Beyn: keep singular values from rank test
Former-commit-id: eb82025e460575335f9d6e3d9acb3cfdfe8867f0
2019-09-16 08:02:31 +03:00
Marek Nečada ecbf5b10d4 Fix infinite loop in empty lattice modes generation
Former-commit-id: 1349035090712935a0d77d64c175e4358fb4d487
2019-09-13 16:20:39 +03:00
Marek Nečada b45bdcd49a Bug fixes mostly in lattice generators.
Former-commit-id: 1fbed5865f20b7191b31fe24d263bd16baca7fa7
2019-09-13 15:51:19 +03:00
Marek Nečada e910de936e 2d empty lattice modes pxd; fix a corner case.
Former-commit-id: aa33c85a6a0d2107caef752900690f471cc6350f
2019-09-13 13:18:23 +03:00
Marek Nečada 0f03509dde Mode frequency calculations for empty lattices.
Former-commit-id: ca14f8d765399c5bf92bb64cc7f1dc6722d53ebb
2019-09-13 11:52:56 +03:00
Marek Nečada 11aa48d2da Beyn minor fixes, cleaner API.
Former-commit-id: 44d7147a14194a7b8e5a66552dd3855029b9e370
2019-09-10 14:54:08 +03:00
Marek Nečada 3bc59096bc Public beyn_result_gsl_t -> beyn_result_gsl_t convertor.
Former-commit-id: 56fb70384c20b93dbc8b119c6b5b4128ce4fcaf9
2019-09-10 14:04:56 +03:00
Marek Nečada cbf039710f cdefs for beyn.h
Former-commit-id: 846f26b8a6e1a2829c379b1bcc9edae1a0965b26
2019-09-09 20:50:31 +03:00
Marek Nečada 658c564a0c Some 3D lattice functionality, little refactoring.
Former-commit-id: 8e6572c7352e3b9a75bc13585d688f1c72d378e1
2019-09-07 11:23:16 +03:00
Marek Nečada 1585c48071 Incremental cleanup.
Former-commit-id: d4d8d41a2edac7cf8ac341cce46e3c976ef68c5e
2019-09-02 13:43:46 +03:00
Marek Nečada 5dc2a44cdd Incremental cleanup and style assimilation
Former-commit-id: eb31cf03313edbad256331592afa4c6d212feab8
2019-09-02 12:31:37 +03:00
Marek Nečada c632ee36c5 QPMS_UNLIKELY macros to qpms_error.h
Former-commit-id: d879a2105fd35a7d17f090842b03286fd310fbc1
2019-09-02 12:03:27 +03:00
Marek Nečada cabe764640 Implement an API for Beyn's algorithm with standard C arrays.
Former-commit-id: 645490de63f802c8a41f3bad1845cd29e0c3d823
2019-09-02 11:57:56 +03:00
Marek Nečada bc703cbcca Beyn pure C api headers
Former-commit-id: 0e1da18ccf552d496eed4a073611c57d5e9619ba
2019-09-02 10:33:07 +03:00
Marek Nečada 537c4b2d37 Beyn solver new API
Former-commit-id: cb242415d66acebd42aa6c12ef74696f5dea85de
2019-08-31 14:35:56 +03:00
Marek Nečada 4c21fde628 WIP rewriting Beyn API
Former-commit-id: 0579928c1aac32ec82db0364080d46fcce7721a6
2019-08-28 15:12:42 +03:00
Marek Nečada 1aa9890155 Reindend, add also the 'coarse values' calculation
Former-commit-id: 2dc73a2875823cae187585787bd4d344dea232f9
2019-08-27 20:41:30 +03:00
Marek Nečada 5471367aad Finally reproduce Reid's implementation.
Former-commit-id: 215088edddd93c79b4a4ad3ee9836595bcc69167
2019-08-27 20:10:28 +03:00
Marek Nečada 00e3a9ce09 Fix test matrix definition
Former-commit-id: f5874c5cf632b9fe5c561154370a3460fc1c7b46
2019-08-27 19:06:37 +03:00