Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Implement gyrotropic susceptibility class. * Add Python and Scheme support for gyrotropic media. * Initialize bias vector in python susceptibility struct. * Remove "bias" from gyrotropic_susceptibility; the information is already in gyro_tensor. * Add gyrotropic media to docs * Minor copyedit * Fix logic in py_susceptibility_to_susceptibility * In add_susceptibilities, always pass a 3-vector as gyrotropic bias * First try at gyrotropic media tutorial * Fix errors in gyrotropy formulas in notes * Re-implemention of gyrotropy using LLG equation * Tweak handling of sigma tensor in gyrotropic case * Update Python doc. * Drop 2pi factor from gyrotropic sigma * Doc updates * Fix last change to update_P * Fix printf typo * Remove spurious 2pi factor in alpha (which is not a rate) * Minor code tweak * Use a central-difference scheme for the LLG dynamics, which seems slighly more stable... * Try implementing the full nonlinear LLG equation * Add implicit static polarization to gyrotropy implementation * Put static P back in in subtract_P * Add gyrotropy example * Fix; use LOOP_OVER_VOL instead of LOOP_OVER_VOL_OWNED to ensure updating of off-diagonal components * Clamp the magnitude of the LLG polarization vector. * Revert inadvertent unrelated change to meep.i * Minor code cleanup * Flag "needs_W_notowned" for gyrotropic media * Update gyrotropic P components explicitly; don't use LOOP_OVER_VOL_OWNED * Enable needs_P on all components for gyrotropic media * Fix gyrotropy scheme to track 9 polarization components per unit cell. * Revert unrelated last change to meep.i * Avoiding need for allocation of P_tmp in gyrotropy_data. * Implement num_cinternal_notowned stuff for gyrotropic media * Update documentation for gyrotropic media, and relax some minor restrictions. * Add virtual keywords to gyrotropic_susceptibility methods * Merge latest changes from master * Remove gyrotropic-dispersion.py (incomplete attempt) * Complete merge * Update Materials.md to discuss both Lorentzian and LLG gyrotropic models * Introduce a new gyrotropy_model enum type, to allow for the LLG model. * More plumbing to provide support for Landau-Lifshitz-Gilbert type gyrotropy model * Fix typo in susceptibility update equation * Fix typos in Faraday rotation formula in docs * Merge from master * Reimplement linearized-LLG updating equations * Fix typo * Minor code clarification * Fix Faraday rotation example * For Landau-Lifshitz-Gilbert model, ignore the magnitude of the bias vector. * Fix minor hiccup in docs. * Support dumping and undumping of gyrotropic susceptibilities * Doc updates and minor tweaks accompanying last merge * Translate Faraday rotation tutorial from Python to Scheme * Fix typo in last change * Fix missing 2pi factor in gyrotropic LLG susceptibility's sigma parameter * Minor fixes for gyrotropy documentation * Add Faraday rotation unit test * Use absolute tolerance (in degrees) for Faraday rotation unit test * Add faraday rotation test to python/Makefile.am * Relax rules on needs_P for gyrotropic media (Bug#1117) * Remove gyrotropic_susceptibility::needs_P, falling back on parent version * Set gyrotropic_susceptibility::num_cinternal_notowned_needed as suggest by stevengj (#1219) * Revert accidental code changes. * Whitespace fixes. * Whitespace changes. Co-authored-by: Chong Yidong <[email protected]>
- Loading branch information