Commit Graph

783 Commits

Author SHA1 Message Date
Marek Nečada 1221012c7b Fix reciprocal basis (transposition) in argproc.py
Former-commit-id: 67df0d195ad0b70b508d1019a7d64c2f37689aeb
2020-04-28 12:58:06 +03:00
Marek Nečada 2f14de7dde Hex example fix K point position; add real freq SVD
Former-commit-id: 5c7c1e2099a649e778beebf9382cd527108db5f4
2020-04-27 16:56:31 +03:00
Marek Nečada 14a5c32202 Adjust eta for each (omega, k) pair to prevent hi-freq breakdown.
This effectively reverts 0b9129, because it does not make to define
Ewald parameter for just each frequency after all...


Former-commit-id: 6a3df5ecc1eecd6c120a74c70df5b747d593aae3
2020-04-26 17:10:47 +03:00
Marek Nečada 999dc7f72e Move MIN,MAX,SQ macros to a common header
Former-commit-id: 5f2598476b090ca3f9254325c1f69315182c8c30
2020-04-26 17:07:59 +03:00
Marek Nečada 8ed4bdb683 Separate Ewald parameter for different frequencies
Former-commit-id: 0b9129fda0224411c2a1d8372fe715db4e071ecd
2020-04-22 16:18:16 +03:00
Marek Nečada 83e76b1f95 Expose Ewald parameter to Python
Former-commit-id: dc3e794f0cb146da3ab8d8dd5e46c81997e8bc51
2020-04-21 23:34:49 +03:00
Marek Nečada 2460f3b644 ScatteringSystem: docstrings, avoid crash on underflow
Former-commit-id: adb2c2b9ec142b881ac722a4fe8188256e8ce589
2020-04-20 17:31:34 +03:00
Marek Nečada fe55f4b391 More general script for 2D lattice modes.
Former-commit-id: 9b734deabc1b010276fe75e59def698c7eb94b65
2020-04-13 08:25:46 +03:00
Marek Nečada 74f6c489ba Fix invalid pointer in pairwise translation matrix.
This caused errors for multi-particle periodic systems.


Former-commit-id: 82e6630e196a1d2d05218519ac296ff1879fc0df
2020-04-12 19:03:37 +03:00
Marek Nečada 3da6e5cfb2 WIP argproc multiparticle; update misc scripts
Former-commit-id: 50986e9e57873f8aca1ec7a8aafaa659434a839f
2020-04-12 10:56:07 +03:00
Marek Nečada c5c148ca40 Fix eigenvalue matrix dimensions in Beyn.
Former-commit-id: 4d3b5269df29897ac09632bc0278a99dce2507d8
2020-04-12 00:48:13 +03:00
Marek Nečada 63aa338891 Fix syntax error which gcc tolerated
Former-commit-id: 696ccbfad8997a9c8935def2ce4406a21a51dcf8
2020-04-11 10:05:28 +03:00
Marek Nečada 2ccf9e2c5d Dummy CPU number hack for systems without the sysconf option.
Former-commit-id: 5a6b14d97f5a1edfdf1e0e5d058d4f8de794d5fc
2020-04-11 10:01:12 +03:00
Marek Nečada 231a76529d Quit Fortran dependencies, using own f2c'd version of amos.
TODO doc; submodule init needed


Former-commit-id: 761fc06adffebb05d28a389243771f0bdde70cc0
2020-04-10 23:19:18 +03:00
Marek Nečada ba06abe13f BaseSpec __eq__() and __hash__()
Former-commit-id: da4245315207dc75a70ca6a036fb8be17e243bf9
2020-04-07 19:32:58 +03:00
Marek Nečada 3458acca16 Infinite rect lattices script multiple freqs etc.
Former-commit-id: 8db37dfaf051abf1d6a542eb6ca9b40317848469
2020-04-05 21:41:15 +03:00
Marek Nečada 3f266f5501 More cdefs from vectors.h
Former-commit-id: f1aa88cd3e4dbe2bccc1b7c3648cd9afe08da0c1
2020-04-05 02:19:48 +03:00
Marek Nečada 9b9338be05 Fix critical bug in qpms_vecspharm_fill()
Pointer incrementation in wrong cycle, leading to numerically
completely wrong results in most cases.

At higher level, this seems to have affected only plane wave
decompositions.


Former-commit-id: 7ebdb8b8f3f645d76e924b86379172d2c6fac8dc
2020-04-05 01:43:38 +03:00
Marek Nečada e774b30d0c Some little docstrings.
Former-commit-id: 762774a600ca9a02fecba86e6cb6e6992a1d1b05
2020-04-03 21:55:11 +03:00
Marek Nečada 70d03f75aa Argproc: waves with polarisation; update finiterectlat-scatter.py
Former-commit-id: a24428bd19d90ad6d13ab3cfe4d1c0fc406dc451
2020-04-02 18:27:43 +03:00
Marek Nečada a88694e7ef Make infinite rect lat. / real freq. SVD work with ScatteringSystem.
Former-commit-id: 56beaeca0b44ca9087208c5e27c007d492572302
2020-03-27 14:48:15 +02:00
Marek Nečada 8b7e2c6332 Rectangular lattice SVD cut at gamma point, real frequency
(cherry picked from commit 3fd87de397b5a2228e377e525dabd3e64a641d62 [formerly 57a498625671d8fefccd688fde848ce484f0a6ef])


Former-commit-id: e1b8cab071a5ba2b4f0328aba6930981ba1b3293
2020-03-27 12:36:34 +02:00
Marek Nečada 5f729d28a7 Avoid using Stead method from GSL above certain threshold.
Former-commit-id: aa8012deef69ecce95f203b1b5746cfaa0980806
2020-03-26 19:21:47 +02:00
Marek Nečada 1b4b397093 Cleanup: eliminate bare abort()s
Former-commit-id: bb1e4ada19e6bcbf87d6ea1fce0897c4478fb045
2020-03-26 19:19:40 +02:00
Marek Nečada 20a13cdb2c Doxygenise qpms_error.h
Former-commit-id: 9ed5d7c4352fb6e0d9ef3922fd491010e1f8c16e
2020-03-23 21:59:29 +02:00
Marek Nečada 3ebc1af946 Finer error handling.
Former-commit-id: f30b79d2cc321fc06030374176f5013ff179ffc8
2020-03-23 12:07:43 +02:00
Marek Nečada 2798fcce49 Replace abort() calls with custom macros in vswf.c
Former-commit-id: 43f374a0973d6f0f1d4f7edaba6fcf229223a9cc
2020-03-23 12:04:32 +02:00
Marek Nečada c031d65905 Allow different Bessel kind in scattered_E
Former-commit-id: afbc59cf542daec6e89d4a48f01acfb7e515819c
2020-03-23 12:01:04 +02:00
Marek Nečada b3d15a1bb7 Alternative implementation of qpms_scatsys_scattered_E()
For testing purposes. Seems to work OK.


Former-commit-id: 897e687d27dbd81b2aaac17fb8f19bc4257dc887
2020-03-21 18:49:28 +02:00
Marek Nečada aa82b3a01a Fix allocated array sizes.
Former-commit-id: 7183f7f104df3af58d994d5e485b59cebb4365b3
2020-03-21 16:31:41 +02:00
Marek Nečada 35ffc61faf Scatsystem scattered E field methods
Former-commit-id: 6521916a81a7c8022bfaefb7102ae657eef99516
2020-03-21 08:11:16 +02:00
Marek Nečada 433be52bbc Fix ScatteringSystem.fullvec_poffsets
Former-commit-id: 5a186bb4c22474124ab34d3fd6d5920587b0514d
2020-03-18 09:34:51 +02:00
Marek Nečada 4b2e48f459 Reduce tolerances as a workaround for inprecise integration.
Former-commit-id: bff40ebc4b77a7621b609669ac690475ae0c6fd4
2020-03-18 09:34:05 +02:00
Marek Nečada 15328a3dc9 Minor additions to docs.
Former-commit-id: f913e5f00c630c15a2ab7a92aba26ba27232eb36
2020-03-13 09:30:38 +02:00
Marek Nečada 79b805a6aa Remove pre-Ewald lattice sum related "split-Bessel" functions
Former-commit-id: 18d1c77460bf1563cab50b3c55d481f8dc696364
2020-03-11 15:02:04 +02:00
Marek Nečada 57483ac9c8 Fix cython declarations.
Former-commit-id: f6300c94d19349dabc6e9fc034c405c7179223fe
2020-03-10 16:24:50 +02:00
Marek Nečada 5270430bfd xy-periodic lattice Beyn algorithm support in ScatteringSystem
Gives same results as newbeyn_unitcell 26d6e969, making it obsolete.


Former-commit-id: b1b1b1e2c11f60948efda237388bfdf9b6d689f5
2020-03-09 10:14:40 +02:00
Marek Nečada 3791db2060 xy-periodic lattice scattering support in ScatteringSystem
Gives same results as newbeyn_unitcell 26d6e969


Former-commit-id: 112ab071f41ee556716da67219d859c1dc50ac1d
2020-03-06 14:46:00 +02:00
Marek Nečada 213853e407 WIP cython support for periodic lattices
Former-commit-id: f679f63941ec8dd597a5ccd140682de889e21807
2020-02-29 01:35:12 +02:00
Marek Nečada dd391747bf Scrap the ss->per flexible array thing to avoid excessive mess.
Former-commit-id: b430865714557c21764515dd3243ce42be0f800a
2020-02-28 23:46:55 +02:00
Marek Nečada 78c793fb68 Beyn wrappers for periodic system.
Former-commit-id: c4c21de7d02af36d35133ff9ef0c426742eab6ff
2020-02-28 21:22:36 +02:00
Marek Nečada 1fb4e5760a scatsystem: mode problem matrix for xy-plane periodic systems
Former-commit-id: 755bb86f966b031861a2338eb97e68111694b1d8
2020-02-28 13:53:53 +02:00
Marek Nečada 2b628736f0 WIP 2D in 3D -periodic scatsystem
Former-commit-id: e53b6b1f8361efc6c66260e776688b4e941660ad
2020-02-27 17:03:09 +02:00
Marek Nečada f994514aeb General heap-based lattice point generator compiles, untested.
Former-commit-id: 8106cf72ad1d96426c2273493499db48d232f642
2020-02-25 17:59:33 +02:00
Marek Nečada 1e765e3cf6 WIP Binary-heap based arbitrary-dimensional lattice point generator.
Former-commit-id: 9d58da7295f5918c7758c168a2352cc686efac98
2020-02-25 09:13:47 +02:00
Marek Nečada bf49531666 Experimental support for periodic lattices in scatsys "constructor".
Former-commit-id: 69727f4d415866b948af83c55ed8adb46b651f16
2020-02-14 16:35:55 +02:00
Marek Nečada 379dc3117e Move periodic lattice-related stuff into a separate structure
Former-commit-id: f2f49245a808a592d8f7c6bc7d795ae293d5ae62
2020-02-14 08:25:34 +02:00
Marek Nečada 2499c739c8 New members to qpms_scatsys_t for periodic lattices.
Former-commit-id: 94011c64fb1928b20419e628de045dbc762167eb
2020-02-13 23:02:46 +02:00
Marek Nečada 3fed9396a1 support for TMatrixInterpolator in TMatrixGenerator
Former-commit-id: ae3849483ca5d45d39ab51f9340d0c3c7a347865
2020-02-13 19:05:11 +02:00
Marek Nečada 54315c61c8 Irrep-decomposed scatsys beyn; fix missing FinitePointGroup reference
Former-commit-id: fa1032eb8fcb8ce1018b69fff5af6375b34115be
2020-02-04 20:19:42 +02:00
Marek Nečada cea33ae97c Beyn algorithm cython wrapper (finite systems)
Former-commit-id: 7f17e9673b9389fbf444d871e92f9b12e10d875d
2020-02-04 20:19:42 +02:00
Marek Nečada b4bd1eedac Beyn wrappers for finite system, doxygen
Former-commit-id: 236e802bc92c5fb0984f83b00c77555d5c29430d
2020-02-04 20:19:42 +02:00
Marek Nečada 68812c9555 Beyn algorithm "cherry-pick" from 'newbeyn_unitcell'
- Add rank_min_sel argument to beyn_solve() and beyn_solve_gsl()
- Fix order of K and K_coarse evaluation (K_coarse should probably
  be removed).


Former-commit-id: 8d2be922f8aa62754d10928f53fa6ab68f00dc8e
2020-02-04 20:19:42 +02:00
Marek Nečada daf95e799a Avoid tmgen multiplicities (->slowdown) in ScatteringSystem constructor
Former-commit-id: 438ba0667e36a7c51b2ac5fe58cf62fea17eb132
2020-02-04 16:55:18 +02:00
Marek Nečada c11fe19af3 Remove build type hardcode spec.
Also add QPMS_NORETURN attribute/macro.


Former-commit-id: 0a3fa2ecb35e8ffcee698c98553577ab2bb513b0
2020-02-04 16:55:13 +02:00
Marek Nečada c7c27c4731 Fix memory leaks; use error macros
Former-commit-id: eee02afb23fe4c2be815c64be3a8bb589506a6e7
2020-02-04 16:55:07 +02:00
Marek Nečada 609b6e6265 Extract and inline translation matrix reordering procedure.
Former-commit-id: 327e1ccf9efc26647896db5bbe1a1a4e4d034d3c
2020-01-23 16:16:41 +02:00
Marek Nečada 0a7bd72004 Minor translations refactoring.
Former-commit-id: c4617e67be53861dc4080483f1457a6cbe31e2e9
2020-01-23 12:03:54 +02:00
Marek Nečada bc5a024e86 Fix another stupid bugs
Former-commit-id: 093b5d5f09ac6a6f9be35fb7e20f73b2ba48f1d6
2020-01-21 11:52:45 +02:00
Marek Nečada a2a51d0de6 Fix k-argument related bugs etc.
Former-commit-id: 72c955f31bcd1bfd9cd714c5b19d038f9c7ec6e3
2020-01-20 17:30:36 +02:00
Marek Nečada 71852aa017 Fix function name in header.
Former-commit-id: d9171a27990855ba0bdce741929b445b9688b444
2020-01-20 16:29:10 +02:00
Marek Nečada 937757cf47 Fix unitialised values, assertion.
Former-commit-id: ad712e7b88996e636e78350dcd23cfaf611bf0ec
2020-01-20 15:50:23 +02:00
Marek Nečada 3da4ec6b07 Disable useless compiler warnings.
(To be enabled again later during code cleanup.)


Former-commit-id: b89a16fad5d13d2f39f550b3e5e2e9b991908821
2020-01-20 12:22:45 +02:00
Marek Nečada 80a9f8703a Fix index mismatch
Former-commit-id: b1077e37785539b055c9d182b35273e321c0eda8
2020-01-17 16:06:51 +02:00
Marek Nečada 4674fa5844 fix qpms_tmatrix_copy and pointer for comparison
Former-commit-id: 98d91011109689512ccda2f8aab593909d0555e0
2020-01-16 10:33:04 +02:00
Marek Nečada a16cea4dca Set medium generators
Former-commit-id: 4eceb154349587fdb363a3e46073f065aa70fe61
2020-01-16 08:51:05 +02:00
Marek Nečada c445b83593 Implement previously forgotten functions.
Former-commit-id: df5215ad0349eb75bd2c7bee60f1fac50d23eb99
2020-01-16 07:52:50 +02:00
Marek Nečada 355bc52325 Rewrite ScatteringSystem. Compiles, not tested.
Former-commit-id: 513741a41cd9b65348a8e91c367cd105592a0d68
2020-01-15 03:51:35 +02:00
Marek Nečada 6d83e26aa7 Cython wrapper over qpms_tmatrix_function_t
Former-commit-id: 85b601b7b70bc664d0348619d46fef3bac98fd17
2020-01-14 22:09:55 +02:00
Marek Nečada b578f305ac Support for constant T-matrix generator in cython.
Former-commit-id: 184f88b0acf453d09e67f03cf41db06b4b4015bb
2020-01-14 19:19:08 +02:00
Marek Nečada c86ff69827 WIP cython scatsystem
Former-commit-id: f869e671148d3a75bbf34afe24aad02fd0d32611
2020-01-14 10:09:17 +02:00
Marek Nečada 8f90842b24 Minor docs update in scatsystem.h
Former-commit-id: 78caf1608c4ade295d47c17c20fb5743396cc8e8
2020-01-14 09:17:13 +02:00
Marek Nečada b708b74292 WIP Updating the cython scatsystem etc.
Former-commit-id: ead1919c099cb2a0953310953685df69b7e1cbfb
2020-01-10 17:11:55 +02:00
Marek Nečada be8f55eb1f Update qpms_cdefs.pyx
Former-commit-id: 7e1126b1bb594ffb1a8e5e9ed7a91839c0833b8f
2020-01-10 15:45:42 +02:00
Marek Nečada 6cf1f667de Default tolerance constant.
Former-commit-id: 19951825d21f94455da0228430a674eec37e7653
2020-01-10 15:20:45 +02:00
Marek Nečada c86b881088 Forgotten function renames
Former-commit-id: 89fa50cd8cfbdcf055e57f54093464f1e028c5bc
2020-01-10 15:20:10 +02:00
Marek Nečada 5a98b91b3d Rewriting scatsystem: compiles without errors now.
Former-commit-id: cd68b0feaef7181874d94dc535fd2cc9bc89e518
2020-01-10 11:44:15 +02:00
Marek Nečada 541af5a984 WIP Rewriting scatsystem.
Former-commit-id: 17f0f48ab54b84c4701b17846f941dd0142eb668
2020-01-09 16:57:30 +02:00
Marek Nečada 5dd93235f0 New qpms_scatsys_apply_symmetry kinda done?
Former-commit-id: 49a7a7984af6ad6e0e5ec1b5cc7b61ac06f81b8d
2020-01-09 10:42:49 +02:00
Marek Nečada 7e57c3cc81 WIP new scatsystem
(keskeytetty n. scatsystem.c:214)


Former-commit-id: 5d205f46f38f7b9e988bd03b8a9bff70b3986808
2020-01-08 16:00:09 +02:00
Marek Nečada 3bf263c4f3 Copying of T-matrix operations
Former-commit-id: dea91f97e5e72146039868ab5f0c8ac5e7ea7a57
2020-01-08 15:18:25 +02:00
Marek Nečada e1a6389232 Some new convenience functions and types.
Former-commit-id: 7701cd8ee779e06ba18d6e19bfe650bd9465487f
2020-01-08 14:39:29 +02:00
Marek Nečada d31d8737b8 WIP scatsystem update for "abstract" T-matrices.
Former-commit-id: 7f723a0f459f263e12282edfb1e8deb440650880
2020-01-07 16:57:59 +02:00
Marek Nečada c2b4787cd5 Implementation of qpms_tmatrix_apply_operation().
Former-commit-id: 6773f0e1d02d5f929c2039f99338f08c25d0ccab
2020-01-07 08:14:06 +02:00
Marek Nečada dff8293e6d T-matrix general operation type definitions and destructor.
Former-commit-id: 491a4d8ad602a7252aa9f4446b55c7c905102de9
2020-01-06 02:17:09 +02:00
Marek Nečada d17a5e5eea WIP data structure redefinitions.
Former-commit-id: 5e2baffb4a47657233e792407630507ba611b129
2019-12-21 11:36:01 +02:00
Marek Nečada d53f2964f0 WIP abstract t-matrices
Former-commit-id: 8c573ac3a62bf92195246d6eb95f95df240c48a1
2019-12-19 13:50:12 +02:00
Marek Nečada b6e6554323 Fix imports in symmetries.py
Former-commit-id: 54104859c5858f92fdef0250991802629003e144
2019-12-19 05:30:46 +02:00
Marek Nečada dc5d2cde0b Upgrades to argproc.py, finite rectangular lattice scatter script.
Former-commit-id: 36aba53dc445752cf50e1638883f5a280ccab753
2019-12-14 13:26:40 +02:00
Marek Nečada 2f9e5670da Don't import legacy code to speed up qpms import.
Former-commit-id: b34cdc751f6076d0a02ebc6b122abbd8fbe9cde8
2019-12-14 09:17:29 +02:00
Marek Nečada 4c7dd1ee61 cytmatrix interpolator: access frequency table from python
Former-commit-id: 69a85dba08347f0c0543ecb7913e0b8e2c20473c
2019-12-14 08:57:19 +02:00
Marek Nečada f1f2c821df New CLI argument processing
Former-commit-id: d8fba975ccf08a11e0a4515e5af92edb7856f643
2019-12-14 08:54:43 +02:00
Marek Nečada 1dcebe4fee Add nogil
Former-commit-id: 8ef30e7002dace1691ce32815dc24975b5d7131e
2019-11-17 10:05:29 +02:00
Marek Nečada a712789386 modeproblem matrix parallel implementation to become default
Former-commit-id: ddf4ab3b83490de67034107b96272d725dde6a89
2019-11-17 09:59:06 +02:00
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