GithubHelp home page GithubHelp logo

ifilot / edp Goto Github PK

View Code? Open in Web Editor NEW
32.0 3.0 4.0 26.04 MB

Electron Density Plotter

Home Page: https://edp.imc-tue.nl/

License: GNU General Public License v3.0

CMake 4.94% C++ 90.83% Python 0.88% C 0.79% Shell 0.17% TeX 2.36% Dockerfile 0.03%
electron-density vasp color-scheme density visualization

edp's Introduction

EDP: a program for projecting electron densities from VASP onto planes

GitHub tag (latest SemVer) Build Documentation License: GPL v3 status DOI

If you make use of this program, please use the following to cite it:

@article{Filot2023,
    doi = {10.21105/joss.05417},
    url = {https://doi.org/10.21105/joss.05417},
    year = {2023},
    publisher = {The Open Journal},
    volume = {8},
    number = {87},
    pages = {5417},
    author = {I.a.w. Filot},
    title = {EDP: a program for projecting electron densities from VASP onto planes},
    journal = {Journal of Open Source Software}
}

Purpose

EDP is a C++ program designed to project the electron density as stored in a CHGCAR or PARCHG file (calculated in VASP, onto a plane.

With EDP, users can effortlessly define the projection plane based on atomic positions while also having the option for detailed customization of the plane's position and direction. Its versatility and ease of use make EDP a handy tool for researchers in the field of materials science.

molecular orbitals of benzene

Features

Easy command line instructions

By referring to the atomic coordinates, one can easily define the projection plane and produce nice and clear images.

edp -i PARCHG_BENZENE_07 -o benzene_xy.png -p 1 -v 1,0,0 -w 0,1,0 -s 25 -b -5,0 -l

molecular orbitals of benzene

Large variety of color schemes

EDP supports 16 different color schemes.

molecular orbitals of benzene

edp's People

Contributors

dependabot[bot] avatar ifilot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

edp's Issues

terminate called after throwing an instance of 'std::runtime_error' what(): Cannot open CHGAR!

Hi,

I'm trying to run this on H2O on C60. I'm getting the following error when running:

$ edp -i CHGAR -v 1,0,0 -w 0,0,1 -p 5,3.60358,3.8327 -s 100 -o test.png

Executing EDP v.1.9.0
Author: Ivo Filot [email protected]

CHGAR is identified as a CHGCAR/PARCHG file. This means that we perform a volume correction on it as described in the link below:
https://cms.mpi.univie.ac.at/vasp/vasp/CHGCAR_file.html#file-chgcar.

terminate called after throwing an instance of 'std::runtime_error'
what(): Cannot open CHGAR!
Aborted (core dumped)

Any idea what this could be?
Thanks,

Filipe

PS: https://cms.mpi.univie.ac.at/vasp/vasp/CHGCAR_file.html#file-chgcar. does not seems to exist anymore.

supercell problem

I tried to use edp on a supercell calculation and noticed that apparently
edp keeps like a small "edge" from the colormap, i.e. if I try to put the
picture and its replica side by side to "extent" the supercell it does not fit.
Any way around this? Otherwise great work, really helps

Create a legend

Images a now created without a legend, so the user has no clue what value for the electron density each color represents.

Install instruction

Trying to install edp the first instruction is to download and add the GPG key, which fails with:

--2020-03-03 21:58:25--  http://st-a1960.chem.tue.nl/repos/apt/conf/imc-repo.gpg.key
Resolving st-a1960.chem.tue.nl (st-a1960.chem.tue.nl)... 131.155.83.226
Connecting to st-a1960.chem.tue.nl (st-a1960.chem.tue.nl)|131.155.83.226|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2020-03-03 21:58:25 ERROR 403: Forbidden.

Feature request: More control over color bounds and color space

Currently the color-mapping is done logarithmic. The user has an input argument to set bounds, but these bounds are limited to integer values. This is currently done to keep the legend consistent as the integer bounds are taken as log input. However, I've found that non integer values can improve color contrast. This also means that the user might want to deviate from logarithmic color space.

Feature request: More control over isolines

Currently the user has no control over the amount of isolines being plotted. Sometimes it is useful to plot more isolines, especially in lower density regions. I suggest adding an input argument that sets the amount of isolines, for example by changing the amount of bins.

compilation issue

when trying to compile on a new system I get the following error

-- Found the following Boost libraries:
-- regex
-- iostreams
-- filesystem
-- system
-- Checking for module 'tclap'
-- Found tclap, version 1.2.1
-- Checking for module 'cairo'
-- Found cairo, version 1.14.6
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mlorke/bin/edp-develop/build
mlorke@aguser-virtuell1:~/bin/edp-develop/build$ make -j5
Scanning dependencies of target edp
[ 12%] Building CXX object CMakeFiles/edp.dir/scalar_field.cpp.o
[ 25%] Building CXX object CMakeFiles/edp.dir/raycaster.cpp.o
[ 37%] Building CXX object CMakeFiles/edp.dir/quadrature.cpp.o
[ 50%] Building CXX object CMakeFiles/edp.dir/plotter.cpp.o
[ 62%] Building CXX object CMakeFiles/edp.dir/edp.cpp.o
[ 75%] Building CXX object CMakeFiles/edp.dir/planeprojector.cpp.o
[ 87%] Building CXX object CMakeFiles/edp.dir/periodic_table.cpp.o
/home/mlorke/bin/edp-develop/src/planeprojector.cpp: In member function ‘float PlaneProjector::calculate_scaled_value_log(float)’:
/home/mlorke/bin/edp-develop/src/planeprojector.cpp:570:82: error: no matching function for call to ‘max(double, float&)’
const float logval = std::min(std::max(log10(std::fabs(input)), this->log_min), this->log_max);
^
In file included from /usr/include/c++/5/algorithm:61:0,
from /home/mlorke/bin/edp-develop/src/planeprojector.h:24,
from /home/mlorke/bin/edp-develop/src/planeprojector.cpp:21:
/usr/include/c++/5/bits/stl_algobase.h:219:5: note: candidate: template constexpr const _Tp& std::max(const _Tp&, const _Tp&)
max(const _Tp& __a, const _Tp& __b)
^
/usr/include/c++/5/bits/stl_algobase.h:219:5: note: template argument deduction/substitution failed:
/home/mlorke/bin/edp-develop/src/planeprojector.cpp:570:82: note: deduced conflicting types for parameter ‘const _Tp’ (‘double’ and ‘float’)
const float logval = std::min(std::max(log10(std::fabs(input)), this->log_min), this->log_max);
^
In file included from /usr/include/c++/5/algorithm:61:0,
from /home/mlorke/bin/edp-develop/src/planeprojector.h:24,
from /home/mlorke/bin/edp-develop/src/planeprojector.cpp:21:
/usr/include/c++/5/bits/stl_algobase.h:265:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
/usr/include/c++/5/bits/stl_algobase.h:265:5: note: template argument deduction/substitution failed:
/home/mlorke/bin/edp-develop/src/planeprojector.cpp:570:82: note: deduced conflicting types for parameter ‘const _Tp’ (‘double’ and ‘float’)
const float logval = std::min(std::max(log10(std::fabs(input)), this->log_min), this->log_max);
^
In file included from /usr/include/c++/5/algorithm:62:0,
from /home/mlorke/bin/edp-develop/src/planeprojector.h:24,
from /home/mlorke/bin/edp-develop/src/planeprojector.cpp:21:
/usr/include/c++/5/bits/stl_algo.h:3457:5: note: candidate: template constexpr _Tp std::max(std::initializer_list<_Tp>)
max(initializer_list<_Tp> __l)
^
/usr/include/c++/5/bits/stl_algo.h:3457:5: note: template argument deduction/substitution failed:
/home/mlorke/bin/edp-develop/src/planeprojector.cpp:570:82: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘double’
const float logval = std::min(std::max(log10(std::fabs(input)), this->log_min), this->log_max);
^
In file included from /usr/include/c++/5/algorithm:62:0,
from /home/mlorke/bin/edp-develop/src/planeprojector.h:24,
from /home/mlorke/bin/edp-develop/src/planeprojector.cpp:21:
/usr/include/c++/5/bits/stl_algo.h:3463:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)
max(initializer_list<_Tp> __l, _Compare __comp)
^
/usr/include/c++/5/bits/stl_algo.h:3463:5: note: template argument deduction/substitution failed:
/home/mlorke/bin/edp-develop/src/planeprojector.cpp:570:82: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘double’
const float logval = std::min(std::max(log10(std::fabs(input)), this->log_min), this->log_max);
^
CMakeFiles/edp.dir/build.make:182: recipe for target 'CMakeFiles/edp.dir/planeprojector.cpp.o' failed
make[2]: *** [CMakeFiles/edp.dir/planeprojector.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/edp.dir/all' failed
make[1]: *** [CMakeFiles/edp.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

as far as I can tell all dependencies are fulfilled, what could be the problem here?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.