📄 changelog
字号:
Sat Feb 5 12:46:16 EST 2005 stevenj@fftw.org * fix comment M ./src/energy_and_flux.cpp -3 +3Sat Feb 5 12:24:51 EST 2005 stevenj@fftw.org * rename Slicing to FieldOutput (since we also count hdf5 output under this) M ./src/h5fields.cpp r1 M ./src/meep.h r1 M ./src/slices.cpp r1 M ./src/time.cpp r1Sat Feb 5 12:19:11 EST 2005 stevenj@fftw.org * more verbose output by default, with option to suppress by setting meep::quiet = true M ./configure.ac -10 M ./src/bands.cpp -6 +7 M ./src/fields.cpp -2 +3 M ./src/h5fields.cpp +2 M ./src/meep.h -5 +3 M ./src/mympi.cpp -2 +4 M ./src/output_directory.cpp -2 +3 M ./src/step.cpp -2 +9 M ./src/structure.cpp +3 M ./src/time.cpp -6 +6 M ./tests/2D_convergence.cpp +1 M ./tests/bench.cpp +1 M ./tests/bragg_transmission.cpp +1 M ./tests/convergence_cyl_waveguide.cpp +1 M ./tests/cylindrical.cpp +1 M ./tests/flux.cpp +1 M ./tests/h5test.cpp +1 M ./tests/integrate.cpp +1 M ./tests/known_results.cpp +1 M ./tests/one_dimensional.cpp +1 M ./tests/physical.cpp +1 M ./tests/symmetry.cpp +1 M ./tests/three_d.cpp +1 M ./tests/two_dimensional.cpp +1Sat Feb 5 11:22:51 EST 2005 stevenj@fftw.org * allocate all fields lazily (not just in 2d), ensure all field arrays are initialized to null, don't allocate imag. part for is_real, add missing is_real check to fields::initialize, various cleanups M ./src/boundaries.cpp -9 +12 M ./src/fields.cpp -82 +61 M ./src/initialize.cpp -44 +25 M ./src/meep.h -3 +3 M ./src/meep_internals.h +1 M ./src/polarization.cpp -2 +4 M ./src/sources.cpp -1 +5 M ./tests/2D_convergence.cpp -1 +1 M ./tests/h5test.cpp -3 +3 M ./tests/known_results.cpp -1 +1 M ./tests/symmetry.cpp -8 +8Fri Feb 4 19:53:44 EST 2005 stevenj@fftw.org * major surgery on connect_the_chunks connect_the_chunks was: (a) a major performance bottleneck on multiprocessor systems (b) very difficult to modify, consisting of the same code copy-and-pasted many times (c) fairly fragile, with the loops impossible to reorder without breaking step.cc I've tried to fix all of those problems. Now, instead of calling things like locate_point O(nc^2) where np is the number of chunks, it only computes it O(nc) times, and a lot of the duplication is removed. It's also much less fragile, because the connections are stored per phase type (complex, -1, or +1) rather than in one order-sensitive array. However, this required major changes to boundaries.cpp and related code. M ./src/boundaries.cpp -273 +163 M ./src/fields.cpp -25 +21 M ./src/meep.h -10 +14 M ./src/step.cpp -41 +58Mon Jan 31 19:23:19 EST 2005 stevenj@fftw.org * added new methods dft_flux::scale_dfts, fields::require_component, and fields::remove_sources M ./src/dft.cpp -6 +6 M ./src/fields.cpp -7 +22 M ./src/meep.h -2 +8 M ./src/sources.cpp -9 +12 M ./tests/bragg_transmission.cpp -1 +1Thu Jan 27 00:32:41 EST 2005 stevenj@fftw.org * prelimiary support for "D" sources, which multiply J by epsilon M ./src/sources.cpp +9Thu Jan 27 00:30:34 EST 2005 stevenj@fftw.org * support symmetry-based reductions of geometric_volume_list for efficient computation e.g. of DFT fluxes etc M ./src/dft.cpp -45 +22 M ./src/meep.h -4 +2 M ./src/meep/vec.h -8 +24 M ./src/vec.cpp +63Thu Jan 27 00:29:49 EST 2005 stevenj@fftw.org * bug fix in symmetry::phase_shift for Poynting vector M ./src/vec.cpp -1 +3Thu Jan 27 00:28:26 EST 2005 stevenj@fftw.org * force newline in abort messages if one is missing M ./src/mympi.cpp +1Tue Jan 25 20:19:21 EST 2005 stevenj@fftw.org * immediately flush master_printf output M ./src/mympi.cpp -1 +1Mon Dec 6 18:04:09 EST 2004 stevenj@fftw.org * comment correction M ./src/h5fields.cpp -2 +1 M ./src/integrate.cpp -2 +1Mon Dec 6 17:25:02 EST 2004 stevenj@fftw.org * added new derived_component type for various quantities (Poynting vector, energy density) useful to output in get_field and output_hdf5 M ./src/h5fields.cpp +68 M ./src/meep.h +8 M ./src/meep/vec.h -3 +41 M ./src/monitor.cpp +36 M ./src/vec.cpp +42 M ./tests/h5test.cpp -15 +24Mon Dec 6 15:08:07 EST 2004 stevenj@fftw.org * consolidated min/max/abs functions in meep_internals.h M ./src/h5fields.cpp -5 +1 M ./src/meep_internals.h -13 +2 M ./src/vec.cpp -6 +1Mon Dec 6 14:55:50 EST 2004 stevenj@fftw.org * whoops (only compute offsets for integration on Dielectric grid) M ./src/integrate.cpp -1 +2Mon Dec 6 14:40:47 EST 2004 stevenj@fftw.org * fixed missing namespaces M ./src/update_e_from_d_update.cpp -5 +1Mon Dec 6 14:21:53 EST 2004 stevenj@fftw.org * consolidated/simplified fields::output_hdf5 interface M ./src/h5fields.cpp -74 +54 M ./src/meep.h -25 +8 M ./tests/h5test.cpp -3 +3Mon Dec 6 13:44:27 EST 2004 stevenj@fftw.org * add -*- C++ -*- to top of header files so that emacs will use C++ mode (even though they end with .h and not .hpp or .hh) M ./libctl/meep-ctl-const.h +1 M ./libctl/meep-ctl-swig.h +1 M ./libctl/meep-ctl.h +1 M ./src/meep.h +1 M ./src/meep/mympi.h +1 M ./src/meep/vec.h +1 M ./src/meep_internals.h +1 M ./src/ran.h +1 M ./src/threevec.h +1Mon Dec 6 00:54:10 EST 2004 stevenj@fftw.org * rewrote hdf5 output again in terms of new generic field_function (to output an arbitrary function of the fields); also, when the Dielectric component is requested we use 3/trace(average inveps) instead of eps[i], since the former is closer to what is actually used for time-stepping M ./src/h5fields.cpp -107 +266 M ./src/integrate.cpp -8 +38 M ./src/meep.h -14 +57 M ./src/monitor.cpp -11 +66Sun Dec 5 14:24:12 EST 2004 stevenj@fftw.org * whoops, forgot to add integrate.cpp A ./src/integrate.cppSun Dec 5 14:07:52 EST 2004 stevenj@fftw.org * rename fields::integrate to fields::loop_in_chunks, to reflect more generic nature; added *new* fields::integrate which *does* just do integration and makes it much much easier; rewrote energy_and_flux.cpp in terms of new integrate function ./src/fields_integrate.cpp -> ./src/loop_in_chunks.cpp M ./src/Makefile.am -6 +7 M ./src/dft.cpp -5 +5 r1 M ./src/energy_and_flux.cpp -231 +46 r2 M ./src/h5fields.cpp -4 +4 r1 M ./src/loop_in_chunks.cpp -32 +47 r1 M ./src/meep.h -7 +21 r2 M ./src/meep/mympi.h -1 +2 M ./src/mympi.cpp +8 M ./src/sources.cpp -5 +5 r1 M ./tests/integrate.cpp -50 +27Fri Dec 3 20:02:06 EST 2004 stevenj@fftw.org * faster, more easily generalized output_hdf5 based on fields::integrate The old version of fields::output_hdf5 pre-dated fields::integrate, and had home-brewed code for looping over the chunks and symmetries and computing the output from each. Not only was this complicated (as opposed to centralizing the complexity in fields::integrate), but it also was based on fields::interpolate onto an arbitrary grid, which had the following disadvantages: * doing an arbitrary interpolation for every point in a large volume is very slow. This is a problem if we want to output often. * very hard to compute functions of more than one field component, e.g. the energy density or the average inveps dielectric, because on an arbitrary grid this requires communication in general. * hard to prevent different chunks/symmetries to write slightly overlapping data, which produces undefined results in parallel HDF5. The new code *always* outputs on the dielectric grid, which (since it is a fixed interpolation scheme) is a tight loop for each chunk, and is guaranteed by fields::integrate to be non-overlapping. Perhaps even more importantly, it will now be easy to implement output functions of more than one field component, since no communication is required for the interpolation. M ./src/h5fields.cpp -206 +174 M ./src/meep.h -3 +3 M ./tests/h5test.cpp -25 +36Fri Dec 3 12:25:35 EST 2004 stevenj@fftw.org * whoops, fixed bug in last patch (vec min/max funcs) M ./src/vec.cpp +4Fri Dec 3 00:37:08 EST 2004 stevenj@fftw.org * added more min/max functions for vec/ivec M ./src/meep/vec.h +6 M ./src/mympi.cpp +11 M ./src/vec.cpp -10 +30Fri Dec 3 00:36:16 EST 2004 stevenj@fftw.org * added snap_unit_dims to fields::integrate M ./src/fields_integrate.cpp -3 +19 M ./src/meep.h -1 +2Fri Dec 3 00:34:09 EST 2004 stevenj@fftw.org * comment clarification for yee2diel_offsets M ./src/vec.cpp -4 +6Thu Dec 2 17:49:54 EST 2004 stevenj@fftw.org * stopgap fix for PML with non-diagonal inveps...is a longer-term, "proper" fix needed??? M ./src/structure.cpp +4Mon Nov 29 21:37:42 EST 2004 stevenj@fftw.org * added h5file::prevent_deadlock() for deadlock-prevention hacks in exclusive-access HDF5 mode (maybe we should just ditch support for that and require HDF5 to be compiled with MPI?) M ./src/dft.cpp +2 M ./src/h5file.cpp -4 +10 M ./src/meep.h +1 M ./tests/bragg_transmission.cpp +2Mon Nov 29 19:28:53 EST 2004 stevenj@fftw.org * completely revamped structure and structure_chunk initialization In the previous version of the code, the typical initialization sequence went like this: 1) create structure (initializes chunks, evaluates epsilon) 2) set PML (re-initializes chunks, shuffles epsilon around) Step (2) is problematic because the communication of epsilon to the new chunks was performed point-by-point. Not only is this incredibly slow, but it actually causes Tungsten's MPI implementation to crash (probably because there are too many messages). Moreover, it is completely unnecessary. In the new version, the PML boundaries are specified when the structure is first created, so that the chunks need only be computed once and are never re-shuffled around. INCOMPATIBLE API CHANGE: old: structure s(vol, eps, splitting, symmetries); s.use_pml_everywhere(1.0); new: structure s(vol, eps, pml(1.0), symmetries, splitting); In general, the PML boundary regions are specified by *summing* terms of the form pml(thickness, direction, High/Low). If one or both of the last two arguments is omitted, it means *all* sides and *all* directions, respectively. So, a more complicated example is: old: structure s(vol, eps, splitting, symmetries); s.use_pml(X, High, 1.0); s.use_pml(X, Low, 1.0); s.use_pml(Y, High, 1.0); new: structure s(vol, eps, pml(1.0, X) + pml(1.0, Y, High), symmetries, splitting); To specify *no* PML, you use: structure s(vol, eps, no_pml(), symmetries, splitting); This is actually the default, if you omit the boundary-region argument along with splitting (default = 0) and symmetries (default = identity). INCOMPATIBLE API CHANGE: old: s.set_epsilon(eps, minvol, do_aniso_averaging); new: s.set_epsilon(eps, do_aniso_averaging, minvol); The default for the last two arguments is true and 0, respectively, so in the usual case where you are using this function because you want to turn on averaging (currently not the default), you just do: s.set_epsilon(eps); M ./doc/complicated.tex -2 +1 M ./doc/epsilon_polariton_1d.tex -2 +1 M ./doc/lossgain_epsilon.tex -5 +4 M ./doc/nonlinear.tex -5 +3 M ./doc/omniguide.tex -1 +1 M ./doc/simple.tex -3 +2 M ./src/meep.h -31 +86 M ./src/structure.cpp -279 +139 M ./tests/2D_convergence.cpp -1 +1 M ./tests/bench.cpp -3 +2 M ./tests/bragg_transmission.cpp -4 +2 M ./tests/convergence_cyl_waveguide.cpp -3 +3 M ./tests/cylindrical.cpp -10 +8 M ./tests/flux.cpp -12 +6 M ./tests/h5test.cpp -3 +3 M ./tests/integrate.cpp -1 +1 M ./tests/known_results.cpp -5 +2 M ./tests/one_dimensional.cpp -4 +4 M ./tests/physical.cpp -4 +2 M ./tests/symmetry.cpp -42 +38 M ./tests/three_d.cpp -10 +7 M ./tests/two_dimensional.cpp -22 +12Sun Nov 28 19:01:35 EST 2004 stevenj@fftw.org * provide high-resolution wall_time() function in lieu of clock(). Automatically print elapsed time upon program completion. Don't use exit(0) in main()...use return 0 so that ~initialize() is called. M ./configure.ac +7 M ./src/fields.cpp -2 +2 M ./src/meep.h -1 +1 M ./src/meep/mympi.h +5 M ./src/mympi.cpp +31 M ./src/time.cpp -10 +8 M ./tests/bench.cpp -20 +19 M ./tests/cylindrical.cpp -1 +1 M ./tests/flux.cpp -1 +1 M ./tests/one_dimensional.cpp -1 +1 M ./tests/three_d.cpp -1 +1 M ./tests/two_dimensional.cpp -1 +1Wed Nov 24 20:04:09 EST 2004 stevenj@fftw.org * add stride0 function that returns 0, instead of 1, for unused dimensions, so that we can easily distinguish them from "real" dimensions in macros etc. M ./src/meep/vec.h -7 +9 M ./src/vec.cpp -5 +6Wed Nov 24 20:03:39 EST 2004 stevenj@fftw.org * don't use make_average_eps in omniguide.tex M ./doc/omniguide.tex -1 +2Wed Nov 24 17:49:55 EST 2004 stevenj@fftw.org * remove structure::make_average_eps (apparently unused, non-functional, pointless function) M ./src/meep.h -2 M ./src/structure.cpp -20Fri Nov 5 12:45:13 EST 2004 stevenj@fftw.org * updated acx_mpi.m4 M ./m4/acx_mpi.m4 -4 +4Fri Oct 29 21:30:13 EDT 2004 stevenj@fftw.org * added another joke
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -