implemented in ARPACK for calculating a subset of eigenvalues rather than all of
them or just the largest one.
This is invoked by setting algorithm='arnoldi' in the constructor MSSPEC.
calc = MSSPEC(spectroscopy='EIG', algorithm='arnoldi')
This version finds NEV eigenvalues with the largest magnitudes. The value of
NEV is set in the code to be 2% of the total number. The algorithm also sets
the number of basis vectors, NCV, to be 2*NEV. Options for allowing the user
to set these values as well as other convergence criteria should be added in
later versions.
Files src/msspec/calculator.py and src/msspec/parameters.py have been modified
to accept algorithm='arnoldi'.
A new directory, src/msspec/spec/fortran/eig/ar, has been created and contains
various Fortran files implementing the Arnoldi iteration. Some files are written
in Fortran90 free-format and use some features of the Fortran 2003 standard.
Compilation requires the ARPACK library to be installed and accessible using -larpack
Compilation rules and options have been introduced/modified where necessary in the
files src/options.mk, src/msspec/spec/fortran/Makefile and
src/msspec/spec/fortran/eig_ar.mk
This version has been tested for the CaO example.
- Makefile: using python -m venv to create the virtual environment
- src/options.mk: set PYTHON to python3; add filters and rules to treat .f90 files
- src/pip.freeze: add packages wheel and wxPython
* The numpy.alen() function is deprecated. We use len() instead
* The use of pkg_resources is discouraged. We use importlib.metadata
instead. I also removed setuptools_scm get_version. I switch to
a simple call to "git describe", easier now that we use git flow
* The build fails with python3.10 if compiling wx from sources.
A fix in the Makefile will be proposed in a future commit.
epsi-builds/msspec_python3/pipeline/head This commit looks goodDetails
Just began to rewrite the topmost Makefile which will provide
targets for:
* runing the tests
* creating the Python venv
* building and installing the code
* building the manual and the website
Makefiles in subfolder were also upgraded to fix some issues in
target filenames.
epsi-builds/msspec_python3/pipeline/head This commit looks goodDetails
Makefiles are easier to maintain, I eventually prefer using GNU Make
instead of scons. SConstruct files will be removed when makefiles will
be ready in a future commit.