diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1b90612289488c3663c72a5fdb4d6828298163ec --- /dev/null +++ b/README.md @@ -0,0 +1,122 @@ +cim.py +====== +cim.py is a non-linear eigenvalue solver using the contour integral method +proposed by W.-J. Beyn coupled with a [GetDP](http://getdp.info) formulation. + +Reference paper +--------------- +[W.-J., Beyn, "An integral method for solving nonlinear eigenvalue problems", +Linear Algebra and its Applications, 2012,436.]( +https://doi.org/10.1016/j.laa.2011.03.030) + +Usage +----- + + cim.py pro mesh resolution post origin radius + +with: + + pro [GetDP](http://getdp.info) .pro file + mesh [Gmsh](http://gmsh.info) .msh file + resolution resolution from .pro file + origin circular contour origin (complex) + radius circular contour radius + +Additional optional argument are available. Please run: + + cim.py -h + +for more information. + +Driving [GetDP](http://getdp.info) from cim.py +---------------------------------------------- +cim.py and [GetDP](http://getdp.info) are exchanging the following [ONELAB]( +http://onelab.info) variables: + + angularFreqRe the real part of the frequency + angularFreqIm the imaginary part of the frequency + x() the solution vector of the linear system + b() the right hand side (RHS) of the linear system + imposeRHS flag signalling if an other RHS should be imposed + doPostpro flag signalling if only a post-processing should be done + doApply flag signalling if x() should be applied to the linear system + fileName name of the post-processing file + +More information can be found in [bin/solver.py](bin/solver.py). Furthermore, +examples are provided in [example/maxwell\_sibc/](example/maxwell_sibc/) and +[example/maxwell\_linear/](example/maxwell\_linear/). + +Dependencies +------------ +cim.py is a [Python 2.7](https://www.python.org/download/releases/2.7/) script. +It relies on the following modules: + + argparse + numpy + getdp + +The `getdp` module can be obtained by compiling [GetDP](http://getdp.info). +Among other (and possibly optional) dependencies, [GetDP](http://getdp.info) +relies on [PETSc](https://www.mcs.anl.gov/petsc). +The shell script dependencies.sh should handle this automatically if you run: + + ./dependencies.sh + +You will need `wget`, `tar`, `gcc`, `g++` and `gfortran` for this script to work. +Don't forget to update your `PATH`, `PYTHONPATH` and `LD_LIBRARY_PATH` as +instructed. + +If you want to handle the [PETSc](https://www.mcs.anl.gov/petsc) and +[GetDP](http://getdp.info) libraries yourself, here are the options you will +need. The [PETSc](https://www.mcs.anl.gov/petsc) library should be compiled with +the following features: + + --with-clanguage=cxx + --with-shared-libraries=1 + --with-x=0 + --with-scalar-type=complex + --with-mumps-serial=yes + --with-mpi=0 + --with-mpiuni-fortran-binding=0 + --download-mumps=yes + +In other words, [PETSc](https://www.mcs.anl.gov/petsc) should be compiled +without MPI, with complex algebra and with a sequential version of [MUMPS]( +http://mumps-solver.org/). [GetDP](http://getdp.info) can then be compiled +with the following options: + + ENABLE_BLAS_LAPACK: ON + ENABLE_BUILD_DYNAMIC: ON + ENABLE_BUILD_SHARED: ON + ENABLE_KERNEL: ON + ENABLE_PETSC: ON + ENABLE_WRAP_PYTHON: ON + +If everything went fine, you should end up with the [GetDP](http://getdp.info) +Python module: + + getdp.py + +Finally, Don't forget to update your `PATH`, `PYTHONPATH` and `LD_LIBRARY_PATH`. + +Enjoy! + +License +------- +Copyright (C) 2017 N. Marsic, F. Wolf, S. Schoeps and H. De Gersem, +Institut fuer Theorie Elektromagnetischer Felder (TEMF), +Technische Universitaet Darmstadt. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. diff --git a/README.txt b/README.txt deleted file mode 100644 index 30f76814c94050452ad922931e3096939f1f87de..0000000000000000000000000000000000000000 --- a/README.txt +++ /dev/null @@ -1,98 +0,0 @@ -cim.py is a non-linear eigenvalue solver -using the contour integral method proposed by W.-J. Beyn -coupled with a GetDP formulation. - -Copyright (C) 2017 N. Marsic, F. Wolf, S. Schoeps and H. De Gersem, -Institut fuer Theorie Elektromagnetischer Felder (TEMF), -Technische Universitaet Darmstadt. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Reference paper: ----------------- -W.-J., Beyn, "An integral method for solving nonlinear eigenvalue problems", -Linear Algebra and its Applications, 2012, 436. - -Usage: ------- -cim.py pro mesh resolution post origin radius - -with: - pro GetDP .pro file - mesh Gmsh .msh file - resolution resolution from .pro file - origin circular contour origin (complex) - radius circular contour radius - -Additional optional argument are available. -Please run: - cim.py -h -for more information. - -Driving GetDP from cim.py -------------------------- -cim.py and GetDP are exchanging the following ONELAB variables: - angularFreqRe - the real part of the frequency - angularFreqIm - the imaginary part of the frequency - x() - the solution vector of the linear system - b() - the right hand side (RHS) of the linear system - imposeRHS - flag signalling if an other RHS should be imposed - doPostpro - flag signalling if only a post-processing should be done - doApply - flag signalling if x() should be applied to the linear system - fileName - name of the post-processing file -More information can be found in bin/solver.py. Furthermore, examples are -provided in example/maxwell_sibc/ and example/maxwell_linear/. - -Dependencies ------------- -cim.py is a Python 2.7 script. It relies on the following modules: - argparse - numpy - getdp - -The getdp module can be obtained by compiling GetDP: - http://getdp.info -Among other (and possibly optional) dependencies, GetDP relies on PETSc: - https://www.mcs.anl.gov/petsc -The shell script dependencies.sh should handle this automatically if you run: - ./dependencies.sh -You will need wget, tar, gcc, g++ and gfortran for this script to work. -Don't forget to update your PATH, PYTHONPATH and LD_LIBRARY_PATH as instructed. - -If you want to handle the PETSc and GetDP libraries yourself, here are the -options you will need. The PETSc library should be compiled with the following -features: - --with-clanguage=cxx - --with-shared-libraries=1 - --with-x=0 - --with-scalar-type=complex - --with-mumps-serial=yes - --with-mpi=0 - --with-mpiuni-fortran-binding=0 - --download-mumps=yes -In other words, PETSc should be compiled without MPI, with complex algebra and -with a sequential version of MUMPS. GetDP can then be compiled with the -following options: - ENABLE_BLAS_LAPACK: ON - ENABLE_BUILD_DYNAMIC: ON - ENABLE_BUILD_SHARED: ON - ENABLE_KERNEL: ON - ENABLE_PETSC: ON - ENABLE_WRAP_PYTHON: ON -If everything went fine, you should end up with the GetDP Python module: - getdp.py -Finally, Don't forget to update your PATH, PYTHONPATH and LD_LIBRARY_PATH. - -Enjoy!