enGits / engrid

ENGRID is a mesh generation software with CFD applications in mind. It supports automatic prismatic boundary layer grids for Navier-Stokes simulations and has a Qt based GUI.
Other
146 stars 55 forks source link

"master branch" and "new concept" Installation #52

Closed Jawisr closed 9 years ago

Jawisr commented 9 years ago

Hi all, im succesfully installed engrid 1.4 in ubuntu 14.04 even having some troubles. I would like how to install new concept version in such distro. I assume that I cannot use build.bash script because it is installing version 1.4. Which installation method do I need to use in order to install these two new branches on my ubuntu?

Thnaks!

ftpronk commented 9 years ago

Hi there. EnGrid can now best be compiled using the cmake build system. To have the latest version:

  1. Pull the latest code from the master branch.
  2. Create a ./build directory within the engrid directory
  3. Go into ./build and run: ccmake ../src
  4. Change the parameters if needed (CMAKE_INSTALL_PREFIX)
  5. Press [c] to configure and then [g] to generate. Cmake will exit automatically if all went well.
  6. Run: make install That should do the trick.

Kind regards, F.

Jawisr commented 9 years ago

Hi ftpronk! Thanks for your answer. I tried to follow the steps but i found some trouble: First of all I had to add a line to Cmakelists.txt in order to avoid policy warnings: CMAKE_POLICY(SET CMP0017 OLD)

After solving that warning I got following error when running ccmake ../src: string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command.

So I modified line 45 in cmakelists.txt and added quotation marks: string(REGEX REPLACE "[-g]" "" "GIT_SHA1" "${GIT_SHA1}")

After that I coud configure and generate the ccmake. However I found another error at 39% of make install command which I have no idea of how to solve it.

[ 39%] Building CXX object libengrid/CMakeFiles/libengrid.dir/blenderreader.cpp.o In file included from /home/javier/engrid-master/src/libengrid/operation.h:27:0, from /home/javier/engrid-master/src/libengrid/iooperation.h:26, from /home/javier/engrid-master/src/libengrid/blenderreader.h:25, from /home/javier/engrid-master/src/libengrid/blenderreader.cpp:22: /home/javier/engrid-master/src/libengrid/egvtkobject.h: In member function ‘void EgVtkObject::writeCells(vtkUnstructuredGrid, const C&, QString)’: /home/javier/engrid-master/src/libengrid/egvtkobject.h:704:8: error: ‘class vtkXMLUnstructuredGridWriter’ has no member named ‘SetInputData’ make[2]: ** [libengrid/CMakeFiles/libengrid.dir/blenderreader.cpp.o] Error 1 make[1]: * [libengrid/CMakeFiles/libengrid.dir/all] Error 2 make: * [all] Error 2

Could you please help me with this? Thanks!

ftpronk commented 9 years ago

Hello Jawisr, I'm not sure about the (SET CMP0017 OLD) command, but the REPLACE command error is possibly due to a difference in cmake version, as Ubuntu 14.04 ships with version 2.8 and we are using 3.0.2. Thank you for the update.

What is certain is that the compilation error is due to a mismatch in vtk versions. EnGrid has been upgraded to use VTK version 6.0 or higher, which lead to backward incompatible changes due to modifications in the VTK pipelines. As Debian / Ubuntu are lagging behind in the VTK versions shipped with their systems, this means you will have to compile VTK 6.0 or 6.1 (recommanded) on your machine from source. VTK also makes use of cmake, so this should make the compilation process easy.

Kind regards, F.

Jawisr commented 9 years ago

Thanks ftpronk, I'll try to update both cmake and VTK versions and try again. I'll let you know if it works.

ftpronk commented 9 years ago

It should normally work fine with cmake 2.8 as well, so you don't need to upgrade to 3.0.2

Jawisr commented 9 years ago

Hi again, I updated VTK to 6.1, and finally could run ccmake without errors. The problem comes when running make install, it shows following error:

javier@javier-ubuntu:~/engrid-master/build$ make install [ 1%] Building CXX object libengrid/CMakeFiles/libengrid.dir/boundarylayeroperation.cpp.o In file included from /home/javier/engrid-master/src/libengrid/boundarylayeroperation.cpp:26:0: /home/javier/engrid-master/src/libengrid/cgaltricadinterface.h:60:11: error: ‘Intersection_and_primitive_id’ in ‘CgalTriCadInterface::TriangleTree {aka class CGAL::AABB_treeCGAL::AABB_traits<CGAL::Simple_cartesian<double, CGAL::AABB_triangle_primitiveCGAL::Simple_cartesian<double, CGAL::Triangle_3CGAL::Simplecartesian> > >}’ does not name a type typedef TriangleTree::Intersection_and_primitiveid::Type Intersection; ^ make[2]: ** [libengrid/CMakeFiles/libengrid.dir/boundarylayeroperation.cpp.o] Error 1 make[1]: * [libengrid/CMakeFiles/libengrid.dir/all] Error 2 make: * [all] Error 2

Thanks in advance for your help!

ftpronk commented 9 years ago

Do you have CGAL-dev installed?

Jawisr commented 9 years ago

I have libcgal-dev and libcgal-qt4-dev installed. I have tried to run make install again and got the same error but at 38%:

[ 38%] Building CXX object libengrid/CMakeFiles/libengrid.dir/boundarylayeroperation.cpp.o In file included from /home/javier/engrid-master/src/libengrid/boundarylayeroperation.cpp:26:0: /home/javier/engrid-master/src/libengrid/cgaltricadinterface.h:60:11: error: ‘Intersection_and_primitive_id’ in ‘CgalTriCadInterface::TriangleTree {aka class CGAL::AABB_treeCGAL::AABB_traits<CGAL::Simple_cartesian<double, CGAL::AABB_triangle_primitiveCGAL::Simple_cartesian<double, CGAL::Triangle_3CGAL::Simplecartesian> > >}’ does not name a type typedef TriangleTree::Intersection_and_primitiveid::Type Intersection; ^ make[2]: ** [libengrid/CMakeFiles/libengrid.dir/boundarylayeroperation.cpp.o] Error 1 make[1]: * [libengrid/CMakeFiles/libengrid.dir/all] Error 2 make: * [all] Error 2

I dont know if this is related with the error but in the step 4. Change the parameters if needed (CMAKE_INSTALL_PREFIX), I dont know what do I have to change so I set all parameters as default.

Thanks for your patience ftpronk,

ftpronk commented 9 years ago

Mm, no. I'm afraid that once more Ubuntu ships and "outdated" package. TriangleTree::Intersection_and_primitive_id was added starting from version 4.3, so unfortunately you will have to compile a more recent version of the CGAL source code. CGAL requires libboost (dev) to be installed, so verify which version of CGAL is compatible with the boost library shipped with Ubuntu 14.04. CGAL also uses cmake, so it should be straightforward.

Jawisr commented 9 years ago

Hi there! I've just compiled CGAL as explained here http://doc.cgal.org/latest/Manual/installation.html#title0. As you said, CGAL version in ubuntu repos is 4.2, I had to download and compile version 4.6 but it took just 2 minutes. After that I've changed CGAL directory and CGAL include directory in the ccmake configure window to point it to the new version folder (installed in my /home)>> (step 4). This has been enough to run make install successfully!! I'm going to try this new branch and see how it works. Maybe I'll need to open a new thread to ask you about new features and so on.

Thanks again ftpronk for your help!

ftpronk commented 9 years ago

You could also have created a ~/local folder to install all your compiled packages in (you specify the install path in ccmake by setting the CMAKE_INSTALL_PREFIX variable), and by adding the ~/local/bin and ~/local/lib path to your PATH and LD_LIBRARY_PATH in your .bashrc, cmake would find the packages automatically. The path variables would be set as follows: export PATH=/path_to_home/your_name/local/bin:$PATH export LD_LIBRARY_PATH=/path_to_home/your_name/local/lib:$LD_LIBRARY_PATH

Enjoy enGrid! F.

kateeisenhower commented 9 years ago

Hi there,

I would like to test this new version of enGrid. Unfortunately I am quite new to the whole concept and mechanisms at github. Is this src folder in the master branch the developer beta for version 1.5 then? How can I see the improvements that have been made comparing it to version 1.4?

Thanks for making enGrid open source and thanks for an answer in advance,

Kate

Am 22.06.2015 um 20:06 schrieb ftpronk notifications@github.com:

Hi there. EnGrid can now best be compiled using the cmake build system. To have the latest version:

  1. Pull the latest code from the master branch.
  2. Create a ./build directory within the engrid directory
  3. Go into ./build and run: ccmake ../src
  4. Change the parameters if needed (CMAKE_INSTALL_PREFIX)
  5. Press [c] to configure and then [g] to generate. Cmake will exit automatically if all went well.
  6. Run: make install That should do the trick.

Kind regards, F.

— Reply to this email directly or view it on GitHub https://github.com/enGits/engrid/issues/52#issuecomment-114202575.

Jawisr commented 9 years ago

Hi Kate, As you say, the master-branch is the current version under development. I think it has no version number yet but it should be a "1.5 beta". As I have seen in the last days this new version allow you to create polyhedral meshes in a very easy way. The meshing process is quite similar, with the exception that in 1.4 you have to create BL, tetras and divide BL by steps. In master-branch this process is made in a single step (which I don't like very much since I feel like the user loses control in meshing).

As I told you I couldn't mesh the BL in master-branch because I get the same error all the time "unrealistic height computed", it doesn't matter what the parameters are.

If you have time, try to install master-brach but I recommend to start with 1.4 since is easier to install and to use.

Regards and welcome to engrid comunity!

ftpronk commented 9 years ago

Hello Kate and Jawisr,

The master branch is indeed 1.5 unstable. The code has changed significantly with respect to v1.4, so the two versions are not comparable, and 1.4 is no longer supported or developed. The new version has better support for prismatic boundary layers and uses more robust meshing algorithms.

Kind regards, F.

kateeisenhower commented 9 years ago

Hello,

when I compile the latest version according to the following steps, do I still keep enGrid 1.4 on my system. If not, how can I install the latest version while keeping version 1.4?

Thanks for your help,

Kate

Am 22.06.2015 um 20:06 schrieb ftpronk notifications@github.com:

Hi there. EnGrid can now best be compiled using the cmake build system. To have the latest version:

  1. Pull the latest code from the master branch.
  2. Create a ./build directory within the engrid directory
  3. Go into ./build and run: ccmake ../src
  4. Change the parameters if needed (CMAKE_INSTALL_PREFIX)
  5. Press [c] to configure and then [g] to generate. Cmake will exit automatically if all went well.
  6. Run: make install That should do the trick.

Kind regards, F.

— Reply to this email directly or view it on GitHub https://github.com/enGits/engrid/issues/52#issuecomment-114202575.

ftpronk commented 9 years ago

Hello Kate,

It depends on how they are installed, and which operating system you are using. On Linux, if 1.4 is installed from a system package and 1.5 is compiled, you keep both.
If both are compiled and installed in the same ~/local/bin folder (or any other central folder of your choice) than the latest compiled executable will overwrite the previous one.
If you compile the two versions in separate folders and only execute the compiled enGrid executable from within those folders (i.e. they are not installed in a central folder), than both are kept without issues. I guess that is also the safest installation solution, library-depend wise. You can then also alias the executables in your .bashrc to be able to run them from anywhere in a terminal with: alias engrid1.4="/path/to/engrid1.4/bin/engrid" alias engrid1.5="/path/to/engrid1.5/bin/engrid"

Kind regards, F.

klausbu commented 8 years ago

Hi,

I run into the following, tetgen related issue at step 6 = make install:

[ 0%] Built target tet [ 1%] Built target tetgen make[2]: * Keine Regel vorhanden, um das Target »/home/klaus/Downloads/engrid-master/src/libengrid/resources/solvers/DrNUM-1.0/drnumLowSpeed/standard/control/main.dnc«, benötigt von »libengrid/qrc_engrid.cxx«, zu erstellen. Schluss. make[1]: * [libengrid/CMakeFiles/libengrid.dir/all] Fehler 2 make: *\ [all] Fehler 2

How can I fix that?

ftpronk commented 8 years ago

Hello,

Some ancillary changes have been pushed in preparation of a future enGrid release.

For the time being, you can checkout the latest "stable" commit which should be commit: d81ae489d54cb5bb71e318ec17296a27645fb55e

Kind regards, F.