FilipDominec / python-meep-utils

<NEEDS MAJOR UPDATE> Simulations of electromagnetic waves - easier scripting, postprocessing and field export
http://www.fzu.cz/~dominecf/meep/
GNU General Public License v2.0
53 stars 31 forks source link

Incompatibility with HDF5 lib in Fedora23+ #3

Open FilipDominec opened 8 years ago

FilipDominec commented 8 years ago

Running example_metamaterial_s_parameters/yslit_xcomparison_d20/batch.sh results in:

Info    Adding material: Gold with 1 oscillator(s); (eps @ 1.00e+12 Hz = -20443.0+281018.263j)
    Simulation time: 3.500000e-10 [s] = 1.049274e-01 time units
Traceback (most recent call last):
  File "../../scatter.py", line 92, in <module>
    for slice_ in slices: slice_.poll(f.time()/c)
  File "/home/dominecf/python-meep-utils/meep_utils.py", line 818, in poll
Traceback (most recent call last):
  File "../../scatter.py", line 92, in <module>
    self.field.output_hdf5(component, self.volume, self.openfile, 1) 
  File "/usr/lib64/python2.7/site-packages/meep_mpi.py", line 4350, in output_hdf5
    for slice_ in slices: slice_.poll(f.time()/c)
  File "/home/dominecf/python-meep-utils/meep_utils.py", line 818, in poll
    self.field.output_hdf5(component, self.volume, self.openfile, 1) 
  File "/usr/lib64/python2.7/site-packages/meep_mpi.py", line 4350, in output_hdf5
    return _meep_mpi.fields_output_hdf5(self, *args)
NotImplementedError: Wrong number or type of arguments for overloaded function 'fields_output_hdf5'.
  Possible C/C++ prototypes are:
    meep::fields::output_hdf5(meep::h5file *,char const *,int,meep::component const *,meep::field_function,void *,int,meep::volume const &,bool,bool)
    meep::fields::output_hdf5(meep::h5file *,char const *,int,meep::component const *,meep::field_function,void *,int,meep::volume const &,bool)
    meep::fields::output_hdf5(meep::h5file *,char const *,int,meep::component const *,meep::field_function,void *,int,meep::volume const &)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_function,void *,meep::volume const &,meep::h5file *,bool,bool,char const *,bool)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_function,void *,meep::volume const &,meep::h5file *,bool,bool,char const *)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_function,void *,meep::volume const &,meep::h5file *,bool,bool)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_function,void *,meep::volume const &,meep::h5file *,bool)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_function,void *,meep::volume const &,meep::h5file *)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_function,void *,meep::volume const &)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_rfunction,void *,meep::volume const &,meep::h5file *,bool,bool,char const *)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_rfunction,void *,meep::volume const &,meep::h5file *,bool,bool)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_rfunction,void *,meep::volume const &,meep::h5file *,bool)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_rfunction,void *,meep::volume const &,meep::h5file *)
    meep::fields::output_hdf5(char const *,int,meep::component const *,meep::field_rfunction,void *,meep::volume const &)
    meep::fields::output_hdf5(meep::component,meep::volume const &,meep::h5file *,bool,bool,char const *)
    meep::fields::output_hdf5(meep::component,meep::volume const &,meep::h5file *,bool,bool)
    meep::fields::output_hdf5(meep::component,meep::volume const &,meep::h5file *,bool)
    meep::fields::output_hdf5(meep::component,meep::volume const &,meep::h5file *)
    meep::fields::output_hdf5(meep::component,meep::volume const &)
    meep::fields::output_hdf5(meep::derived_component,meep::volume const &,meep::h5file *,bool,bool,char const *)
    meep::fields::output_hdf5(meep::derived_component,meep::volume const &,meep::h5file *,bool,bool)
    meep::fields::output_hdf5(meep::derived_component,meep::volume const &,meep::h5file *,bool)
    meep::fields::output_hdf5(meep::derived_component,meep::volume const &,meep::h5file *)
    meep::fields::output_hdf5(meep::derived_component,meep::volume const &)
FilipDominec commented 8 years ago

-note moved to separate issue-

FilipDominec commented 8 years ago

On Fedora 23, the version is hdf5-openmpi-devel-1.8.15-10.patch1.fc23.x86_64, on Ubuntu 16.04 the issue is the same and the version is 1.8.16+docs-4ubuntu1.

gbm19 commented 8 years ago

The attached patch solved the problem for me (using Fedora 23). meep_utils-output_hdf5-patch.txt

FilipDominec commented 8 years ago

@gbm19 Thank you, synced in 0d006fa5. I will test it out soon.