Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Jawisr opened this issue Jun 21, 2015 · 18 comments
Closed

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

Jawisr opened this issue Jun 21, 2015 · 18 comments

Comments

@Jawisr
Copy link

Jawisr commented Jun 21, 2015

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
Copy link
Collaborator

ftpronk commented Jun 22, 2015

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
Copy link
Author

Jawisr commented Jun 23, 2015

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
Copy link
Collaborator

ftpronk commented Jun 23, 2015

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
Copy link
Author

Jawisr commented Jun 23, 2015

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

@ftpronk
Copy link
Collaborator

ftpronk commented Jun 23, 2015

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

@Jawisr
Copy link
Author

Jawisr commented Jun 24, 2015

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::Simple_cartesian> > >}’ does not name a type
typedef TriangleTree::Intersection_and_primitive_id::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
Copy link
Collaborator

ftpronk commented Jun 24, 2015

Do you have CGAL-dev installed?

@Jawisr
Copy link
Author

Jawisr commented Jun 24, 2015

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::Simple_cartesian> > >}’ does not name a type
typedef TriangleTree::Intersection_and_primitive_id::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
Copy link
Collaborator

ftpronk commented Jun 24, 2015

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
Copy link
Author

Jawisr commented Jul 20, 2015

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
Copy link
Collaborator

ftpronk commented Jul 20, 2015

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.

@ftpronk ftpronk closed this as completed Jul 20, 2015
@kateeisenhower
Copy link

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 #52 (comment).

@Jawisr
Copy link
Author

Jawisr commented Jul 22, 2015

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
Copy link
Collaborator

ftpronk commented Jul 22, 2015

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
Copy link

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 #52 (comment).

@ftpronk
Copy link
Collaborator

ftpronk commented Jul 22, 2015

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
Copy link

klausbu commented Mar 27, 2016

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
Copy link
Collaborator

ftpronk commented Mar 29, 2016

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:
d81ae48

Kind regards,
F.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants