Git Product home page Git Product logo

sgsaenger / vipster Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 7.0 12.16 MB

Visualization and editing of periodic molecular structure files.

Home Page: https://sgsaenger.github.io/vipster

License: GNU General Public License v3.0

GLSL 1.15% HTML 5.40% CSS 0.31% C++ 88.25% JavaScript 1.60% CMake 1.53% Python 0.76% Shell 0.35% C 0.01% SCSS 0.64%
atom cpmd cpp17 emscripten gui lammps molecule pwscf python quantum-espresso visualization xyz

vipster's People

Contributors

grubersjoe avatar hein09 avatar koniweb avatar sgsaenger avatar traviscibot avatar

Stargazers

 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  avatar  avatar  avatar

vipster's Issues

[REQUEST] A way to draw bonds between atoms (and select bond type explicitly)

Is your feature request related to a problem? Please describe.

For coarse-grained modeling, it is important to be able to manually specify which pairs of atoms are bonded together (instead of trying to infer it from the distance and atom-type names). I know we have discussed this before by email, but I'm making a formal request for it here. I hope that's okay.

Describe the solution you'd like

Would it be possible to have a "New Bond" feature? (Perhaps select "Edit"->"New Bond"?). Then select two atoms?

Additionally, it would be pretty useful to be able to display a (hideable) table of bonds. (Similar in style to the hideable tables of atoms and cell vectors that you already have on the left-hand side.) This way, the user can also specify the bond type (a text string).

AtomID1  AtomID2  BondType
    143       534      C-H
    685       349      C=O
     :

(For most coarse-grained models, the angles, dihedrals, and impropers can be generated automatically from the bond network and atom types. So this would be enough to help most users.)

To make VIPSTER work with coarse grained models, you would also have to provide a way to override VIPSTER so that it no longer automatically tries to infer the atom's type (element) from its name. ("C3" is assumed to be a carbon atom. "Ha" is assumed to be a hydrogen atom. Etc...) Perhaps I should make a separate feature request for this.

Feel free to ignore this feedback.
-andrew

[BUG] Build of 1.16b fails: no member named 'extract' in 'std::__1::map...'

/wrkdirs/usr/ports/science/vipster/work/vipster-819e2c3/vipster/qt/tools/definewidget.cpp:188:32: error: no member named 'extract' in 'std::__1::map<std::__1::basic_string<char>, Vipster::SelectionBase<StepMutable, Vipster::AtomList>, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, Vipster::SelectionBase<StepMutable, Vipster::AtomList> > > >'
            auto nh1 = defMap->extract(name);
                       ~~~~~~  ^
/wrkdirs/usr/ports/science/vipster/work/vipster-819e2c3/vipster/qt/tools/definewidget.cpp:189:31: error: no member named 'extract' in 'std::__1::map<std::__1::basic_string<char>, DefineWidget::GroupData, std::__1::less<std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, DefineWidget::GroupData> > >'
            auto nh2 = curMap.extract(name);
                       ~~~~~~ ^
2 errors generated.

OS: FreeBSD
compiler: clang-6.0.1

[Rendering] Atom(s) should appear to move while dragging.

Is your feature request related to a problem? Please describe.

I'm having trouble drawing a simple molecule (eg. H2O) in VIPSTER using the mouse. I am able to type coordinates into the table, but I can't move them where I want using the mouse. (The "Modify" button does not appear to do anything, but perhaps I am just misunderstanding what it does.)

Details:

  1. Creat a new atom ("Edit->New Atom")

  2. Click on the "Select" tab, draw a rectangle around the atom to select it.

  3. Click on the "Modify" tab (the cursor is replaced with a hand)

  4. Drag the atom.
    Nothing happens. I expected it to move.

More details:
If I create another atom ("Edit->New Atom"), it places another atom at the same location. (That's what I think occurred because when I delete the atom, I have to delete it twice to get rid of it.) But this confirms that the atom did not move (and not that the camera is centered on the atom, regardless where it is moved.)

Describe the solution you'd like
I think VIPSTER could really benefit from some kind of tutorial that explains the steps necessary to draw a molecule, add bonds, and save it to a file. LAMMPS desperately needs a graphical way for users to draw the molecules. But the GUI was not intuitive enough for me to figure out how to do this in VIPSTER.

-A

[BUG] ld: error: undefined symbol: LAMMPS_NS::LAMMPS::LAMMPS(int, char**, int)

[70/71] /usr/bin/c++  -DFFT_FFTW3 -DFMT_HEADER_ONLY=1 -DLAMMPS_EXCEPTIONS -DLAMMPS_SMALLBIG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DUSE_LAMMPS -I. -I/usr/ports/science/vipster/work/vipster-80892af -Ivipster_autogen/include -I/usr/ports/science/vipster/work/vipster-80892af/gui/common -I/usr/ports/science/vipster/work/vipster-80892af/gui/qt -I/usr/ports/science/vipster/work/vipster-80892af/external/tinyexpr -isystem /usr/local/include/qt5 -isystem /usr/local/include/qt5/QtGui -isystem /usr/local/include -isystem /usr/local/include/qt5/QtCore -isystem /usr/local/lib/qt5/mkspecs/freebsd-clang -isystem /usr/local/include/qt5/QtWidgets -isystem /usr/local/mpi/openmpi/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -fPIE   -fPIC -fexceptions -pthread -std=gnu++17 -MD -MT CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/uff.lmp.cpp.o -MF CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/uff.lmp.cpp.o.d -o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/uff.lmp.cpp.o -c /usr/ports/science/vipster/work/vipster-80892af/gui/qt/toolwidgets/lammpswidget_aux/uff.lmp.cpp
[71/71] : && /usr/bin/c++  -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  -fstack-protector-strong     -Wl,-rpath=-Wl,-rpath=/usr/local/lib/gcc9 -Wl,-rpath -Wl,/usr/local/mpi/openmpi/lib -Wl,--enable-new-dtags -pthread CMakeFiles/vipster.dir/vipster_autogen/mocs_compilation.cpp.o CMakeFiles/vipster.dir/gui/common/guidata.cpp.o CMakeFiles/vipster.dir/gui/common/guimat.cpp.o CMakeFiles/vipster.dir/gui/common/guiwrapper.cpp.o CMakeFiles/vipster.dir/gui/common/meshdata.cpp.o CMakeFiles/vipster.dir/gui/common/seldata.cpp.o CMakeFiles/vipster.dir/gui/common/stepdata.cpp.o CMakeFiles/vipster.dir/gui/qt/basewidget.cpp.o CMakeFiles/vipster.dir/gui/qt/datawidgets/data2dwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/datawidgets/data3dvwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/datawidgets/data3dwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/glwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/main.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/datawidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/atommodel.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/bonddelegate.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/bondmodel.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/cellmodel.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/doubledelegate.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/newelement.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/paramwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/periodictablewidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/presetwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/settingswidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwindow.cpp.o CMakeFiles/vipster.dir/gui/qt/savefmtdialog.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/cellmodwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/definewidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/millerwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/pickwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/pinwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/scripthelp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/scriptwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/viewport.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/fix_vipster.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/forcefield.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/run.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/uff.lmp.cpp.o CMakeFiles/vipster.dir/vipster_autogen/YHP5W5E6RA/qrc_vipster.cpp.o  -o vipster  -Wl,-rpath,/usr/local/lib/qt5:/usr/ports/science/vipster/work/.build:/usr/local/lib:/usr/local/mpi/openmpi/lib:  /usr/local/lib/qt5/libQt5Widgets.so.5.14.2  libvipster.so.1.19  /usr/local/lib/liblammps.so.0  /usr/local/lib/qt5/libQt5Gui.so.5.14.2  /usr/local/lib/qt5/libQt5Core.so.5.14.2  -ldl  /usr/local/mpi/openmpi/lib/libmpi_cxx.so  /usr/local/mpi/openmpi/lib/libmpi.so  /usr/local/lib/libfftw3.so  -Wl,-rpath-link,/usr/local/lib && :
FAILED: vipster 
: && /usr/bin/c++  -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  -fstack-protector-strong     -Wl,-rpath=-Wl,-rpath=/usr/local/lib/gcc9 -Wl,-rpath -Wl,/usr/local/mpi/openmpi/lib -Wl,--enable-new-dtags -pthread CMakeFiles/vipster.dir/vipster_autogen/mocs_compilation.cpp.o CMakeFiles/vipster.dir/gui/common/guidata.cpp.o CMakeFiles/vipster.dir/gui/common/guimat.cpp.o CMakeFiles/vipster.dir/gui/common/guiwrapper.cpp.o CMakeFiles/vipster.dir/gui/common/meshdata.cpp.o CMakeFiles/vipster.dir/gui/common/seldata.cpp.o CMakeFiles/vipster.dir/gui/common/stepdata.cpp.o CMakeFiles/vipster.dir/gui/qt/basewidget.cpp.o CMakeFiles/vipster.dir/gui/qt/datawidgets/data2dwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/datawidgets/data3dvwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/datawidgets/data3dwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/glwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/main.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/datawidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/atommodel.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/bonddelegate.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/bondmodel.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/cellmodel.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/doubledelegate.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/molwidget_aux/newelement.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/paramwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/periodictablewidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/presetwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwidgets/settingswidget.cpp.o CMakeFiles/vipster.dir/gui/qt/mainwindow.cpp.o CMakeFiles/vipster.dir/gui/qt/savefmtdialog.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/cellmodwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/definewidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/millerwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/pickwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/pinwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/scripthelp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/scriptwidget.cpp.o CMakeFiles/vipster.dir/gui/qt/viewport.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/fix_vipster.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/forcefield.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/run.lmp.cpp.o CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/uff.lmp.cpp.o CMakeFiles/vipster.dir/vipster_autogen/YHP5W5E6RA/qrc_vipster.cpp.o  -o vipster  -Wl,-rpath,/usr/local/lib/qt5:/usr/ports/science/vipster/work/.build:/usr/local/lib:/usr/local/mpi/openmpi/lib:  /usr/local/lib/qt5/libQt5Widgets.so.5.14.2  libvipster.so.1.19  /usr/local/lib/liblammps.so.0  /usr/local/lib/qt5/libQt5Gui.so.5.14.2  /usr/local/lib/qt5/libQt5Core.so.5.14.2  -ldl  /usr/local/mpi/openmpi/lib/libmpi_cxx.so  /usr/local/mpi/openmpi/lib/libmpi.so  /usr/local/lib/libfftw3.so  -Wl,-rpath-link,/usr/local/lib && :
ld: error: undefined symbol: LAMMPS_NS::LAMMPS::LAMMPS(int, char**, int)
>>> referenced by lammpswidget.lmp.cpp
>>>               CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget.lmp.cpp.o:(LammpsWidget::LammpsWidget(QWidget*))
>>> referenced by run.lmp.cpp
>>>               CMakeFiles/vipster.dir/gui/qt/toolwidgets/lammpswidget_aux/run.lmp.cpp.o:(Vipster::Lammps::run(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, Vipster::Lammps::runParams, int, Vipster::Molecule*))
c++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

rev. 80892af
OS: FreeBSD 12.1
lammps-2020.05.5_2

[File format] Quantum-Espresso: Align support with newer PWScf versions

Investigate compatibility of PWI format implementation with newer QE-Version's features: https://www.quantum-espresso.org/Doc/INPUT_PW.html
The current implementation was done against QE V4.

Possible issues/tasks:

  • Add &FCP namelist, tie export to value of lfcp
  • Add &RISM namelist, tie export to value of trism
  • Ensure unsupported namelists are correctly parsed and either handled or ignored
  • Ensure additional CARDS (non-&-prefixed sections) are correctly parsed and either handled or ignored

[File format] Moltemplate export capability

Is your feature request related to a problem? Please describe.
Currently moltemplate users have to run ltemplify.py on the files created by VIPSTER, by typing this into the terminal/shell:

ltemplify.py LAMMPS_DATA_FILE > MOLTEMPLATE_FILE

Describe the solution you'd like

Can we add a new entry ("Moltemplate LT") to the list of file formats that users can select from when saving (exporting) a molecule? It would behave identically to the "LAMMPS Data File" format, with the same list of options. However when VIPSTER saves the file, it runs the ltemplify.py script on this file to automatically convert the result into moltemplate format (using the syntax above).

This will either require users to have also installed moltemplate (since "ltemplify.py" is distributed with moltemplate), OR we could copy the current version of the "ltemplify.py" code into VIPSTER. (This would require adding "ltemplify.py", "ttree_lex.py", and "lttree_styles.py" to VIPSTER. This is 6785 lines of code, but this code is currently relatively stable. These files do not change very often these days.) I am happy either way.

Describe alternatives you've considered
Alternatively, you could instead add a new "IO-Config Preset" for the existing LAMMPS file format (instead of creating a new entry in the list of available file formats). That's okay too. However, if you do that, perhaps we could change the name of the entry from "LAMMPS Data File" to "LAMMPS File", or something vague like that (because moltemplate files have a different format from LAMMPS data files).

It's possible I may add one or two additional options that are specific to moltemplate (to allow the user to specify the force field they want, for example). But we can worry about this later.

Please let me if there is anything I can do to make this easier for you.

Responsive frontend for mobile devices

The web frontend need to be responsive to support smartphones and small tablets.

  • Hamburger menu above canvas to hold collapsed sidebar
  • Touch support?

[BUG] clang prints warnings some of which look potentially damaging

/usr/ports/science/vipster/work/vipster-1.19.1b-14-g7168a1b/vipster/filter.h:163:5: warning: non-void lambda does not return a value in all control paths [-Wreturn-type]
    };
    ^
/usr/ports/science/vipster/work/vipster-1.19.1b-14-g7168a1b/vipster/filter.h:262:15: note: in instantiation of function template specialization 'Vipster::evalPos<Vipster::StepMutable<Vipster::detail::AtomList> >' requested here
        tmp = evalPos(step, filter);
              ^
/usr/ports/science/vipster/work/vipster-1.19.1b-14-g7168a1b/vipster/stepbase.h:463:42: note: in instantiation of function template specialization 'Vipster::evalFilter<Vipster::StepMutable<Vipster::detail::AtomList> >' requested here
                            this->atoms, evalFilter(*this, filter)),
                                         ^
/usr/ports/science/vipster/work/vipster-1.19.1b-14-g7168a1b/tests/test_stepsel.cpp:51:23: note: in instantiation of member function 'Vipster::StepMutable<Vipster::detail::AtomList>::select' requested here
        auto selC = s.select("type C");
                      ^
1 warning generated.


```/usr/ports/science/vipster/work/vipster-1.19.1b-14-g7168a1b/vipster/stepformatter.h:110:89: warning: returning reference to local temporary object [-Wreturn-stack-address]
                operator const Vec::value_type&() const {return static_cast<const Vec&>(_v)[i];}
                                                                                        ^~
/usr/ports/science/vipster/work/vipster-1.19.1b-14-g7168a1b/vipster/step.cpp:157:35: note: in instantiation of member function 'Vipster::detail::Formatter<Vipster::detail::AtomList>::AtomView<false>::_Vec::_Value_type::operator const double &' requested here
        at.coord[0] -= std::floor(at.coord[0]);
                                  ^
1 warning generated.

[BUG] GUI translates all atoms instead of the unit cell itself

Describe the bug
When modifying periodic structures, I often toggle between selecting, modifying mode and camera mode
using the keyboard shortcuts. However, sometimes when you switch back from modifying to camera
and try to rotate / translate the whole view, the atoms are moved inside the unit cell instead, which
f**s up everything you did before 😄

To Reproduce
Not 100% sure what exactly triggers the bug, but I am fairly certain that it is connected to
using the hotkeys instead of the dropdown menu.

Expected behavior
Well,...

Your system/installation:

  • Vipster v1.19.1b (I have observed this in previous versions as well, just haven't filed a bug report yet)
  • OpenGL Renderer: AMD Radeon RX 5700 XT (NAVI10, DRM 3.40.0, 5.12.11-300.fc34.x86_64, LLVM 12.0.0)
  • OpenGL Version: 4.6 (Core Profile) Mesa 21.1.3
  • Linux Fedora

Redesign file load dialog

The file loading widget should be redesigned to improve the user interace:

  • move it to a dialog
  • help the user by numbering each step to make things clearer
    1. choose file format
    2. choose file / dropzone

[REQUEST] Input of VASP data

Vipster needs to be available for VASP users too.

Input and Output of VASP files would be desirable

Poscars should be the main focus but XDATCAR(trajectories) and CHGCAR(electron densities) for visualization could be added too.

[Rendering] Allow multiple visualization types for the same (group of) atom types.

Is your feature request related to a problem? Please describe.
Not really.
In order to create nice surface slab pictures it would be outstanding
if one could, for example, represent the bulk surface atoms with
vdW-radii, while adsorbates are represented with covalent radii.
Also different representation modes like Ball and Stick, Wireframe,
tetrahedron motifs or similar, would be fantastic.
Also a (sort of dashed line or sth) that indicates H-bonding if
desired would be nice.

Describe the solution you'd like
Similar as you can set up e.g. in Vesta (But ofc much better as usual...)
Possibly divide Atoms into "Sub molecules" that have their own type
of representation.

Describe alternatives you've considered
Vesta and VMD... But,... well would be great if vipster had such capabilities :>

[BUG] fatal error: 'molecule.h' file not found

Describe the bug

/usr/ports/science/vipster/work/vipster-6944bc3/gui/qt/toolwidgets/lammpswidget_aux/fix_vipster.lmp.h:6:10: fatal error: 'molecule.h' file not found
#include "molecule.h"
         ^~~~~~~~~~~~
1 error generated.

revision 6944bc3
OS: FreeBSD 12.1

[Library] Increase core-library unit test coverage

The unit test coverage of the library should be increased.

Acceptance criteria
Files in vipster/, but not vipster/plugins should have an average test coverage of 90%.

Notes
Structure of tests in tests/unit_tests should mirror structure of library sources.
Create a new test file per class or function unit.

[BUG] AppImage binary creates a blank window in ubuntu 18.04

Describe the bug
I was unable to get the .AppImage file to run in Ubuntu 18.04.

To Reproduce
Download the AppImage file from https://github.com/sgsaenger/vipster/releases and change its permissions. (I was using version v1.18b)

When launched (either from the terminal by double-clicking), a VIPSTER window is created. However it fails to update and fill. The window remains filled with whatever pixels were occupying the screen before VIPSTER was launched. (For example, my web browser, my terminal, my cluttered desktop, etc...)

I am running Ubuntu 18.04 on a laptop with a dedicated ATI/AMD mobile 5870 graphics card (with the proprietary AMD "fgrlx" drivers).

Expected behavior
I expected to see a GUI similar to
https://sgsaenger.github.io/vipster/gui.html

Screenshots

screenshot_vipster_failure_2019-7-11

Desktop (please complete the following information):

  • Version

VIPSTER v1.18b, date: 2019-6-18 (I think)

  • Interface
    Qt version

  • Platform
    Ubuntu linux 18.04 using the Unity window manager and the AMD "fglrx" video drivers.

[BUG] QtVipster binary missing after (local) build

Describe the bug
Hi Sebastian
I am following the instructions here to build QtVipster from source. But after I am done, I cannot find the QtVipster binary. I don't know if this is a bug. Perhaps it is present somewhere. But if so, I don't have enough clue to figure out where it is or what it is called. Please change the documentation so that it clarifies where the QtVipster binary is located after a build, and how to invoke it.

To Reproduce
Here's what I did:
(Note: I built vipster on a different computer where I have admin privileges. Then I took photos of the terminal with my phone. Then I retyped it here. There may be typos. But hopefully, you get the idea.)

# Download the source code and create the build directory
git clone https://github.com/sgsaenger/vipster/ ~/vipster
mkdir ~/vipster/build
cd ~/vipster/build

# Define the variables we need:
SOURCE_DIR=$HOME/vipster
BUILD_DIR=$HOME/vipster/build

# Compile'
# step 1
cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=$HOME/.local -DVIPSTER_DESKTOP=ON
# step 2
cmake --build .
# step 3
cmake --build . -- install

The compilation completes with no error messages during steps 1,2,3.
Then I start a new terminal and type:

$ vipster
vipster: command not found

(I knew this probably wouldn't work, but I tried it anyway.)

Then I use the unix "find" command to search for files containing "vipster" in ~/.local

$ find ~/.local/ -name "*vipster*"
/home/jewett/.local/include/vipster
/home/jewett/.local/lib/libvipster.so
/home/jewett/.local/lib/libvipster.so.1
/home/jewett/.local/lib/libvipster.so.1.19.1

(I did not attempt to install PyVipster or WebVipster.)

Expected behavior
I was expecting to see a binary file (perhaps something in the ~/.local/bin directory). I could only find the library and some include files. If the QtVipster binary is there, I think the documentation could provide more instructions so that users can find it.

Your system/installation (please complete the following information):

  • Version [commit fccaf0f from 2022-3-24]
  • Interface [Desktop-App]
  • Platform [Linux]
  • Browser if applicable [Not Applicable]

Additional context
I am trying to build vipster from source because I wanted to try the new moltemplate export capabilities that you kindly added in issue #35. (Thank you so much for adding this. I am starting to get questions about this feature by moltemplate users. I feel bad that it took me this long to try this out.)

Forgive me for taking so long to followup on this and don't feel obligated to respond. If you don't have time to deal with this now, I completely understand. (I often feel that way when people ask me moltemplate questions.)

[BUG] cmake looks for lammps/exceptions.h in a wrong location

I added the printout:

===>  Performing out-of-source build
/bin/mkdir -p /usr/ports/science/vipster/work/.build
-- Vipster is looking for the file file /usr/local/include/lammps/lammps/exceptions.h
Found incompatible LAMMPS (suitable version "20201130" at /usr/local/include/lammps has exceptions disabled)

and it turned out that it uses a wrong path.

$ pkg info -l lammps | grep exception
	/usr/local/include/lammps/exceptions.h

Version 1.19.1b

[BUG] Broken python bundling

Incidentally, I just tried using the binary from the most recent artifact. Unfortunately it generated this error message:

$ chmod 755 ./Vipster-Linux-x86_64.AppImage
$ ./Vipster-Linux-x86_64.AppImage 
/tmp/.mount_VipsteepTSBB/AppRun: 13: /tmp/.mount_VipsteepTSBB/AppRun: 12: python3.10: not found
python3.10: not found

I was surprised that the program requires a specific version of python. I have python 3.8.12 installed instead. If I get around to upgrading my python version, I'll try again. (This will probably happen when I upgrade my OS later this year. Doing that will make it easier to upgrade my Qt version as well.)

Meanwhile, the binary for the 1.19.1b release is working fine on my computer (although it lacks the recent moltemplate features you added).

Thank you for all your efforts.
-Andrew

Originally posted by @jewettaij in #49 (comment)

Investigations needed:

  • Python should be bundled with the AppImage
  • make-appimage.sh should determine the python executable from CMake
  • AppRun should determine on the fly whether system-installation can be used instead of bundled one

Python's minor versions are not ABI compatible, the system version being unsuitable is (unfortunately) not a bug

[REQUEST] compile with older versions of Qt5?

Is your feature request related to a problem? Please describe.

There is no problem with VIPSTER.
On the other hand, it looks like there may be a problem with my Qt installation.
When compiling VIPSTER, my Qt version was revealed to be too low:

vipster/qt/glwidget.cpp:12:5: error: ‘setTextureFormat’ was not declared in this scope

("setTextureFormat" requires Qt 5.10. Ubuntu comes with 5.9.5)

Describe the solution you'd like

I suppose it would be nice if VIPSTER could be compiled using older versions of Qt5. Again, this is not a problem. I'm sure that eventually, later versions of Ubuntu and other linux distributions (besides redhat...) will come with updated versions of Qt.

Please don't spend effort on this issue. (As for me at least, there are other issues I care about more.)

I just wanted to let you know I tried. :)

Feel free to close this issue as soon as you read it.
-andrew

[BUG] Shows wrong bond lengths

Fox the O2 molecule it shows the bond length 4.57811Å when the correct value should be around 1.2Å.

See the screenshot:
image

[BUG] Vipster Binary Image crashes on CentOS when loading PW.x Output data

Describe the bug
Vipster crashes when loading PW.x Output data. It crashes
both when loading from the cli with the --pwo option or directly when
loading from inside the GUI. The only message I recieve is

/tmp/.mount_vipstefRqgBt/AppRun: line 57: 5974 Segmentation fault (core dumped) $exec $*

Otherwise vipster works fine.

To Reproduce
Load any PW.x output data into vipster (on CentOS?)

Your system/installation (please complete the following information):

  • Vipster 1.19b or 1.19.1b (both crash)
  • Linux on CentOS 8
  • OpenGL Vendor: X.Org
  • OpenGL Renderer: AMD Radeon RX 5700 XT (NAVI10, DRM 3.36.0, 4.18.0-240.10.1.el8_3.x86_64, LLVM 10.0.0)
  • OpenGL Version: 4.6 (Core Profile) Mesa 20.1.4
  • GLSL Version: 4.60

Additional context
I will try to see if I have the same problems on Ubuntu, but I
have no installation atm...

[BUG] error: no member named 'experimental' in namespace 'std'

FreeBSD port's build fails:

In file included from /wrkdirs/usr/ports/science/vipster/work/vipster-1.14a/vipster/qt/main.cpp:4:
In file included from /wrkdirs/usr/ports/science/vipster/work/vipster-1.14a/external/CLI11.hpp:143:
/usr/include/c++/v1/experimental/optional:11:2: error: "<experimental/optional> has been removed. Use <optional> instead."
#error "<experimental/optional> has been removed. Use <optional> instead."
 ^
In file included from /wrkdirs/usr/ports/science/vipster/work/vipster-1.14a/vipster/qt/main.cpp:4:
/wrkdirs/usr/ports/science/vipster/work/vipster-1.14a/external/CLI11.hpp:172:71: error: no member named 'experimental' in namespace 'std'
template <typename T> std::istream &operator>>(std::istream &in, std::experimental::optional<T> &val) {
                                                                 ~~~~~^
2 errors generated.

http://beefy11.nyi.freebsd.org/data/head-i386-default/p490335_s343029/logs/vipster-1.14.a.log (IPv6 URL)

Version 1.14.a

error: "<experimental/optional> has been removed. Use <optional> instead."

Build fails:

/usr/include/c++/v1/experimental/optional:11:2: error: "<experimental/optional> has been removed. Use <optional> instead."
#error "<experimental/optional> has been removed. Use <optional> instead."
 ^
In file included from /wrkdirs/usr/ports/science/vipster/work/vipster-1.14a/vipster/qt/main.cpp:4:
/wrkdirs/usr/ports/science/vipster/work/vipster-1.14a/external/CLI11.hpp:172:71: error: no member named 'experimental' in namespace 'std'
template <typename T> std::istream &operator>>(std::istream &in, std::experimental::optional<T> &val) {
                                                                 ~~~~~^

FreeBSD 12 amd64
clang-7
vipster-1.14.a

[Qt Frontend] Improve architecture

The current architecture of the main Vipster frontend (vipster/gui/qt) is too convoluted and not maintainable.
Development of a new application architecture is performed on a branch https://github.com/sgsaenger/vipster/tree/architecture.

Acceptance criteria

  • All application state is handled via a separate class instance (Vipster::Application)
    • GUI classes and widgets should store only state required for rendering
    • All data (potentially) shared between widgets is stored in the application
  • event handling is done via Qt signals/slots
    • the BaseWidget class is removed
    • other implementations of triggerUpdate/updateWidget are removed
  • State is minimized during the conversion process, e.g.:
    • raw pointers should be removed in general (if possible)
    • widgets should access molecule data mostly (or only?) in the event handling process
  • Investigate off-loading time-consuming operations to threads

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.