跳转到主要内容

基于ED的开源工具包,用于模拟RIXS光谱

项目描述

https://img.shields.io/travis/NSLS-II/edrixs.svg https://img.shields.io/pypi/v/edrixs.svg https://mybinder.org/badge_logo.svg

基于精确对角化(ED)的强关联材料RIXS光谱模拟的开源工具包。它作为布鲁克海文国家实验室计算材料光谱与设计中心COMSCOPE项目的一部分开发而成。COMSCOPE项目

特性

  • ED求解器

  • XAS光谱

  • RIXS光谱

如何引用

如果您使用EDRIXS代码进行了一些研究并希望发表您的大作,如果您能引用以下论文,我们将不胜感激:

EDRIXS:共振非弹性X射线散射光谱的开源工具包,王怡琳,法布里,迪恩和科蒂亚尔,《计算机物理通讯》,243,151(2019),https://doi.org/10.1016/j.cpc.2019.04.018arXiv:1812.05735

通过Anaconda安装(目前仅限Linux)

$ conda create --name edrixs_env python=3.7
$ conda activate edrixs_env
$ conda install -c conda-forge edrixs

在docker中运行edrixs

为了让生活更轻松,我们基于Ubuntu Linux(18.04)为edrixs构建了一个docker镜像,因此您无需再为安装而烦恼。该docker镜像可以在任何安装了docker应用程序的操作系统上使用。按照以下步骤使用docker镜像

  • 在您的系统上安装docker应用程序,并学习如何使用它

  • 一旦docker运行起来,在您的宿主操作系统上创建一个存储数据的目录,然后启动一个容器来运行edrixs

    $ mkdir /dir/on/your/host/os   # A directory on your host OS
    $ docker pull edrixs/edrixs    # pull latest version
    $ docker run -it -p 8888:8888 -u rixs -w /home/rixs -v /dir/on/your/host/os:/home/rixs/data edrixs/edrixs

    第一次从Docker Hub拉取镜像可能需要一些时间,而下次则可以非常快地启动本地的镜像。

    • -p 8888:8888将容器的8888端口映射到宿主的8888端口。

    • -u rix意味着使用默认用户rixs登录Ubuntu Linux,密码是rixs

    • -v /dir/on/your/host/os:/home/rixs/dat意味着将从宿主操作系统中的/dir/on/your/host/os目录挂载到容器中Ubuntu Linux的/home/rixs/data目录。

  • 启动容器后,您将在/home/rixs目录下看到dataedrixs_examples。如果您想将edrixs计算的数据保存到宿主系统,您需要在工作在/home/rixs/data目录中。

    $ cd /home/rixs/data
    $ cp -r ../edrixs_examples .
    $ Play with edrixs ...

    请注意,当此容器停止时,除/home/rixs/data之外的任何更改都将丢失。您只能使用宿主操作系统来制作交互式绘图。如果需要,请使用sudo apt-get install安装软件。

  • 在容器中输入exit退出。您可以通过以下方式删除所有已停止的容器

    $ docker rm $(docker ps -a -q)
  • 您可以通过以下方式删除edrixs镜像

    $ docker rmi edrixs/edrixs

从源码安装

  • 所需工具和库

    • Fortran编译器:支持gfortran和ifort

    • MPI环境:已测试openmpi和mpich

    • mpif90(与gfortran或ifort绑定)和mpicc(与gcc绑定)

    • Python3

    • BLAS和LAPACK:gfortran+OpenBLAS或ifort+MKL

    • arpack-ng(启用MPI)

    • Numpy

    • Scipy

    • Sympy

    • Matplotlib

    • mpi4py

    • Sphinx

    • Numpydoc

    请确保使用相同的(MPI)Fortran编译器编译OpenBLAS、arpack-ng、mpi4py和edrixs。

  • 安装edrixs的Fortran部分

    $ cd src
    $ make F90=mpif90 LIBS="-L/usr/local/lib -lopenblas -lparpack -larpack"
    $ make install

    在这里,您可能需要根据您的具体环境更改 F90LIBS。使用 gfortran 与 MKL 时会遇到问题,因此我们建议使用 gfortran+OpenBLASifort+MKL。将生成 libedrixsfortran.a,该文件将在构建 Python 接口时使用。可执行文件 .x 将安装到 edrixs/bin 目录,并在 .bashrc.bash_profile 文件中添加以下行:

    export PATH=/root_dir_of_edrixs/edrixs/bin:$PATH
  • 安装 edrixs 的 Python 部分

    请确保首先在 src 中创建 libedrixsfortran.a

    $ python setup.py config_fc --f77exec=mpif90 --f90exec=mpif90 build_ext \
      --libraries=openblas,parpack,arpack --library-dirs=/usr/lib:/usr/local/lib:/opt/local/lib \
      --link-objects=./src/libedrixsfortran.a
    $ pip install .

    其中,--library-dirs 是搜索 --libraries 的路径,请根据您的环境设置。

有关安装的更多详细信息,请参阅我们的在线文档

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

edrixs-0.0.8.tar.gz (133.7 kB 查看哈希值)

上传时间

由以下组织支持