Meep: Instalación

A continuación, se enlistan los comandos necesarios para instalar todos los paquetes que necesita Meep en sus versiones tanto de desarrollo así como de documentación y ejecutables para poder funcionar en modo de desarrollo, cabe mencionar que esta lista de comandos fue probada en una instalación de Debian Squeeze así como en una instalación de Ubuntu 11.04, los comandos se deben ejecutar con el usuario “root” para poder tener acceso a instalar software por lo que si se esta utilizando Ubuntu tal vez se tenga que cambiar el password de root y hacer un switch del user “su root” de otra manera se le tendrá que agregar el comando “sudo” al inicio de cada instrucción.

meep_install.sh

#########################################################################################################
### This package contains an informational list of packages which are
### considered essential for building Debian packages.  This package also
### depends on the packages on that list, to make it easy to have the
### build-essential packages installed.
 
apt-get install build-essential
 
#########################################################################################################
### BLAS (Basic Linear Algebra Subroutines) is a set of efficient
### routines for most of the basic vector and matrix operations.
### They are widely used as the basis for other high quality linear
### algebra software, for example lapack and linpack.  This
### implementation is the Fortran 77 reference implementation found
### at netlib.
 
apt-get install libblas3gf libblas-test libblas-dev libblas-doc
 
##########################################################################################################
### LAPACK version 3.X is a comprehensive FORTRAN library that does
### linear algebra operations including matrix inversions, least
### squared solutions to linear sets of equations, eigenvector
### analysis, singular value decomposition, etc. It is a very
### comprehensive and reputable package that has found extensive
### use in the scientific community.
 
apt-get install liblapack3gf liblapack-test liblapack-doc liblapack-pic liblapack-dev
 
##########################################################################################################
### harminv is a free library to solve the problem of harmonic inversion,
### given a discrete-time, finite-length signal that consists of a sum of
### finitely-many sinusoids (possibly exponentially decaying) in a given
### bandwidth, it determines the frequencies, decay constants, amplitudes, and
### phases of those sinusoids.
 
apt-get install libharminv2 harminv libharminv-dev
 
##########################################################################################################
### Guile is a Scheme implementation designed for real world programming,
### providing a rich Unix interface, a module system, an interpreter, and
### many extension languages.  Guile can be used as a standard #! style
### interpreter, via #!/usr/bin/guile, or as an extension language for
### other applications via libguile.
 
apt-get install guile-1.8 guile-1.8-libs guile-1.8-dev
 
##########################################################################################################
### libctl is a free Guile-based library implementing flexible control files for
### scientific simulations. It was written to support the MIT Photonic-Bands
### program, but will hopefully prove useful in other programs too.
 
apt-get install libctl3 libctl-dev libctl-doc
 
##########################################################################################################
### Open MPI is a project combining technologies and resources from several other
### projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
### MPI library available. A completely new MPI-2 compliant implementation, Open
### MPI offers advantages for system and software vendors, application developers
### and computer science researchers.
 
apt-get install openmpi-bin libopenmpi-dev openmpi-doc libopenmpi-dbg openmpi-common openmpi-checkpoint libopenmpi1.3
 
##########################################################################################################
### HDF5 (Hierarchical Data Format 5) is a file format for storing
### scientific data. These tools allow to convert other formats to
### HDF5 and to visualize HDF5 files. They include:
###  - h5topng, which extracts a 2d slice of an HDF5 file and
###    outputs a corresponding image in PNG format;
###  - h5totxt, which extracts 2d slices and outputs comma-delimited
###    text (suitable for import into a spreadsheet);
###  - h5fromtxt, which converts simple text input into
###    multi-dimensional numeric HDF5 datasets;
###  - h5fromh4, which converts HDF4 data to HDF5;
###  - h5tovtk, which converts HDF5 files to VTK files for
###    visualization with VTK-aware programs;
###  - h5read, a plugin for the Octave numerical language.
 
apt-get install h5utils hdf5-tools libhdf5-doc libhdf5-serial-1.8.4 libhdf5-serial-dev hdfview
 
##########################################################################################################
### ATLAS is an approach for the automatic generation and optimization of
### numerical software. Currently ATLAS supplies optimized versions for the
### complete set of linear algebra kernels known as the Basic Linear Algebra
### Subroutines (BLAS), and a subset of the linear algebra routines in the
### LAPACK library.
 
apt-get install libatlas3gf-base libatlas-doc libatlas-dev libatlas-test libatlas-base-dev
 
##########################################################################################################
### MPB - The MIT Photonic-Bands package is a free program for computing the band
### structures (dispersion relations) and electromagnetic modes of periodic
### dielectric structures, on both serial and parallel computers. It was
### developed by Steven G. Johnson at MIT in the Joannopoulos Ab Initio
### Physics group, and designed to study photonic crystal structures.
 
apt-get install mpb mpb-doc
 
##########################################################################################################
### This library computes Fast Fourier Transforms (FFT) in one or more dimensions.
### It is extremely fast. This package contains the shared library version of the
### fftw libraries in double precision.
 
apt-get install fftw2 libfftw3-3 fftw-docs fftw-dev
 
##########################################################################################################
### The GNU Scientific Library (GSL) is a collection of routines for
### numerical analysis.  The routines are written from scratch by the GSL
### team in C, and present a modern API for C programmers, while allowing
### wrappers to be written for very high level languages.
 
apt-get install libgsl0ldbl libgsl0-dbg gsl-bin libgsl0-dev gsl-ref-html
 
##########################################################################################################
### Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation
### software package developed at MIT to model electromagnetic systems.
### Its features include:
###   * Simulation in 1d, 2d, 3d, and cylindrical coordinates.
###   * Dispersive (including loss/gain) and nonlinear (Kerr & Pockels) materials.
###     Magnetic permeability and electric/magnetic conductivities.
###   * PML absorbing boundaries and/or perfect conductor and/or Bloch-periodic
###     boundary conditions.
###   * Exploitation of symmetries to reduce the computation size .
###     even/odd mirror symmetries and 90/180 degree rotations.
###   * Complete scriptability - either via a Scheme scripting front-end
###     (as in libctl and MPB), or callable as a C++ library.
###   * Field output in the HDF5 standard scientific data format, supported by
###     many visualization tools.
###   * Arbitrary material and source distributions.
###   * Field analyses including flux spectra, frequency extraction, and energy
###     integrals; completely programmable.
###   * Multi-parameter optimization, root-finding, integration, etcetera
###     (via libctl).
 
apt-get install meep libmeep6 libmeep-dev
 
##########################################################################################################
### these are used to create the Makefiles and configure scripts,
### and to build shared libraries.
 
apt-get install autoconf autoconf-doc automake pkg-config libtool libtool-doc latex2html
 
##########################################################################################################
### SWIG is a compiler that makes it easy to integrate C and C++ code
### with other languages including Perl, PHP, Tcl, Ruby, Python, Java,
### Guile, Mzscheme, Chicken, OCaml, Pike, and C#.
 
apt-get install swig swig-doc swig-examples
 
##########################################################################################################

Una vez que se han instalado todos los paquetes anteriores necesarios para que Meep funcione en modo de desarrollo (de entre los cuales se encuentra un interesante visor de formato hdf5) se procede a descargar el software para poder compilarlo, aunque ya se tienen los paquetes del meep instalados la idea de descargar el código fuente, compilarlo y ejecutar los programas desde ahí es bastante atractiva y a mi punto de vista flexible, teniendo en cuenta que se estarán programando las simulaciones directamente desde el core de la librería, cabe mencionar que todos los paquetes anteriores se instalaran como librerías compartidas lo que nos da la ventaja de tener “Intellisense” si se están haciendo programas utilizando el Eclipse por ejemplo, la dirección de descarga de el código fuente del meep es la siguiente:

http://ab-initio.mit.edu/meep/meep-1.1.1.tar.gz

Una vez descargado se descomprime a algún directorio deseado, ya que se tiene extraído se navega en la consola hasta el directorio del Meep, el directorio se llamara meep-1.1.1 que es la versión actual de la herramienta, y después de eso se ejecuta el script de configuración de la herramienta estando en el directorio antes mencionado con el siguiente comando.

./configure

El script de la herramienta hace una serie de chequeos para ver si se tienen todos los paquetes instalados y en este caso imprimirá mensajes de estado en la consola similares a los siguientes:

meep_install.txt

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for C++ compiler vendor... gnu
checking whether C++ compiler accepts -malign-double... yes
checking whether C++ compiler accepts -fstrict-aliasing... yes
checking whether C++ compiler accepts -ffast-math... yes
checking for gcc architecture flag...
checking for x86 cpuid 0 output... d:756e6547:6c65746e:49656e69
checking for x86 cpuid 1 output... 206a7:3100800:1dbae3bf:bfebfbff
checking whether C++ compiler accepts -march=pentium2... yes
checking for gcc architecture flag... -march=pentium2
checking whether C++ compiler accepts -O3 -malign-double -fstrict-aliasing -march=pentium2... yes
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking dependency style of g++... (cached) gcc3
checking how to run the C++ preprocessor... g++ -E
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for latex2html... latex2html
checking for sin in -lm... yes
checking for fftw_plan_dft_1d in -lfftw3... no
checking for fftw_create_plan in -ldfftw... no
checking for fftw_create_plan in -lfftw... yes
checking for pkg-config... /usr/bin/pkg-config
checking for harminv >= 1.1... yes
checking HARMINV_CFLAGS...
checking HARMINV_LIBS... -lharminv
checking mpb.h usability... no
checking mpb.h presence... no
checking for mpb.h... no
checking for cblas_cgemm... yes
checking for gsl_sf_bessel_Jn in -lgsl... yes
checking for deflate in -lz... yes
checking for H5Pcreate in -lhdf5... yes
checking hdf5.h usability... yes
checking hdf5.h presence... yes
checking for hdf5.h... yes
checking for guile-config... guile-config
checking if linking to guile works... yes
checking for scm_make_smob_type... yes
checking for SCM_SMOB_PREDICATE... no
checking for SCM_SMOB_DATA... no
checking for SCM_NEWSMOB... no
checking how to activate readline in Guile... ice-9 readline
checking for libctl dir... /usr/share/libctl3
checking for gen-ctl-io... gen-ctl-io
checking for ctl_get_vector3 in -lctl... yes
checking ctl.h usability... yes
checking ctl.h presence... yes
checking for ctl.h... yes
checking whether libctl version is at least 3.0.3... ok
checking for basename in -lgen... no
checking for feenableexcept... yes
checking whether feenableexcept declaration is usable... yes
checking whether to catch and ignore SIGFPE signals... no
checking whether time.h and sys/time.h may both be included... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for BSDgettimeofday... no
checking for gettimeofday... yes
checking for cblas_ddot... yes
checking for cblas_daxpy... yes
checking for C/C++ restrict keyword... __restrict
configure: creating ./config.status
config.status: creating Makefile
config.status: creating meep-pkgconfig
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating examples/Makefile
config.status: creating libctl/Makefile
config.status: creating libctl/meep.scm
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

Se asegura de que el script de configuración no marque ningún “warning” para proceder con la compilación, en este caso no aparecerá ninguno ya que ya se han instalado todos los paquetes necesarios previamente..

Por último se procede a hacer el compilado de la herramienta para generar los ejecutables con la siguientes instrucciones:

make
make install

En este punto ya se tiene el parque de diversiones ¡listo para utilizarse! :), en el siguiente post se hará el primer programa de simulación sencillo mediante C++ para probar todo el nuevo entorno que se acaba de instalar, tal vez sea prudente hacer otro post con información de la instalación de un entorno de desarrollo amigable como C++, se da por asentado que el lector interesado esta utilizando una plataforma Linux basada en Debian..

6 thoughts on “Meep: Instalación

  1. Roger says:

    Hola Yohan,

    Estoy muy interesado en trabajar con el meep, me parece la mejor herramienta libre de FDTD. Su blog es un oasis en un desierto de dudas, es poca la información con respecto al meep-c++.

    Bueno tratando de instalar el meep en ubuntu 11.04 y siguientos sus pasos me salió un error a la hora de hacer /make me gustara que por favor le diera una mirada a las sentencias y si tuvieras alguna idea de mi error, me gustaría que me la hicieras llegar.

    Gracias

    root@roger:/home/roger/Programs/Meep/meep-1.1.1# ./configure
    checking for a BSD-compatible install… /usr/bin/install -c
    checking whether build environment is sane… yes
    checking for a thread-safe mkdir -p… /bin/mkdir -p
    checking for gawk… no
    checking for mawk… mawk
    checking whether make sets $(MAKE)… yes
    checking whether to enable maintainer-specific portions of Makefiles… no
    checking for g++… g++
    checking for C++ compiler default output file name… a.out
    checking whether the C++ compiler works… yes
    checking whether we are cross compiling… no
    checking for suffix of executables…
    checking for suffix of object files… o
    checking whether we are using the GNU C++ compiler… yes
    checking whether g++ accepts -g… yes
    checking for style of include used by make… GNU
    checking dependency style of g++… gcc3
    checking build system type… i686-pc-linux-gnu
    checking host system type… i686-pc-linux-gnu
    checking for gcc… gcc
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking dependency style of gcc… gcc3
    checking for C++ compiler vendor… gnu
    checking whether C++ compiler accepts -malign-double… yes
    checking whether C++ compiler accepts -fstrict-aliasing… yes
    checking whether C++ compiler accepts -ffast-math… yes
    checking for gcc architecture flag…
    checking for x86 cpuid 0 output… a:756e6547:6c65746e:49656e69
    checking for x86 cpuid 1 output… 6fd:20800:e39d:bfebfbff
    checking whether C++ compiler accepts -march=core2… yes
    checking for gcc architecture flag… -march=core2
    checking whether C++ compiler accepts -O3 -malign-double -fstrict-aliasing -march=core2… yes
    checking for a sed that does not truncate output… /bin/sed
    checking for grep that handles long lines and -e… /bin/grep
    checking for egrep… /bin/grep -E
    checking for fgrep… /bin/grep -F
    checking for ld used by gcc… /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld… yes
    checking for BSD- or MS-compatible name lister (nm)… /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface… BSD nm
    checking whether ln -s works… yes
    checking the maximum length of command line arguments… 1572864
    checking whether the shell understands some XSI constructs… yes
    checking whether the shell understands “+=”… yes
    checking for /usr/bin/ld option to reload object files… -r
    checking for objdump… objdump
    checking how to recognize dependent libraries… pass_all
    checking for ar… ar
    checking for strip… strip
    checking for ranlib… ranlib
    checking command to parse /usr/bin/nm -B output from gcc object… ok
    checking how to run the C preprocessor… gcc -E
    checking for ANSI C header files… yes
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking for dlfcn.h… yes
    checking whether we are using the GNU C++ compiler… (cached) yes
    checking whether g++ accepts -g… (cached) yes
    checking dependency style of g++… (cached) gcc3
    checking how to run the C++ preprocessor… g++ -E
    checking for objdir… .libs
    checking if gcc supports -fno-rtti -fno-exceptions… no
    checking for gcc option to produce PIC… -fPIC -DPIC
    checking if gcc PIC flag -fPIC -DPIC works… yes
    checking if gcc static flag -static works… yes
    checking if gcc supports -c -o file.o… yes
    checking if gcc supports -c -o file.o… (cached) yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries… yes
    checking dynamic linker characteristics… GNU/Linux ld.so
    checking how to hardcode library paths into programs… immediate
    checking whether stripping libraries is possible… yes
    checking if libtool supports shared libraries… yes
    checking whether to build shared libraries… no
    checking whether to build static libraries… yes
    checking for ld used by g++… /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld… yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
    checking for g++ option to produce PIC… -fPIC -DPIC
    checking if g++ PIC flag -fPIC -DPIC works… yes
    checking if g++ static flag -static works… yes
    checking if g++ supports -c -o file.o… yes
    checking if g++ supports -c -o file.o… (cached) yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
    checking dynamic linker characteristics… GNU/Linux ld.so
    checking how to hardcode library paths into programs… immediate
    checking for latex2html… latex2html
    checking for sin in -lm… yes
    checking for fftw_plan_dft_1d in -lfftw3… yes
    checking for pkg-config… /usr/bin/pkg-config
    checking for harminv >= 1.1… yes
    checking HARMINV_CFLAGS…
    checking HARMINV_LIBS… -lharminv
    checking mpb.h usability… no
    checking mpb.h presence… no
    checking for mpb.h… no
    checking for cblas_cgemm… yes
    checking for gsl_sf_bessel_Jn in -lgsl… yes
    checking for deflate in -lz… yes
    checking for H5Pcreate in -lhdf5… yes
    checking hdf5.h usability… yes
    checking hdf5.h presence… yes
    checking for hdf5.h… yes
    checking for guile-config… guile-config
    checking if linking to guile works… yes
    checking for scm_make_smob_type… yes
    checking for SCM_SMOB_PREDICATE… no
    checking for SCM_SMOB_DATA… no
    checking for SCM_NEWSMOB… no
    checking how to activate readline in Guile… ice-9 readline
    checking for libctl dir… /usr/share/libctl3
    checking for gen-ctl-io… gen-ctl-io
    checking for ctl_get_vector3 in -lctl… yes
    checking ctl.h usability… yes
    checking ctl.h presence… yes
    checking for ctl.h… yes
    checking whether libctl version is at least 3.0.3… ok
    checking for basename in -lgen… no
    checking for feenableexcept… yes
    checking whether feenableexcept declaration is usable… yes
    checking whether to catch and ignore SIGFPE signals… no
    checking whether time.h and sys/time.h may both be included… yes
    checking sys/time.h usability… yes
    checking sys/time.h presence… yes
    checking for sys/time.h… yes
    checking for BSDgettimeofday… no
    checking for gettimeofday… yes
    checking for cblas_ddot… yes
    checking for cblas_daxpy… yes
    checking for C/C++ restrict keyword… __restrict
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating meep-pkgconfig
    config.status: creating src/Makefile
    config.status: creating tests/Makefile
    config.status: creating examples/Makefile
    config.status: creating libctl/Makefile
    config.status: creating libctl/meep.scm
    config.status: creating config.h
    config.status: config.h is unchanged
    config.status: executing depfiles commands
    config.status: executing libtool commands

    root@roger:/home/roger/Programs/Meep/meep-1.1.1# make
    make all-recursive
    make[1]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1′
    Making all in src
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make all-am
    make[3]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make[3]: Nada a ser feito para `all-am’.
    make[3]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    Making all in libctl
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    gen-ctl-io –cxx –header -o ctl-io.h meep.scm /usr/share/libctl3
    cp -f /usr/share/libctl3/base/main.c main.cpp
    cp -f /usr/share/libctl3/utils/geom.c geom.cpp
    gen-ctl-io –cxx –code -o ctl-io.cpp meep.scm /usr/share/libctl3
    gen-ctl-io –cxx –swig -o ctl-io.i meep.scm /usr/share/libctl3
    make all-am
    make[3]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    CXX meep.o
    CXX structure.o
    structure.cpp: In function ‘meep::structure* make_structure(int, vector3, vector3, double, bool, double, int, bool, ctlio::geometric_object_list, ctlio::material_type_list, ctlio::material_type, ctlio::pml_list, ctlio::symmetry_list, int, double, double, double)’:
    structure.cpp:1152:51: warning: deprecated conversion from string constant to ‘char*’
    CXX meep_wrap.o
    CXX main.o
    main.cpp: In function ‘void main_entry(int, char**)’:
    main.cpp:210:22: warning: deprecated conversion from string constant to ‘char*’
    main.cpp:236:26: warning: deprecated conversion from string constant to ‘char*’
    CXX geom.o
    CXX ctl-io.o
    ctl-io.cpp: In function ‘void ctlio::force_region_input(scm_unused_struct*, ctlio::force_region*)’:
    ctl-io.cpp:30:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:31:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:32:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:33:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::flux_region_input(scm_unused_struct*, ctlio::flux_region*)’:
    ctl-io.cpp:38:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:39:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:40:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:41:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::eigenmode_source_input(scm_unused_struct*, ctlio::eigenmode_source*)’:
    ctl-io.cpp:46:69: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:47:73: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:48:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:49:53: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:50:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:51:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:52:65: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:53:62: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::source_input(scm_unused_struct*, ctlio::source*)’:
    ctl-io.cpp:58:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:59:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:60:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:61:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:62:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:63:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:64:44: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::custom_src_input(scm_unused_struct*, ctlio::custom_src*)’:
    ctl-io.cpp:75:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:76:56: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:77:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:78:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::gaussian_src_input(scm_unused_struct*, ctlio::gaussian_src*)’:
    ctl-io.cpp:83:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:84:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:85:56: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:86:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:87:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::continuous_src_input(scm_unused_struct*, ctlio::continuous_src*)’:
    ctl-io.cpp:92:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:93:56: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:94:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:95:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:96:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:97:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::src_time_input(scm_unused_struct*, ctlio::src_time*)’:
    ctl-io.cpp:102:65: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:103:38: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:108:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:113:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::volume_class_input(scm_unused_struct*, ctlio::volume_class*)’:
    ctl-io.cpp:124:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:125:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::pml_input(scm_unused_struct*, ctlio::pml*)’:
    ctl-io.cpp:130:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:131:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:132:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:133:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:134:60: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:135:60: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::symmetry_input(scm_unused_struct*, ctlio::symmetry*)’:
    ctl-io.cpp:152:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:153:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:154:38: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:159:44: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:164:44: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::lattice_input(scm_unused_struct*, ctlio::lattice*)’:
    ctl-io.cpp:175:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:176:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:177:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:178:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:179:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:180:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:181:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:182:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:183:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:184:51: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::ellipsoid_input(scm_unused_struct*, ctlio::ellipsoid*)’:
    ctl-io.cpp:189:71: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::block_input(scm_unused_struct*, ctlio::block*)’:
    ctl-io.cpp:194:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:195:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:196:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:197:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:198:73: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:199:37: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::sphere_input(scm_unused_struct*, ctlio::sphere*)’:
    ctl-io.cpp:210:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::cone_input(scm_unused_struct*, ctlio::cone*)’:
    ctl-io.cpp:215:50: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::cylinder_input(scm_unused_struct*, ctlio::cylinder*)’:
    ctl-io.cpp:220:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:221:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:222:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:223:32: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::compound_geometric_object_input(scm_unused_struct*, ctlio::compound_geometric_object*)’:
    ctl-io.cpp:235:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::geometric_object_input(scm_unused_struct*, ctlio::geometric_object*)’:
    ctl-io.cpp:247:58: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:248:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:249:33: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:254:39: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:259:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:264:58: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::material_function_input(scm_unused_struct*, ctlio::material_function*)’:
    ctl-io.cpp:275:64: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::medium_input(scm_unused_struct*, ctlio::medium*)’:
    ctl-io.cpp:284:61: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:285:67: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:286:51: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:287:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:289:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:298:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:306:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:307:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:308:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:309:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:310:75: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:311:75: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::polarizability_input(scm_unused_struct*, ctlio::polarizability*)’:
    ctl-io.cpp:316:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:317:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:318:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::material_type_input(scm_unused_struct*, ctlio::material_type*)’:
    ctl-io.cpp:323:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:328:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:333:39: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘scm_unused_struct* ctlio::read_input_vars()’:
    ctl-io.cpp:1189:42: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1190:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1191:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1192:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1194:36: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1202:58: warning: deprecated conversion from string constant to ‘char*’
    CXXLD meep
    ../src/.libs/libmeep.a(h5file.o): In function `meep::h5file::read_size(char const*, int*, int*, int)’:
    h5file.cpp:(.text+0x5f0): undefined reference to `H5Eget_auto’
    h5file.cpp:(.text+0x604): undefined reference to `H5Eset_auto’
    h5file.cpp:(.text+0x613): undefined reference to `H5Dopen’
    h5file.cpp:(.text+0x62a): undefined reference to `H5Eset_auto’
    h5file.cpp:(.text+0x64c): undefined reference to `H5Dopen’
    ../src/.libs/libmeep.a(h5file.o): In function `meep::h5file::read(char const*, int*, int*, int)’:
    h5file.cpp:(.text+0x810): undefined reference to `H5Eget_auto’
    h5file.cpp:(.text+0x824): undefined reference to `H5Eset_auto’
    h5file.cpp:(.text+0x833): undefined reference to `H5Dopen’
    h5file.cpp:(.text+0x84a): undefined reference to `H5Eset_auto’
    h5file.cpp:(.text+0x86c): undefined reference to `H5Dopen’
    ../src/.libs/libmeep.a(h5file.o): In function `meep::h5file::read(char const*)’:
    h5file.cpp:(.text+0xbfa): undefined reference to `H5Eget_auto’
    h5file.cpp:(.text+0xc0e): undefined reference to `H5Eset_auto’
    h5file.cpp:(.text+0xc1d): undefined reference to `H5Dopen’
    h5file.cpp:(.text+0xc31): undefined reference to `H5Eset_auto’
    h5file.cpp:(.text+0xc50): undefined reference to `H5Dopen’
    ../src/.libs/libmeep.a(h5file.o): In function `meep::h5file::remove_data(char const*)’:
    h5file.cpp:(.text+0xee6): undefined reference to `H5Eget_auto’
    h5file.cpp:(.text+0xefa): undefined reference to `H5Eset_auto’
    h5file.cpp:(.text+0xf09): undefined reference to `H5Dopen’
    h5file.cpp:(.text+0xf1d): undefined reference to `H5Eset_auto’
    ../src/.libs/libmeep.a(h5file.o): In function `meep::h5file::create_data(char const*, int, int const*, bool, bool)’:
    h5file.cpp:(.text+0x1355): undefined reference to `H5Dcreate’
    ../src/.libs/libmeep.a(h5file.o): In function `meep::h5file::extend_data(char const*, int, int const*)’:
    h5file.cpp:(.text+0x1557): undefined reference to `H5Dopen’
    ../src/.libs/libmeep.a(h5file.o): In function `meep::h5file::write(char const*, char const*)’:
    h5file.cpp:(.text+0x1d68): undefined reference to `H5Dcreate’
    collect2: ld returned 1 exit status
    make[3]: ** [meep] Erro 1
    make[3]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    make[2]: ** [all] Erro 2
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    make[1]: ** [all-recursive] Erro 1
    make[1]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1′
    make: ** [all] Erro 2

  2. yohan.jasdid says:

    Que tal Roger,

    Por lo que puedo ver en tu mensaje de error y la idea que se me ocurre es que tienes un problema con los paquetes de generacion de archivos HDF5, intenta reinstalando todos los paquetes del HDF5 mencionados en la parte superior tal vez se me paso enlistar alguno,

    Lo raro del caso es que tu output del configure es igual al mio por lo que quisiera pensar que todos los paquetes estan bien, yo tambien estoy en el proceso de aprender el Meep C++ y se que falta mucha informacion es por eso que hago un intento por documentar lo que vaya entendiendo, intenta con lo del H5Utils y hazme saber si te funciona..

    Saludos!

  3. Roger says:

    Hola Yohan, gracias por responder,

    creo que el problema como usted dijo esta en las librerías HDF5, las desinstalé y las volví a instalar; y al hacer ‘make’ ya no apareció el error anterior pero al momento de hacer ‘make install’ aparece otra cosa que creo que no esta bien, para verificar la instalación rodé el primer ejemplo de verificación de su blog y el resultado fue que continua con el error de la lib HDF5 ya que no crea los archivos .hdf5.

    Bueno seguiré con la instalación del meep ya que es la base de mi maestría. Si consiguiera algún resultado le estaré informando de todos modos muchas gracias por el apoyo y por su blog.

    root@roger:/home/roger/Programs/Meep/meep-1.1.1# make
    make all-recursive
    make[1]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1′
    Making all in src
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make all-am
    make[3]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    CXX bands.lo
    CXX bicgstab.lo
    CXX casimir.lo
    CXX h5file.lo
    CXX initialize.lo
    CXX monitor.lo
    CXX mympi.lo
    CXX polarization.lo
    CXX step.lo
    CXX mpb.lo
    CXX update_pols.lo
    CXX step_generic.lo
    CXX step_generic_stride1.lo
    CXXLD libmeep.la
    make[3]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    Making all in libctl
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    gen-ctl-io –cxx –header -o ctl-io.h meep.scm /usr/share/libctl3
    cp -f /usr/share/libctl3/base/main.c main.cpp
    cp -f /usr/share/libctl3/utils/geom.c geom.cpp
    gen-ctl-io –cxx –code -o ctl-io.cpp meep.scm /usr/share/libctl3
    gen-ctl-io –cxx –swig -o ctl-io.i meep.scm /usr/share/libctl3
    make all-am
    make[3]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    CXX meep.o
    CXX structure.o
    structure.cpp: In function ‘meep::structure* make_structure(int, vector3, vector3, double, bool, double, int, bool, ctlio::geometric_object_list, ctlio::material_type_list, ctlio::material_type, ctlio::pml_list, ctlio::symmetry_list, int, double, double, double)’:
    structure.cpp:1152:51: warning: deprecated conversion from string constant to ‘char*’
    CXX meep_wrap.o
    CXX main.o
    main.cpp: In function ‘void main_entry(int, char**)’:
    main.cpp:210:22: warning: deprecated conversion from string constant to ‘char*’
    main.cpp:236:26: warning: deprecated conversion from string constant to ‘char*’
    CXX geom.o
    CXX ctl-io.o
    ctl-io.cpp: In function ‘void ctlio::force_region_input(scm_unused_struct*, ctlio::force_region*)’:
    ctl-io.cpp:30:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:31:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:32:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:33:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::flux_region_input(scm_unused_struct*, ctlio::flux_region*)’:
    ctl-io.cpp:38:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:39:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:40:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:41:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::eigenmode_source_input(scm_unused_struct*, ctlio::eigenmode_source*)’:
    ctl-io.cpp:46:69: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:47:73: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:48:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:49:53: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:50:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:51:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:52:65: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:53:62: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::source_input(scm_unused_struct*, ctlio::source*)’:
    ctl-io.cpp:58:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:59:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:60:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:61:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:62:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:63:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:64:44: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::custom_src_input(scm_unused_struct*, ctlio::custom_src*)’:
    ctl-io.cpp:75:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:76:56: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:77:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:78:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::gaussian_src_input(scm_unused_struct*, ctlio::gaussian_src*)’:
    ctl-io.cpp:83:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:84:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:85:56: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:86:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:87:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::continuous_src_input(scm_unused_struct*, ctlio::continuous_src*)’:
    ctl-io.cpp:92:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:93:56: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:94:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:95:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:96:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:97:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::src_time_input(scm_unused_struct*, ctlio::src_time*)’:
    ctl-io.cpp:102:65: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:103:38: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:108:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:113:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::volume_class_input(scm_unused_struct*, ctlio::volume_class*)’:
    ctl-io.cpp:124:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:125:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::pml_input(scm_unused_struct*, ctlio::pml*)’:
    ctl-io.cpp:130:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:131:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:132:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:133:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:134:60: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:135:60: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::symmetry_input(scm_unused_struct*, ctlio::symmetry*)’:
    ctl-io.cpp:152:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:153:47: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:154:38: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:159:44: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:164:44: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::lattice_input(scm_unused_struct*, ctlio::lattice*)’:
    ctl-io.cpp:175:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:176:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:177:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:178:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:179:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:180:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:181:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:182:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:183:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:184:51: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::ellipsoid_input(scm_unused_struct*, ctlio::ellipsoid*)’:
    ctl-io.cpp:189:71: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::block_input(scm_unused_struct*, ctlio::block*)’:
    ctl-io.cpp:194:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:195:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:196:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:197:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:198:73: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:199:37: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::sphere_input(scm_unused_struct*, ctlio::sphere*)’:
    ctl-io.cpp:210:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::cone_input(scm_unused_struct*, ctlio::cone*)’:
    ctl-io.cpp:215:50: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::cylinder_input(scm_unused_struct*, ctlio::cylinder*)’:
    ctl-io.cpp:220:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:221:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:222:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:223:32: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::compound_geometric_object_input(scm_unused_struct*, ctlio::compound_geometric_object*)’:
    ctl-io.cpp:235:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::geometric_object_input(scm_unused_struct*, ctlio::geometric_object*)’:
    ctl-io.cpp:247:58: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:248:49: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:249:33: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:254:39: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:259:41: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:264:58: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::material_function_input(scm_unused_struct*, ctlio::material_function*)’:
    ctl-io.cpp:275:64: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::medium_input(scm_unused_struct*, ctlio::medium*)’:
    ctl-io.cpp:284:61: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:285:67: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:286:51: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:287:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:289:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:298:55: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:306:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:307:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:308:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:309:59: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:310:75: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:311:75: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::polarizability_input(scm_unused_struct*, ctlio::polarizability*)’:
    ctl-io.cpp:316:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:317:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:318:57: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘void ctlio::material_type_input(scm_unused_struct*, ctlio::material_type*)’:
    ctl-io.cpp:323:45: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:328:46: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:333:39: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp: In function ‘scm_unused_struct* ctlio::read_input_vars()’:
    ctl-io.cpp:1189:42: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1190:54: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1191:52: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1192:48: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1194:36: warning: deprecated conversion from string constant to ‘char*’
    ctl-io.cpp:1202:58: warning: deprecated conversion from string constant to ‘char*’
    CXXLD meep
    make[3]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    Making all in tests
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/tests’
    make[2]: Nada a ser feito para `all’.
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/tests’
    Making all in examples
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/examples’
    make[2]: Nada a ser feito para `all’.
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/examples’
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1′
    cp -f ./meep-pkgconfig meep.pc
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1′
    make[1]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1′

    root@roger:/home/roger/Programs/Meep/meep-1.1.1# make install
    Making install in src
    make[1]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make install-am
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make[3]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    test -z “/usr/local/lib” || /bin/mkdir -p “/usr/local/lib”
    /bin/bash ../libtool –mode=install /usr/bin/install -c libmeep.la ‘/usr/local/lib’
    libtool: install: /usr/bin/install -c .libs/libmeep.lai /usr/local/lib/libmeep.la
    libtool: install: /usr/bin/install -c .libs/libmeep.a /usr/local/lib/libmeep.a
    libtool: install: chmod 644 /usr/local/lib/libmeep.a
    libtool: install: ranlib /usr/local/lib/libmeep.a
    libtool: finish: PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/matlabR2010a/bin:/sbin” ldconfig -n /usr/local/lib
    ———————————————————————-
    Libraries have been installed in:
    /usr/local/lib

    If you ever happen to want to link against installed libraries
    in a given directory, LIBDIR, you must either use libtool, and
    specify the full pathname of the library, or use the `-LLIBDIR’
    flag during linking and do at least one of the following:
    – add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
    during execution
    – add LIBDIR to the `LD_RUN_PATH’ environment variable
    during linking
    – use the `-Wl,-rpath -Wl,LIBDIR’ linker flag
    – have your system administrator add LIBDIR to `/etc/ld.so.conf’

    See any operating system documentation about shared libraries for
    more information, such as the ld(1) and ld.so(8) manual pages.
    ———————————————————————-
    test -z “/usr/local/include” || /bin/mkdir -p “/usr/local/include”
    /usr/bin/install -c -m 644 meep.hpp ‘/usr/local/include’
    test -z “/usr/local/include/meep” || /bin/mkdir -p “/usr/local/include/meep”
    /usr/bin/install -c -m 644 meep/mympi.hpp meep/vec.hpp ‘/usr/local/include/meep’
    make[3]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    make[1]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/src’
    Making install in libctl
    make[1]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    make install-am
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    make[3]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    test -z “/usr/local/bin” || /bin/mkdir -p “/usr/local/bin”
    /bin/bash ../libtool –mode=install /usr/bin/install -c meep ‘/usr/local/bin’
    libtool: install: /usr/bin/install -c meep /usr/local/bin/meep
    test -z “/usr/local/share/meep” || /bin/mkdir -p “/usr/local/share/meep”
    /usr/bin/install -c -m 644 meep.scm meep-enums.scm casimir.scm ‘/usr/local/share/meep’
    make[3]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    make[1]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/libctl’
    Making install in tests
    make[1]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/tests’
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/tests’
    make[2]: Nada a ser feito para `install-exec-am’.
    make[2]: Nada a ser feito para `install-data-am’.
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/tests’
    make[1]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/tests’
    Making install in examples
    make[1]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/examples’
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1/examples’
    make[2]: Nada a ser feito para `install-exec-am’.
    make[2]: Nada a ser feito para `install-data-am’.
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/examples’
    make[1]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1/examples’
    make[1]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1′
    make[2]: Entrando no diretório `/home/roger/Programs/Meep/meep-1.1.1′
    make[2]: Nada a ser feito para `install-exec-am’.
    test -z “/usr/local/lib/pkgconfig” || /bin/mkdir -p “/usr/local/lib/pkgconfig”
    /usr/bin/install -c -m 644 meep.pc ‘/usr/local/lib/pkgconfig’
    make[2]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1′
    make[1]: Saindo do diretório `/home/roger/Programs/Meep/meep-1.1.1′

    Al rodar el primer ejemplo de su blog para verificar la instalacion, creo los programas: overview.cpp y overview.sh

    root@roger:/home/roger/Programs/Meep/meep-1.1.1/tests# ls
    2D_convergence.cpp bench.cpp convergence_cyl_waveguide.cpp flux.cpp harmonics.cpp known_results.cpp Makefile.am one_dimensional.cpp overview.sh pml.cpp three_d.cpp
    2D_convergence.o bragg_transmission.cpp cylindrical.cpp h5test.cpp integrate.cpp Makefile Makefile.in overview.cpp physical.cpp symmetry.cpp two_dimensional.cpp

    Y al correr el programa aparece el siguiente error:

    root@roger:/home/roger/Programs/Meep/meep-1.1.1/tests# chmod +x overview.sh
    root@roger:/home/roger/Programs/Meep/meep-1.1.1/tests# sh overview.sh
    CXX overview.o
    overview.cpp:1:9: error: #include expects “FILENAME” or
    overview.cpp:2:17: error: ‘meep’ is not a namespace-name
    overview.cpp:2:21: error: expected namespace-name before ‘;’ token
    overview.cpp: In function ‘int main(int, char**)’:
    overview.cpp:6:5: error: ‘initialize’ was not declared in this scope
    overview.cpp:6:16: error: expected ‘;’ before ‘mpi’
    overview.cpp:8:5: error: ‘grid_volume’ was not declared in this scope
    overview.cpp:8:17: error: expected ‘;’ before ‘v’
    overview.cpp:9:5: error: ‘structure’ was not declared in this scope
    overview.cpp:9:15: error: expected ‘;’ before ‘s’
    overview.cpp:10:5: error: ‘fields’ was not declared in this scope
    overview.cpp:10:12: error: expected ‘;’ before ‘f’
    overview.cpp:12:5: error: ‘f’ was not declared in this scope
    overview.cpp:12:19: error: ‘Dielectric’ was not declared in this scope
    overview.cpp:12:31: error: ‘v’ was not declared in this scope
    overview.cpp:14:5: error: ‘gaussian_src_time’ was not declared in this scope
    overview.cpp:14:23: error: expected ‘;’ before ‘src’
    overview.cpp:15:24: error: ‘Ey’ was not declared in this scope
    overview.cpp:15:28: error: ‘src’ was not declared in this scope
    overview.cpp:15:45: error: ‘vec’ was not declared in this scope
    overview.cpp:21:19: error: ‘Hz’ was not declared in this scope
    overview.cpp: At global scope:
    overview.cpp:25:18: error: ‘vec’ does not name a type
    overview.cpp:25:23: error: ISO C++ forbids declaration of ‘p’ with no type
    overview.cpp: In function ‘double eps(const int&)’:
    overview.cpp:27:11: error: request for member ‘x’ in ‘p’, which is of non-class type ‘const int’
    overview.cpp:27:24: error: request for member ‘y’ in ‘p’, which is of non-class type ‘const int’
    make: ** [overview.o] Erro 1
    overview.sh: 2: ./overview.dac: not found
    eps-000000.00.h5: unable to open file
    HDF5-DIAG: Error detected in HDF5 (1.8.4-patch1) thread 3072284352:
    #000: ../../../src/H5F.c line 1514 in H5Fopen(): unable to open file
    major: File accessability
    minor: Unable to open file
    #001: ../../../src/H5F.c line 1218 in H5F_open(): unable to open file
    major: File accessability
    minor: Unable to open file
    #002: ../../../src/H5FD.c line 1079 in H5FD_open(): open failed
    major: Virtual File Layer
    minor: Unable to initialize object
    #003: ../../../src/H5FDsec2.c line 365 in H5FD_sec2_open(): unable to open file
    major: File accessability
    minor: Unable to open file
    #004: ../../../src/H5FDsec2.c line 365 in H5FD_sec2_open(): No such file or directory
    major: Internal error (too specific to document in detail)
    minor: System error message
    h5topng error: error opening HD5 file
    rm: não foi possível remover “eps-000000.00.h5”: Arquivo ou diretório não encontrado
    rm: não foi possível remover “overview.dac”: Arquivo ou diretório não encontrado

  4. Roger says:

    Hola Yohan,

    Finalmente instalé el Meep en ubuntu 11.04, para ello tuve que formatear mi computadora y volver a instalar las librerías siguiendo los pasos que describiste, excepto que en mi caso creí conveniente no descargar y compilar el Meep, creo que no es necesario.

    Realicé el test de prueba de instalación y el de la simulación con video; y todo salio ok.

    Solo me queda felicitarlo una vez más por el enorme aporte que está realizando con este blog, en verdad me está ayudando mucho y creo que es la mejor base para comenzar a sumergirse en el mundo del Meep a través de C++.

    Saludos y espero continuar en contacto.

Leave a Reply

Your email address will not be published. Required fields are marked *