93 lines
4.1 KiB
Markdown
93 lines
4.1 KiB
Markdown
Introduction
|
|
============
|
|
|
|
PMSCO stands for PEARL multiple-scattering cluster calculations and structural optimization.
|
|
It is a collection of computer programs to calculate photoelectron diffraction patterns,
|
|
and to optimize structural models based on measured data.
|
|
|
|
The actual scattering calculation is done by code developed by other parties.
|
|
PMSCO wraps around that program and facilitates parameter handling, cluster building, structural optimization and parallel processing.
|
|
In the current version, the [EDAC](http://garciadeabajos-group.icfo.es/widgets/edac/) code
|
|
developed by F. J. García de Abajo, M. A. Van Hove, and C. S. Fadley (1999) is used for scattering calculations.
|
|
Instead of EDAC built-in routines, alternatively,
|
|
the PHAGEN program from [MsSpec-1.0](https://msspec.cnrs.fr/index.html) can be used to calculate atomic scattering factors.
|
|
|
|
|
|
Highlights
|
|
----------
|
|
|
|
- angle and energy scanned XPD.
|
|
- various scanning modes including energy, manipulator angle (polar/azimuthal), emission angle.
|
|
- averaging over multiple domains and emitters.
|
|
- global optimization of multiple scans.
|
|
- structural optimization algorithms: particle swarm optimization, grid search, gradient search.
|
|
- calculation of the modulation function.
|
|
- calculation of the weighted R-factor.
|
|
- automatic parallel processing using OpenMPI.
|
|
- tested on Linux cluster machines.
|
|
|
|
|
|
Installation
|
|
============
|
|
|
|
PMSCO is written in Python 3.6.
|
|
The code will run in any recent Linux environment on a workstation or virtual machine.
|
|
Scientific Linux, CentOS7, [Ubuntu](https://www.ubuntu.com/)
|
|
and [Lubuntu](http://lubuntu.net/) (recommended for virtual machine) have been tested.
|
|
For optimization jobs, a cluster with 20-50 available processor cores is recommended.
|
|
The code requires about 2 GB of RAM per process.
|
|
|
|
Detailed installation instructions and dependencies can be found in the documentation
|
|
(docs/src/installation.dox).
|
|
A [Doxygen](http://www.stack.nl/~dimitri/doxygen/index.html) compiler with Doxypy is required to generate the documentation in HTML or LaTeX format.
|
|
|
|
The easiest way to set up an environment with all dependencies and without side-effects on other installed software is to use a [Singularity](https://www.sylabs.io/guides/2.5/user-guide/index.html) container.
|
|
A Singularity recipe file is part of the distribution, see the PMSCO documentation for details.
|
|
On newer Linux systems (e.g. Ubuntu 18.04), Singularity is available from the package manager.
|
|
Installation in a [virtual box](https://www.virtualbox.org/) on Windows or Mac is straightforward using the [Vagrant](https://www.vagrantup.com/) system.
|
|
A Vagrant file is included in the distribution.
|
|
|
|
The public distribution of PMSCO does not contain the [EDAC](http://garciadeabajos-group.icfo.es/widgets/edac/) code.
|
|
Please obtain the EDAC source code from the original author, copy it to the pmsco/edac directory, and apply the edac_all.patch patch.
|
|
|
|
|
|
License
|
|
=======
|
|
|
|
The source code of PMSCO is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
|
|
Please read and respect the license agreement.
|
|
|
|
Please share your extensions of the code with the original author.
|
|
The gitlab facility can be used to create forks and to submit pull requests.
|
|
Attribution notices for your contributions shall be added to the NOTICE.md file.
|
|
|
|
|
|
Author
|
|
------
|
|
|
|
Matthias Muntwiler, <mailto:matthias.muntwiler@psi.ch>
|
|
|
|
Copyright
|
|
---------
|
|
|
|
Copyright 2015-2020 by [Paul Scherrer Institut](http://www.psi.ch)
|
|
|
|
|
|
Release Notes
|
|
=============
|
|
|
|
For a detailed list of changes, see the CHANGES.md file.
|
|
|
|
2.2.0 (2020-09-04)
|
|
------------------
|
|
|
|
This release breaks existing project code unless the listed refactorings are applied.
|
|
|
|
- Major refactoring: The 'symmetry' calculation level is renamed to 'domain'.
|
|
The previous Domain class is renamed to ModelSpace, Params to CalculatorParams.
|
|
The refactorings must be applied to project code as well.
|
|
- Included periodic table of elements with electron binding energies and scattering cross-sections.
|
|
- Various bug fixes in cluster routines, data file handling, and in the PHAGEN interface.
|
|
- Experimental sqlite3 database interface for optimization results.
|
|
|