diff --git a/NEWS.md b/NEWS.md index b3618edfe..acbab967d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,21 @@ # Meep Release Notes +## Meep 1.20.0 + +8/11/2021 + +* Support for decimation of the DFT time-series updates ([#1684], [#1720], [#1722]). + +* Support for optional single-precision floating point for the DFT fields arrays ([#1675]). + +* Support for cache-oblivious loop tiling of the step-curl field updates ([#1655]). + +* Performance improvements in chunk-to-chunk communication ([#1656], [#1721]). + +* Code coverage for Python API via GitHub Actions ([#1651]). + +* Various bugfixes ([#1692], [#1704]), minor improvements, and additional documentation. + ## Meep 1.19.0 7/6/2021 @@ -424,7 +440,7 @@ * Bug fixes in LDOS computation. - * Work around gcc bug [#54498], which caused a spurious PML test + * Work around gcc bug #54498, which caused a spurious PML test failure with gcc 4.7 and 4.7.1; thanks to Brahmanand Jogai and Thorsten Alteholz for the bug reports. @@ -551,7 +567,7 @@ Meep 1.0.1 * Fix failure in flux test under gcc 4.3.1 in some cases; thanks to Alex Prengel for the bug report. - * Fix compilation problem with gcc 4.4, correcting Debian bug [#505002]. + * Fix compilation problem with gcc 4.4, correcting Debian bug #505002. ## Meep 1.0 @@ -779,171 +795,6 @@ Meep 1.0.1 * Initial public release. -[#1464]: https://github.com/NanoComp/meep/issues/1464 -[#1487]: https://github.com/NanoComp/meep/issues/1487 -[#1499]: https://github.com/NanoComp/meep/issues/1499 -[#1512]: https://github.com/NanoComp/meep/issues/1512 -[#1515]: https://github.com/NanoComp/meep/issues/1515 -[#1519]: https://github.com/NanoComp/meep/issues/1519 -[#1521]: https://github.com/NanoComp/meep/issues/1521 -[#1522]: https://github.com/NanoComp/meep/issues/1522 -[#1527]: https://github.com/NanoComp/meep/issues/1527 -[#1528]: https://github.com/NanoComp/meep/issues/1528 -[#13]: https://github.com/NanoComp/meep/issues/13 -[#14]: https://github.com/NanoComp/meep/issues/14 -[#20]: https://github.com/NanoComp/meep/issues/20 -[#21]: https://github.com/NanoComp/meep/issues/21 -[#40]: https://github.com/NanoComp/meep/issues/40 -[#55]: https://github.com/NanoComp/meep/issues/55 -[#56]: https://github.com/NanoComp/meep/issues/56 -[#96]: https://github.com/NanoComp/meep/issues/96 -[#105]: https://github.com/NanoComp/meep/issues/105 -[#150]: https://github.com/NanoComp/meep/issues/150 -[#184]: https://github.com/NanoComp/meep/issues/184 -[#189]: https://github.com/NanoComp/meep/issues/189 -[#191]: https://github.com/NanoComp/meep/issues/191 -[#192]: https://github.com/NanoComp/meep/issues/192 -[#193]: https://github.com/NanoComp/meep/issues/193 -[#203]: https://github.com/NanoComp/meep/issues/203 -[#248]: https://github.com/NanoComp/meep/issues/248 -[#259]: https://github.com/NanoComp/meep/issues/259 -[#261]: https://github.com/NanoComp/meep/issues/261 -[#266]: https://github.com/NanoComp/meep/issues/266 -[#305]: https://github.com/NanoComp/meep/issues/305 -[#341]: https://github.com/NanoComp/meep/issues/341 -[#345]: https://github.com/NanoComp/meep/issues/345 -[#357]: https://github.com/NanoComp/meep/issues/357 -[#376]: https://github.com/NanoComp/meep/issues/376 -[#388]: https://github.com/NanoComp/meep/issues/388 -[#392]: https://github.com/NanoComp/meep/issues/392 -[#396]: https://github.com/NanoComp/meep/issues/396 -[#416]: https://github.com/NanoComp/meep/issues/416 -[#417]: https://github.com/NanoComp/meep/issues/417 -[#419]: https://github.com/NanoComp/meep/issues/419 -[#422]: https://github.com/NanoComp/meep/issues/422 -[#427]: https://github.com/NanoComp/meep/issues/427 -[#454]: https://github.com/NanoComp/meep/issues/454 -[#456]: https://github.com/NanoComp/meep/issues/456 -[#477]: https://github.com/NanoComp/meep/issues/477 -[#479]: https://github.com/NanoComp/meep/issues/479 -[#483]: https://github.com/NanoComp/meep/issues/483 -[#500]: https://github.com/NanoComp/meep/issues/500 -[#518]: https://github.com/NanoComp/meep/issues/518 -[#531]: https://github.com/NanoComp/meep/issues/531 -[#558]: https://github.com/NanoComp/meep/issues/558 -[#559]: https://github.com/NanoComp/meep/issues/559 -[#570]: https://github.com/NanoComp/meep/issues/570 -[#577]: https://github.com/NanoComp/meep/issues/577 -[#578]: https://github.com/NanoComp/meep/issues/578 -[#581]: https://github.com/NanoComp/meep/issues/581 -[#593]: https://github.com/NanoComp/meep/issues/593 -[#596]: https://github.com/NanoComp/meep/issues/596 -[#599]: https://github.com/NanoComp/meep/issues/599 -[#602]: https://github.com/NanoComp/meep/issues/602 -[#603]: https://github.com/NanoComp/meep/issues/603 -[#626]: https://github.com/NanoComp/meep/issues/626 -[#630]: https://github.com/NanoComp/meep/issues/630 -[#631]: https://github.com/NanoComp/meep/issues/631 -[#644]: https://github.com/NanoComp/meep/issues/644 -[#652]: https://github.com/NanoComp/meep/issues/652 -[#655]: https://github.com/NanoComp/meep/issues/655 -[#666]: https://github.com/NanoComp/meep/issues/666 -[#671]: https://github.com/NanoComp/meep/issues/671 -[#675]: https://github.com/NanoComp/meep/issues/675 -[#681]: https://github.com/NanoComp/meep/issues/681 -[#689]: https://github.com/NanoComp/meep/issues/689 -[#699]: https://github.com/NanoComp/meep/issues/699 -[#705]: https://github.com/NanoComp/meep/issues/705 -[#728]: https://github.com/NanoComp/meep/issues/728 -[#744]: https://github.com/NanoComp/meep/issues/744 -[#747]: https://github.com/NanoComp/meep/issues/747 -[#752]: https://github.com/NanoComp/meep/issues/752 -[#769]: https://github.com/NanoComp/meep/issues/769 -[#771]: https://github.com/NanoComp/meep/issues/771 -[#779]: https://github.com/NanoComp/meep/issues/779 -[#785]: https://github.com/NanoComp/meep/issues/785 -[#787]: https://github.com/NanoComp/meep/issues/787 -[#789]: https://github.com/NanoComp/meep/issues/789 -[#791]: https://github.com/NanoComp/meep/issues/791 -[#795]: https://github.com/NanoComp/meep/issues/795 -[#807]: https://github.com/NanoComp/meep/issues/807 -[#817]: https://github.com/NanoComp/meep/issues/817 -[#860]: https://github.com/NanoComp/meep/issues/860 -[#862]: https://github.com/NanoComp/meep/issues/862 -[#863]: https://github.com/NanoComp/meep/issues/863 -[#868]: https://github.com/NanoComp/meep/issues/868 -[#869]: https://github.com/NanoComp/meep/issues/869 -[#872]: https://github.com/NanoComp/meep/issues/872 -[#876]: https://github.com/NanoComp/meep/issues/876 -[#891]: https://github.com/NanoComp/meep/issues/891 -[#894]: https://github.com/NanoComp/meep/issues/894 -[#919]: https://github.com/NanoComp/meep/issues/919 -[#922]: https://github.com/NanoComp/meep/issues/922 -[#927]: https://github.com/NanoComp/meep/issues/927 -[#940]: https://github.com/NanoComp/meep/issues/940 -[#945]: https://github.com/NanoComp/meep/issues/945 -[#952]: https://github.com/NanoComp/meep/issues/952 -[#953]: https://github.com/NanoComp/meep/issues/953 -[#960]: https://github.com/NanoComp/meep/issues/960 -[#994]: https://github.com/NanoComp/meep/issues/994 -[#1002]: https://github.com/NanoComp/meep/issues/1002 -[#1041]: https://github.com/NanoComp/meep/issues/1041 -[#1042]: https://github.com/NanoComp/meep/issues/1042 -[#1047]: https://github.com/NanoComp/meep/issues/1047 -[#1062]: https://github.com/NanoComp/meep/issues/1062 -[#1078]: https://github.com/NanoComp/meep/issues/1078 -[#1090]: https://github.com/NanoComp/meep/issues/1090 -[#1095]: https://github.com/NanoComp/meep/issues/1095 -[#1112]: https://github.com/NanoComp/meep/issues/1112 -[#1121]: https://github.com/NanoComp/meep/issues/1121 -[#1122]: https://github.com/NanoComp/meep/issues/1122 -[#1126]: https://github.com/NanoComp/meep/issues/1126 -[#1129]: https://github.com/NanoComp/meep/issues/1129 -[#1132]: https://github.com/NanoComp/meep/issues/1132 -[#1154]: https://github.com/NanoComp/meep/issues/1154 -[#1156]: https://github.com/NanoComp/meep/issues/1156 -[#1158]: https://github.com/NanoComp/meep/issues/1158 -[#1159]: https://github.com/NanoComp/meep/issues/1159 -[#1167]: https://github.com/NanoComp/meep/issues/1167 -[#1171]: https://github.com/NanoComp/meep/issues/1171 -[#1192]: https://github.com/NanoComp/meep/issues/1192 -[#1205]: https://github.com/NanoComp/meep/issues/1205 -[#1218]: https://github.com/NanoComp/meep/issues/1218 -[#1233]: https://github.com/NanoComp/meep/issues/1233 -[#1240]: https://github.com/NanoComp/meep/issues/1240 -[#1242]: https://github.com/NanoComp/meep/issues/1242 -[#1244]: https://github.com/NanoComp/meep/issues/1244 -[#1257]: https://github.com/NanoComp/meep/issues/1257 -[#1285]: https://github.com/NanoComp/meep/issues/1285 -[#1286]: https://github.com/NanoComp/meep/issues/1286 -[#1288]: https://github.com/NanoComp/meep/issues/1288 -[#1302]: https://github.com/NanoComp/meep/issues/1302 -[#1303]: https://github.com/NanoComp/meep/issues/1303 -[#1310]: https://github.com/NanoComp/meep/issues/1310 -[#1316]: https://github.com/NanoComp/meep/issues/1316 -[#1333]: https://github.com/NanoComp/meep/issues/1333 -[#1349]: https://github.com/NanoComp/meep/issues/1349 -[#1374]: https://github.com/NanoComp/meep/issues/1374 -[#1388]: https://github.com/NanoComp/meep/issues/1388 -[#1403]: https://github.com/NanoComp/meep/issues/1403 -[#1417]: https://github.com/NanoComp/meep/issues/1417 -[#1427]: https://github.com/NanoComp/meep/issues/1427 -[#1437]: https://github.com/NanoComp/meep/issues/1437 -[#1447]: https://github.com/NanoComp/meep/issues/1447 -[#1456]: https://github.com/NanoComp/meep/issues/1456 -[#1458]: https://github.com/NanoComp/meep/issues/1458 -[#1464]: https://github.com/NanoComp/meep/issues/1464 -[#1487]: https://github.com/NanoComp/meep/issues/1487 -[#1499]: https://github.com/NanoComp/meep/issues/1499 -[#1512]: https://github.com/NanoComp/meep/issues/1512 -[#1515]: https://github.com/NanoComp/meep/issues/1515 -[#1519]: https://github.com/NanoComp/meep/issues/1519 -[#1521]: https://github.com/NanoComp/meep/issues/1521 -[#1522]: https://github.com/NanoComp/meep/issues/1522 -[#1527]: https://github.com/NanoComp/meep/issues/1527 -[#1528]: https://github.com/NanoComp/meep/issues/1528 -[#54498]: https://github.com/NanoComp/meep/issues/54498 -[#505002]: https://github.com/NanoComp/meep/issues/505002 [#13]: https://github.com/NanoComp/meep/issues/13 [#14]: https://github.com/NanoComp/meep/issues/14 [#20]: https://github.com/NanoComp/meep/issues/20 @@ -1117,6 +968,14 @@ Meep 1.0.1 [#1623]: https://github.com/NanoComp/meep/issues/1623 [#1634]: https://github.com/NanoComp/meep/issues/1634 [#1635]: https://github.com/NanoComp/meep/issues/1635 +[#1651]: https://github.com/NanoComp/meep/issues/1651 [#1652]: https://github.com/NanoComp/meep/issues/1652 -[#54498]: https://github.com/NanoComp/meep/issues/54498 -[#505002]: https://github.com/NanoComp/meep/issues/505002 +[#1655]: https://github.com/NanoComp/meep/issues/1655 +[#1656]: https://github.com/NanoComp/meep/issues/1656 +[#1675]: https://github.com/NanoComp/meep/issues/1675 +[#1684]: https://github.com/NanoComp/meep/issues/1684 +[#1692]: https://github.com/NanoComp/meep/issues/1692 +[#1704]: https://github.com/NanoComp/meep/issues/1704 +[#1720]: https://github.com/NanoComp/meep/issues/1720 +[#1721]: https://github.com/NanoComp/meep/issues/1721 +[#1722]: https://github.com/NanoComp/meep/issues/1722 diff --git a/README.md b/README.md index 9f0c5c7f8..f46ea595d 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ - Simulation in **1d, 2d, 3d**, and **cylindrical** coordinates. - Distributed memory [parallelism](https://meep.readthedocs.io/en/latest/Parallel_Meep) on any system supporting [MPI](https://en.wikipedia.org/wiki/MPI). - Portable to any Unix-like operating system such as [Linux](https://en.wikipedia.org/wiki/Linux), [macOS](https://en.wikipedia.org/wiki/macOS), and [FreeBSD](https://en.wikipedia.org/wiki/FreeBSD). -- **Precompiled binary packages** of official releases and nightly builds of the master branch via [Conda](https://meep.readthedocs.io/en/latest/Installation/#conda-packages). +- **Precompiled binary packages** of official releases via [Conda](https://meep.readthedocs.io/en/latest/Installation/#conda-packages). - Variety of arbitrary [material](https://meep.readthedocs.io/en/latest/Materials) types: **anisotropic** electric permittivity ε and magnetic permeability μ, along with **dispersive** ε(ω) and μ(ω) including loss/gain, **nonlinear** (Kerr & Pockels) dielectric and magnetic materials, electric/magnetic **conductivities** σ, **saturable** gain/absorption, and **gyrotropic** media (magneto-optical effects). - [Materials library](https://meep.readthedocs.io/en/latest/Materials/#materials-library) containing predefined broadband, complex refractive indices. - [Perfectly matched layer](https://meep.readthedocs.io/en/latest/Perfectly_Matched_Layer) (**PML**) absorbing boundaries as well as **Bloch-periodic** and perfect-conductor boundary conditions. diff --git a/configure.ac b/configure.ac index 9c8040e4c..e92988803 100644 --- a/configure.ac +++ b/configure.ac @@ -1,13 +1,13 @@ # Process this file with autoconf to produce a configure script. -AC_INIT([meep],[m4_esyscmd(./version.sh 1.20.0-beta)]) +AC_INIT([meep],[m4_esyscmd(./version.sh 1.20.0)]) AC_CONFIG_SRCDIR(src/step.cpp) # Shared-library version number; indicates api compatibility, and is # not the same as the "public" version number. (Don't worry about this # except for public releases.) Note that any change to a C++ class # definition (in the .hpp file) generally breaks binary compatibility. -SHARED_VERSION_INFO="24:0:0" # CURRENT:REVISION:AGE +SHARED_VERSION_INFO="25:0:0" # CURRENT:REVISION:AGE AM_INIT_AUTOMAKE([foreign color-tests parallel-tests silent-rules 1.11]) AM_SILENT_RULES(yes) diff --git a/doc/docs/Acknowledgements.md b/doc/docs/Acknowledgements.md index 94b5171d3..b784b73a3 100644 --- a/doc/docs/Acknowledgements.md +++ b/doc/docs/Acknowledgements.md @@ -5,7 +5,7 @@ Authors ------- -Meep originated as part of graduate research at [MIT](https://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology) with initial contributions by [Steven G. Johnson](http://math.mit.edu/~stevenj/), [Ardavan Oskooi](http://ab-initio.mit.edu/~oskooi/), [David Roundy](http://physics.oregonstate.edu/~roundyd/), [Mihai Ibanescu](https://www.linkedin.com/in/mihai-ibanescu-2b147825/), and [Peter Bermel](http://web.ics.purdue.edu/~pbermel/). Currently, the Meep project is maintained by [Simpetus](http://www.simpetus.com) and the developer community on [GitHub](https://github.com/NanoComp/meep). [Christopher Hogan](https://github.com/ChristopherHogan) and [M.T. Homer Reid](http://homerreid.dyndns.org/) lead the development of the [Python interface](Python_User_Interface.md), [mode-decomposition feature](Python_Tutorials/Mode_Decomposition.md), and [GDSII import routines](Python_Tutorials/GDSII_Import.md). M.T. Homer Reid and [Alec Hammond](https://github.com/smartalecH/) developed the [adjoint solver](Python_Tutorials/Adjoint_Solver.md). [Alex Cerjan](http://www.alexcerjan.com/) assisted with adding support for saturable absorption via [multilevel atomic gain media](Materials.md#saturable-gain-and-absorption). Alec Hammond developed the [visualization module](Python_User_Interface.md#data-visualization). [Yidong Chong](http://www1.spms.ntu.edu.sg/~ydchong/bio.html) and Alex Cerjan added support for [gyrotropic media](Materials.md#gyrotropic-media). +Meep originated as part of graduate research at [MIT](https://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology) in the mid 2000s with initial contributions by [Steven G. Johnson](http://math.mit.edu/~stevenj/), [Ardavan Oskooi](http://ab-initio.mit.edu/~oskooi/), [David Roundy](http://physics.oregonstate.edu/~roundyd/), [Mihai Ibanescu](https://www.linkedin.com/in/mihai-ibanescu-2b147825/), and [Peter Bermel](http://web.ics.purdue.edu/~pbermel/). The project has been under continuous development for nearly 20 years. Currently, the Meep project is maintained by an active developer community on [GitHub](https://github.com/NanoComp/meep). [Christopher Hogan](https://github.com/ChristopherHogan) and [M.T. Homer Reid](http://homerreid.dyndns.org/) lead the development of the [Python interface](Python_User_Interface.md), [mode-decomposition feature](Python_Tutorials/Mode_Decomposition.md), and [GDSII import routines](Python_Tutorials/GDSII_Import.md). M.T. Homer Reid and [Alec Hammond](https://github.com/smartalecH/) developed the [adjoint solver](Python_Tutorials/Adjoint_Solver.md). [Alex Cerjan](http://www.alexcerjan.com/) assisted with adding support for saturable absorption via [multilevel atomic gain media](Materials.md#saturable-gain-and-absorption). Alec Hammond developed the [visualization module](Python_User_Interface.md#data-visualization). [Yidong Chong](http://www1.spms.ntu.edu.sg/~ydchong/bio.html) and Alex Cerjan added support for [gyrotropic media](Materials.md#gyrotropic-media). [Andreas Hoenselaar](https://github.com/ahoenselaar) contributed to several performance enhancements. Referencing ----------- @@ -27,4 +27,4 @@ General references on the FDTD method include, for example: Financial Support ----------------- -Meep's continued development has been supported by Small Business Innovation Research (SBIR) Phase 1 and 2 awards from the National Science Foundation (NSF) under award numbers [1647206](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1647206) and [1758596](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1758596). Initial development was supported in part by the Materials Research Science and Engineering Center program of the NSF under award numbers DMR-9400334 and DMR-0819762, by the Army Research Office through the Institute for Soldier Nanotechnologies under DAAD-19-02-D0002, and DARPA under N00014-05-1-0700 administered by the Office of Naval Research. +Meep's development has been supported by Small Business Innovation Research (SBIR) Phase 1 and 2 awards from the National Science Foundation (NSF) under award numbers [1647206](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1647206) and [1758596](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1758596). Initial development was supported in part by the Materials Research Science and Engineering Center program of the NSF under award numbers DMR-9400334 and DMR-0819762, by the Army Research Office through the Institute for Soldier Nanotechnologies under DAAD-19-02-D0002, and DARPA under N00014-05-1-0700 administered by the Office of Naval Research. diff --git a/doc/docs/FAQ.md b/doc/docs/FAQ.md index b5403ddb5..1b6aa356e 100644 --- a/doc/docs/FAQ.md +++ b/doc/docs/FAQ.md @@ -15,7 +15,7 @@ Meep is a [free and open-source](https://en.wikipedia.org/wiki/Free_and_open-sou ### Who are the developers of Meep? -Meep was originally developed as part of graduate research at MIT. The project has been under continuous development for nearly 20 years. It is currently maintained by [Simpetus](http://www.simpetus.com) and the developer community on [GitHub](https://github.com/NanoComp/meep). +Meep was originally developed as part of graduate research at MIT. The project has been under continuous development for nearly 20 years. It is currently maintained by an active developer community on [GitHub](https://github.com/NanoComp/meep). ### Where can I ask questions regarding Meep? @@ -31,7 +31,7 @@ Yes. The technical details of Meep's inner workings are described in the peer-re ### Where can I find a list of projects which have used Meep? -For a list of more than 2500 published works which have used Meep, see the [Google Scholar citation page](https://scholar.google.com/scholar?hl=en&q=meep+software) as well as that for the [Meep manuscript](https://scholar.google.com/scholar?cites=17712807607104508775) and the [subpixel smoothing reference](https://scholar.google.com/scholar?cites=410731148689673259). For examples based on technology applications, see the [Simpetus projects page](http://www.simpetus.com/projects.html). +For a list of more than 2500 published works which have used Meep, see the [Google Scholar citation page](https://scholar.google.com/scholar?hl=en&q=meep+software) as well as that for the [Meep manuscript](https://scholar.google.com/scholar?cites=17712807607104508775) and the [subpixel smoothing reference](https://scholar.google.com/scholar?cites=410731148689673259). For examples based on technology applications, see this [projects page](http://www.simpetus.com/projects.html). ### Can I access Meep in the public cloud? @@ -42,7 +42,7 @@ Installation ### Where can I install Meep? -Meep runs on any Unix-like operating system, such as Linux, macOS, and FreeBSD, from notebooks to desktops to supercomputers. [Conda packages](Installation.md#conda-packages) of the latest released version are available for Linux and macOS. There are also Conda packages of [nightly development builds](Installation.md#nightly-builds) which can be used to experiment with new features. Installing Meep from the source code requires some understanding of Unix, especially to install the various dependencies. Installation shell scripts are available for [Ubuntu 16.04 and 18.04](Build_From_Source.md#building-from-source) and [macOS Sierra](https://www.mail-archive.com/meep-discuss@ab-initio.mit.edu/msg05811.html). +Meep runs on any Unix-like operating system, such as Linux, macOS, and FreeBSD, from notebooks to desktops to supercomputers. [Conda packages](Installation.md#conda-packages) of the latest released version are available for Linux and macOS. Installing Meep from the source code requires some understanding of Unix, especially to install the various dependencies. Installation shell scripts are available for [Ubuntu 16.04 and 18.04](Build_From_Source.md#building-from-source) and [macOS Sierra](https://www.mail-archive.com/meep-discuss@ab-initio.mit.edu/msg05811.html). ### Can I install Meep on Windows machines? @@ -50,7 +50,7 @@ Yes. For Windows 10, you can install the [Ubuntu terminal](https://www.microsoft ### Are there precompiled binary packages for Ubuntu? -Yes. Ubuntu and Debian packages can be obtained via the package manager [APT](https://en.wikipedia.org/wiki/APT_(Debian)) as described in [Download](Download.md#precompiled-packages-for-ubuntu). However, the Meep packages for Ubuntu 16.04 ([serial](https://packages.ubuntu.com/xenial/meep) and [parallel](https://packages.ubuntu.com/xenial/meep-openmpi)) and 18.04 ([serial](https://packages.ubuntu.com/bionic/meep) and [parallel](https://packages.ubuntu.com/bionic/meep-openmpi)) are for [version 1.3](https://github.com/NanoComp/meep/releases/tag/1.3) (September 2017) which is out of date. The Meep package for Ubuntu is in the process of being updated and will likely appear in Ubuntu 19.10 as derived from the [unstable Debian package](https://packages.debian.org/unstable/meep). In the meantime, since the [Scheme interface](Scheme_User_Interface.md) is no longer being supported and has been replaced by the [Python interface](Python_User_Interface.md), you can use the [Conda packages](Installation.md#conda-packages) which contain the official releases as well as nightly builds of the master branch of the source repository. +Yes. Ubuntu and Debian packages can be obtained via the package manager [APT](https://en.wikipedia.org/wiki/APT_(Debian)) as described in [Download](Download.md#precompiled-packages-for-ubuntu). However, the Meep packages for Ubuntu 16.04 ([serial](https://packages.ubuntu.com/xenial/meep) and [parallel](https://packages.ubuntu.com/xenial/meep-openmpi)) and 18.04 ([serial](https://packages.ubuntu.com/bionic/meep) and [parallel](https://packages.ubuntu.com/bionic/meep-openmpi)) are for [version 1.3](https://github.com/NanoComp/meep/releases/tag/1.3) (September 2017) which is out of date. The Meep package for Ubuntu is in the process of being updated and will likely appear in Ubuntu 19.10 as derived from the [unstable Debian package](https://packages.debian.org/unstable/meep). In the meantime, since the [Scheme interface](Scheme_User_Interface.md) is no longer being supported and has been replaced by the [Python interface](Python_User_Interface.md), you can use the [Conda packages](Installation.md#conda-packages). ### Guile is installed, but configure complains that it can't find `guile` diff --git a/doc/docs/Installation.md b/doc/docs/Installation.md index 2cae0e504..a745415b9 100644 --- a/doc/docs/Installation.md +++ b/doc/docs/Installation.md @@ -99,17 +99,6 @@ conda create -n pmp1.9 -c conda-forge pymeep=1.9.0=mpi_mpich_* Note that parallel (MPI) versions are only available with `pymeep >= 1.8.0`. -### Nightly Builds - -To experiment with new features before they are distributed in an official release, you can try the [nightly-development builds](https://github.com/Simpetus/pymeep-nightly-recipe). They are hosted on the `simpetus` channel. Currently, the nightly builds are only available for Python 2.7 and 3.6. - -```bash -# Serial pymeep -conda create -n mp_test -c simpetus -c conda-forge pymeep -# Parallel pymeep -conda create -n pmp_test -c simpetus -c conda-forge pymeep=*=mpi_mpich* -``` - ### Version Number You can determine the version number as well as the most recent commit of the Meep module via: @@ -123,7 +112,7 @@ This will show something like `1.11.0-1-g415bc8eb` where the first three digits ### Non-Networked Systems -To install the PyMeep Conda package on a [non-networked system](https://docs.anaconda.com/anaconda/user-guide/tasks/install-packages/#installing-packages-on-a-non-networked-air-gapped-computer), using the bz2 tarball of the [official release](https://anaconda.org/conda-forge/pymeep/files) or [nightly build](https://anaconda.org/simpetus/pymeep/files) will *not* work without the dependencies. A possible workaround is [Conda-Pack](https://github.com/conda/conda-pack). +To install the PyMeep Conda package on a [non-networked system](https://docs.anaconda.com/anaconda/user-guide/tasks/install-packages/#installing-packages-on-a-non-networked-air-gapped-computer), using the bz2 tarball of the [official release](https://anaconda.org/conda-forge/pymeep/files) will *not* work without the dependencies. A possible workaround is [Conda-Pack](https://github.com/conda/conda-pack). Installation on Linux ------------------------- diff --git a/doc/docs/Introduction.md b/doc/docs/Introduction.md index 8e6ea3077..d4466289c 100644 --- a/doc/docs/Introduction.md +++ b/doc/docs/Introduction.md @@ -6,7 +6,7 @@ Meep implements the [finite-difference time-domain](https://en.wikipedia.org/wik This section introduces the equations and the electromagnetic units employed by Meep, the FDTD method, and Meep's approach to FDTD. Also, FDTD is only one of several useful methods in computational electromagnetics, each of which has their own special uses — a few of the other methods are mentioned, and some hints are provided as to which applications FDTD is well suited for and when you should potentially consider a different method. -This introduction does not describe the [Python Interface](Python_User_Interface.md) with which you set up simulations. Instead, the focus here is on the physics and numerical methods. For tutorial examples which demonstrate core functionality, see [Tutorial/Basics](Python_Tutorials/Basics.md) and the [Simpetus projects page](http://www.simpetus.com/projects.html). +This introduction does not describe the [Python Interface](Python_User_Interface.md) with which you set up simulations. Instead, the focus here is on the physics and numerical methods. For tutorial examples which demonstrate core functionality, see [Tutorial/Basics](Python_Tutorials/Basics.md) and this [projects page](http://www.simpetus.com/projects.html). [TOC] diff --git a/doc/docs/Parallel_Meep.md b/doc/docs/Parallel_Meep.md index 377b4df86..0228e4b38 100644 --- a/doc/docs/Parallel_Meep.md +++ b/doc/docs/Parallel_Meep.md @@ -138,7 +138,7 @@ For large multicore jobs with I/O, it may be necessary to have `(meep-all-wait)` Runtime Scaling on MPI Clusters ------------------------------- -The following are benchmarking results of the total runtime vs. number of processors for a 3d [OLED](http://www.simpetus.com/projects.html#meep_oled) simulation involving [Lorentzian susceptibility](Python_User_Interface.md#lorentziansusceptibility), [Absorber](Python_User_Interface.md#absorber), 1d [PML](Python_User_Interface.md#pml), and [DFT flux monitors](Python_User_Interface.md#flux-spectra) for [MPICH](https://www.mpich.org/) clusters of [n1-standard-16](https://cloud.google.com/compute/docs/machine-types#n1_machine_type) instances (8 single-threaded cores) on the [Google Cloud Platform](https://cloud.google.com/) (GCP). One slot on each node is reserved for kernel tasks leaving 7 slots per node. The software stack includes Ubuntu 16.04, the Meep [nightly build Conda package](Installation.md#nightly-builds), [elasticluster](https://elasticluster.readthedocs.io/en/latest/) for the cluster management, and [grid engine](https://en.wikipedia.org/wiki/Oracle_Grid_Engine) for the job scheduler. In order to reduce [cache contention](https://en.wikipedia.org/wiki/Resource_contention), process affinity is used via the `mpirun` option `-bind-to core`. Meep's simulation domain is split into equal-sized [chunks](Chunks_and_Symmetry.md#chunks-and-symmetry) (`split_chunks_evenly=True`). There are 13 clusters ranging in size from 2 to 14 nodes (14 to 98 processors). For reference, there are some [useful guidelines for benchmarking MPI jobs](https://www.open-mpi.org/faq/?category=tuning#running-perf-numbers). +The following are benchmarking results of the total runtime vs. number of processors for a 3d [OLED](http://www.simpetus.com/projects.html#meep_oled) simulation involving [Lorentzian susceptibility](Python_User_Interface.md#lorentziansusceptibility), [Absorber](Python_User_Interface.md#absorber), 1d [PML](Python_User_Interface.md#pml), and [DFT flux monitors](Python_User_Interface.md#flux-spectra) for [MPICH](https://www.mpich.org/) clusters of [n1-standard-16](https://cloud.google.com/compute/docs/machine-types#n1_machine_type) instances (8 single-threaded cores) on the [Google Cloud Platform](https://cloud.google.com/) (GCP). One slot on each node is reserved for kernel tasks leaving 7 slots per node. The software stack includes Ubuntu 16.04, the Meep 1.15 [Conda package](Installation.md#conda-packages), [elasticluster](https://elasticluster.readthedocs.io/en/latest/) for the cluster management, and [grid engine](https://en.wikipedia.org/wiki/Oracle_Grid_Engine) for the job scheduler. In order to reduce [cache contention](https://en.wikipedia.org/wiki/Resource_contention), process affinity is used via the `mpirun` option `-bind-to core`. Meep's simulation domain is split into equal-sized [chunks](Chunks_and_Symmetry.md#chunks-and-symmetry) (`split_chunks_evenly=True`). There are 13 clusters ranging in size from 2 to 14 nodes (14 to 98 processors). For reference, there are some [useful guidelines for benchmarking MPI jobs](https://www.open-mpi.org/faq/?category=tuning#running-perf-numbers). As shown in the first figure below, the runtime reaches a minimum at 77 processors. The second figure shows the scaling of the ratio of the mean time spent on communication (MPI/synchronization) to the computation (time stepping and DFTs). (Timing metrics were obtained using [`Simulation.mean_time_spent_on`](Python_User_Interface.md#simulation-time).) This ratio is a measure of the parallelization efficiency. The crossover point when the parallelization efficiency becomes larger than one — the regime in which the simulation is constrained by the network bandwidth rather than the CPU clock speed — corresponds well to the minimum runtime of the first figure. diff --git a/doc/docs/Python_Tutorials/Basics.md b/doc/docs/Python_Tutorials/Basics.md index a1f13b689..cedab140f 100644 --- a/doc/docs/Python_Tutorials/Basics.md +++ b/doc/docs/Python_Tutorials/Basics.md @@ -2,7 +2,7 @@ # Python Tutorial --- -We will review several examples using the Python interface that demonstrate the process of computing fields, transmittance/reflectance spectra, and resonant modes. The examples are mainly 1d or 2d simulations, simply because they are quicker than 3d and they illustrate most of the essential features. For more advanced functionality involving 3d simulations with a focus on technology applications, see the [Simpetus projects page](http://www.simpetus.com/projects.html). +We will review several examples using the Python interface that demonstrate the process of computing fields, transmittance/reflectance spectra, and resonant modes. The examples are mainly 1d or 2d simulations, simply because they are quicker than 3d and they illustrate most of the essential features. For more advanced functionality involving 3d simulations with a focus on technology applications, see this [projects page](http://www.simpetus.com/projects.html). [TOC] diff --git a/doc/docs/Python_User_Interface.md b/doc/docs/Python_User_Interface.md index 72346478c..c539ea90b 100644 --- a/doc/docs/Python_User_Interface.md +++ b/doc/docs/Python_User_Interface.md @@ -293,11 +293,10 @@ Python. `Vector3` is a `meep` class. modify the output volume instead of setting `output_volume` directly. + **`output_single_precision` [`boolean`]** — Meep performs its computations in - [double precision](https://en.wikipedia.org/wiki/double_precision), and by - default its output HDF5 files are in the same format. However, by setting this - variable to `True` (default is `False`) you can instead output in [single - precision](https://en.wikipedia.org/wiki/single_precision) which saves a factor - of two in space. + [double-precision floating point](Build_From_Source.md#floating-point-precision-of-the-fields-and-materials-arrays), + and by default its output HDF5 files are in the same format. However, by setting + this variable to `True` (default is `False`) you can instead output in single + precision which saves a factor of two in space. + **`progress_interval` [`number`]** — Time interval (seconds) after which Meep prints a progress message. Default is 4 seconds. @@ -514,10 +513,7 @@ def time_spent_on(self, time_sink):