📄 changelog
字号:
M ./README -1 +1Fri Aug 20 18:08:59 EDT 2004 alexrod7@mit.edu * added fields::electric_energy_weighted_integral function M ./src/energy_and_flux.cpp -10 +27 M ./src/meep.h +2Thu Oct 28 21:51:37 EDT 2004 stevenj@fftw.org * resolve conflict M ./tests/2D_convergence.cpp -3 +3Thu Oct 28 21:48:29 EDT 2004 alexrod7@mit.edu * bug fix: tensor epsilon averaging missed the z component in 2d (added test case for this) M ./src/structure.cpp -1 +2 M! ./tests/2D_convergence.cpp -17 +29Mon Aug 9 15:31:16 EDT 2004 alexrod7@mit.edu * add fields::electric_deps_integral_in_box function for perturbation theory etc. M ./src/energy_and_flux.cpp +59 M ./src/meep.h +2Tue Jul 27 18:24:11 EDT 2004 stevenj@fftw.org * when computing max(E dot D), compute product of components *before* averaging, in closer analogue to how energy integral is computed M ./src/energy_and_flux.cpp -25 +12Tue Jul 20 15:37:27 EDT 2004 alexrod7@mit.edu * add function to compute modal volume according to Purcell definition M ./src/energy_and_flux.cpp +103 M ./src/meep.h +2Wed Jul 14 21:02:03 EDT 2004 stevenj@fftw.org * removed gratuitous "inline" keyword that confused gcc 3.3 M ./src/vec.cpp -1 +1Wed Jul 14 20:02:19 EDT 2004 stevenj@fftw.org * correct save_dft_hdf5/load_dft_hdf5 for MPI, add test case to bragg_transmission.cpp (compute reflection by subtracting DFTs) M ./src/dft.cpp -11 +8 M ./src/meep/mympi.h +1 M ./src/mympi.cpp +8 M ./tests/bragg_transmission.cpp -24 +52Wed Jul 14 17:38:18 EDT 2004 stevenj@fftw.org * vec(r,z) -> veccyl(r,z); vec2d(x,y) -> vec(x,y) as a historical artifact, the code used vec(_, _) to indicate cylindrical coordinates, while vec(_) was 1d and vec(_,_,_) was 3d. 2d was handled by vec2d(_, _). It makes much more sense to make cylindrical coordinates the exception, and so I have implemented this change. To insure that this does not introduce any bugs into Meep, I implemented the change in 2 stages. First, implement veccyl and remove vec(_, _) constructor -- the compiler catches any uses of the 2 argument vec(_,_) and I can replace them with veccyl. Second, remove vec2d and make vec(_,_) produce a 2d vector. USER CODE WILL NEED TO BE UPDATED, HOWEVER! Hopefully, the elimination of vec2d will clue people in that something has changed. M ./doc/complicated.tex -3 +3 M ./doc/energy_cons.tex -3 +3 M ./doc/example.cpp -3 +3 M ./doc/lossgain_epsilon.tex -8 +8 M ./doc/nonlinear.tex -3 +3 M ./doc/omniguide.tex -6 +6 M ./doc/polaritonbands.tex -2 +2 M ./doc/simple.tex -2 +2 M ./src/anisotropic_averaging.cpp -3 +4 M ./src/boundaries.cpp -3 +4 M ./src/meep/vec.h -8 +8 M ./src/slices.cpp -16 +16 M ./src/step.cpp -1 +1 M ./src/vec.cpp -8 +8 M ./tests/2D_convergence.cpp -9 +9 M ./tests/bench.cpp -10 +10 M ./tests/convergence_cyl_waveguide.cpp -4 +4 M ./tests/cylindrical.cpp -33 +33 M ./tests/flux.cpp -14 +14 M ./tests/h5test.cpp -6 +6 M ./tests/known_results.cpp -2 +2 M ./tests/physical.cpp -5 +5 M ./tests/symmetry.cpp -103 +103 M ./tests/two_dimensional.cpp -42 +42Wed Jul 14 15:22:17 EDT 2004 stevenj@fftw.org * slight change in flux tolerance M ./tests/flux.cpp -1 +1Tue Jul 13 19:33:26 EDT 2004 stevenj@fftw.org * rename c -> Courant, make a field of structure instead of global First of all, I renamed "c" to "Courant", since that is what it is (Courant number = dt/dx) ... it is not the speed of light, which should be 1. (I've run into bugs multiple times now from having "c" be shadowed by a local variable, e.g. for the component, and this gets rid of that forever.) Second, since people may want to change the Courant number to reduce numerical dispersion (in general, it only has to be < 1 / sqrt(#dimensions)), I made it a field of the structure class (and also of structure_chunk and fields_chunk). The default is still 0.5, however. Third, inva is no longer a field of the fields class; instead, we have a new field dt which is the timestep. This is much more intuitive and useful to the end-user (and to us) instead of having to compute Courant*inva all the time. There some minor related changes. e.g. do_harminv takes simply the sampling interval dt instead of a scale_factor and a. M ./hsrc/step_d_gen.hs -3 +3 M ./hsrc/step_h_gen.hs -3 +3 M ./hsrc/update_from_e_gen.hs -1 +1 M ./src/bands.cpp -16 +14 M ./src/boundaries.cpp -1 +1 M ./src/dft.cpp -2 +2 M ./src/fields.cpp -7 +9 M ./src/initialize.cpp -5 +4 M ./src/meep.h -10 +11 M ./src/meep/vec.h -4 +7 M ./src/meep_internals.h -1 +1 M ./src/monitor.cpp -1 +1 M ./src/polarization.cpp -2 +2 M ./src/slices.cpp -5 +5 M ./src/sources.cpp -1 +1 M ./src/step.cpp -2 +3 M ./src/step_d.cpp -13 +13 M ./src/step_h.cpp -12 +12 M ./src/structure.cpp -11 +23 M ./src/vec.cpp -32 +28 M ./tests/bench.cpp -1 +1 M ./tests/bragg_transmission.cpp -8 +8 M ./tests/convergence_cyl_waveguide.cpp -2 +2 M ./tests/flux.cpp -8 +8 M ./tests/h5test.cpp -1 +1 M ./tests/physical.cpp -2 +2Tue Jul 13 18:20:48 EDT 2004 stevenj@fftw.org * use delete[] instead of delete in dft.cpp M ./src/dft.cpp -1 +1Tue Jul 13 00:41:36 EDT 2004 stevenj@fftw.org * grrrr M ./libctl/Makefile.am -8 +7Tue Jul 13 00:29:32 EDT 2004 stevenj@fftw.org * grrr M ./libctl/Makefile.am -1 +1Tue Jul 13 00:14:52 EDT 2004 stevenj@fftw.org UNDO: set GEN_CTL_IO even --without-libctl M ./configure.ac -3 +3Tue Jul 13 00:19:32 EDT 2004 stevenj@fftw.org * can't buld meep_wrap.cxx without libctl M ./libctl/Makefile.am -2 +8Tue Jul 13 00:14:52 EDT 2004 stevenj@fftw.org * set GEN_CTL_IO even --without-libctl M ./configure.ac -3 +3Mon Jul 12 23:38:50 EDT 2004 stevenj@fftw.org * disable debugging output in integrate.cpp M ./tests/integrate.cpp -1 +1Mon Jul 12 23:33:53 EDT 2004 stevenj@fftw.org * fix bug in dft_flux spectrum, support dft over list of geometric volumes in preparation for exploiting symmetry, add routine to get dft flux through surface of box M ./src/dft.cpp -69 +133 M ./src/energy_and_flux.cpp -10 +10 M ./src/fields_integrate.cpp -1 +1 M ./src/h5file.cpp -1 +1 M ./src/meep.h -19 +27 M ./src/meep/vec.h -2 +19 M ./src/vec.cpp +9 M ./tests/bench.cpp -2 +2 M ./tests/bragg_transmission.cpp -7 M ./tests/flux.cpp -32 +93 M ./tests/integrate.cpp -51 +98Thu Jul 1 12:02:55 EDT 2004 stevenj@fftw.org * note FIXME in dft.cpp (save_hdf5 is wrong for MPI) M ./src/dft.cpp +4Wed Jun 30 19:46:07 EDT 2004 stevenj@fftw.org * make cylindrical flux test include r=0 in interior of integration volume M ./tests/flux.cpp -7 +7Wed Jun 30 19:38:06 EDT 2004 stevenj@fftw.org * added cylindrical-coord flux test M ./tests/flux.cpp -2 +46Fri Jun 25 14:03:04 EDT 2004 stevenj@fftw.org * fields::add_dft_pt, so that we can get the dft of a point without computing field value * dV M ./src/dft.cpp -1 +14 M ./src/meep.h -1 +4Tue Jun 22 14:53:56 EDT 2004 stevenj@fftw.org * update for new libctl, which supports (limited) SWIG integration M ./libctl/Makefile.am -3 +3 A ./libctl/meep-ctl-swig.h M ./libctl/meep-ctl.h -3 +1 M ./libctl/meep.i +8 M ./libctl/meep.scm.in -2 +5 M ./libctl/structure.cpp -4 +4Mon Jun 21 20:08:21 EDT 2004 stevenj@fftw.org * append_data option only makes sense for fields::output_hdf5 version that takes an h5file option M ./src/h5fields.cpp -3 +2 M ./src/meep.h -7 +7Mon Jun 21 19:57:49 EDT 2004 stevenj@fftw.org * various modifications to support using SWIG to help generate Guile (libctl) interface, so I don't have to muck around with smobs M ./libctl/Makefile.am -4 +12 M ./libctl/meep-ctl.h -11 +6 M ./libctl/meep.cpp -2 +3 A ./libctl/meep.i M ./libctl/meep.scm.in -3 +3 R ./libctl/my-smob.h M ./libctl/structure.cpp -100 +5 M ./src/meep.h -13 +10 M ./src/meep/vec.h -1 +1Mon Jun 21 17:26:44 EDT 2004 stevenj@fftw.org * print benchmark output in easier format for grepping and tabulating M ./tests/bench.cpp -5 +5Wed Jul 14 16:45:12 EDT 2004 meep@ab-initio.mit.edu * don't use --enable-shared in darcs_test (triggers a bug with gcc 2.95, apparently) M ./darcs_test -1 +1Mon Jun 21 00:28:57 EDT 2004 stevenj@fftw.org * no need to include mymypi.h and vec.h if already included via meep.h M ./src/h5file.cpp -1 M ./src/vec.cpp -2Mon Jun 21 00:22:21 EDT 2004 stevenj@fftw.org * vec.h and mympi.h should be installed under /usr/local/include/meep, while meep.h is installed under /usr/local/include ./src/mympi.h -> ./src/meep/mympi.h ./src/vec.h -> ./src/meep/vec.h M ./src/Makefile.am -1 +3 A ./src/meep/ M ./src/meep.h -2 +2Sat Jun 19 14:09:48 EDT 2004 stevenj@fftw.org * lazy chunk connection: only reconnect chunks once, and do so in step_boundaries, after chunk connections have been invalidated by sources, boundary conditions, etc. M ./src/boundaries.cpp -12 +16 M ./src/fields.cpp -3 +3 M ./src/initialize.cpp -11 +21 M ./src/meep.h -10 +8 M ./src/mympi.cpp +16 M ./src/mympi.h +2 M ./src/sources.cpp -1 +1 M ./src/step.cpp +1 M ./tests/Makefile.am +2Fri Jun 18 20:12:48 EDT 2004 stevenj@fftw.org * whoops, incorrect return type on new set_origin M ./src/vec.h -3 +3Fri Jun 18 19:59:51 EDT 2004 stevenj@fftw.org * only call func() once per point, and use LOOP_OVER_VOL, in initialize_field M ./src/initialize.cpp -10 +9Fri Jun 18 19:47:38 EDT 2004 stevenj@fftw.org * optimizations after profiling After running the code with profiling (compile with -pg) and analyzing the results with gprof, I noticed that a lot of time was being wasted calling volume::io() and volume::iloc() during "startup". (This corroborated an earlier observation that the pre-time-stepping code was taking a long time, several seconds in 3d.) I've sped up this greatly by several improvements, summarized as follows: 1) Eliminate loops of the form: for (i = 0; i < v.ntot(); ++i) { ivec here = v.iloc(c, i); ... } replacing them with LOOP_OVER_VOL 2) Add special loops LOOP_OVER_VOL_OWNED and LOOP_OVER_VOL_NOTOWNED to loop just over the owned and not-owned (boundary) points, respectively. 3) io() was still taking too long, so I replaced it with a io member that is recomputed on the rare occasions when the origin is changed. To make sure that it gets recomputed, volume::origin is now private, and there are functions for getting/setting it. Plus a few other tricks/optimizations in heavily-called "startup" functions. M ./src/boundaries.cpp -209 +199 M ./src/meep.h -1 +1 M ./src/polarization.cpp -8 +14 M ./src/sources.cpp -4 +1 M ./src/step_d.cpp -13 +13 M ./src/step_h.cpp -12 +12 M ./src/structure.cpp -53 +65 M ./src/vec.cpp -33 +106 M ./src/vec.h -15 +52 M ./tests/bench.cpp -1 +1 M ./tests/flux.cpp -3 +3 M ./tests/integrate.cpp -4 +94 M ./tests/symmetry.cpp -1 +1Thu Jun 17 17:50:06 EDT 2004 stevenj@fftw.org * pass shift ivect instead of vec to field integrand, so that ivec coords can be computed without worrying about rounding M ./src/dft.cpp -1 +1 M ./src/energy_and_flux.cpp -3 +3 M ./src/fields_integrate.cpp -3 +3 M ./src/meep.h -1 +1 M ./src/sources.cpp -7 +7 M ./tests/integrate.cpp -2 +2Thu Jun 17 13:56:21 EDT 2004 stevenj@fftw.org * whoops, bug in h5file::read_size M ./src/dft.cpp -1 +1 M ./src/h5file.cpp +1Thu Jun 17 03:51:31 EDT 2004 stevenj@fftw.org * accept data prefix in dft/flux load/save HDF5 M ./src/dft.cpp -12 +16 M ./src/meep.h -4 +6Thu Jun 17 02:34:46 EDT 2004 stevenj@fftw.org * set outdir in fields::set_output_directory(!!) M ./src/output_directory.cpp -2 +2Thu Jun 17 02:33:58 EDT 2004 stevenj@fftw.org * removed unused dindex M ./tests/bragg_transmission.cpp -2Thu Jun 17 02:33:37 EDT 2004 stevenj@fftw.org * extra check in src_vol integrand M ./src/sources.cpp +3Thu Jun 17 02:32:24 EDT 2004 stevenj@fftw.org * add add_volume_source that assumes a constant amplitude M ./src/meep.h +3 M ./src/sources.cpp -2 +8Thu Jun 10 02:29:06 EDT 2004 stevenj@fftw.org * update bragg_transmission for new output_hdf5 syntax, print a little output M ./tests/bragg_transmission.cpp -3 +6Thu Jun 10 02:19:35 EDT 2004 stevenj@fftw.org * whoops, some fixes to previous h5file patch M ./src/h5file.cpp -7 +8Thu Jun
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -