underworldcode / underworld1

1 stars 1 forks source link

Installation Error #3

Closed btokay closed 6 years ago

btokay commented 6 years ago

Dear All,

I was trying to install underworld1 in xubuntu 16.04. After typing command "./scons.py", something wrong stopped processing and then I got the error as following;

scons: *** [build/PICellerator/Common/src/Ppc.os] Error 1 scons: building terminated because of errors.

I do not know what happened in the installation since ./configure.py did not give any error output as below. What should I do to fix this problem? Could you please help me?

Best regards,

daieren@daieren:~/Desktop/underworld1$ ./configure.py scons: Reading SConscript files ... Checking whether the C compiler worksyes Checking for Geothermal... yes Checking for package libm... yes Checking for package libXML2... yes Checking for package MPI... yes Checking for package HDF5... no Checking for package spatialdata... no Checking for package Python... yes Checking for package PETSc... yes Checking for package PETScExt... no Checking for package libPNG... yes Checking for package libavcodec... yes Checking for package gl2ps... yes Checking for package OSMesa... yes Checking for package X11... yes Checking for package SDL... no Checking for package Glut... yes Checking for package OpenGL... yes

Saved configuration: "config.cfg" C compiler: 'mpicc' C flags: -g -O0 -Wall C preprocessor: ['HAVE_LIBM', 'HAVE_LIBXML2', 'HAVE_MPI', 'HAVE_PYTHON', 'HAVE_PETSC', 'DEBUG'] Libraries: ['python2.7', 'xml2', 'm', 'petsc']

Saved configuration: "output.cfg" C preprocessor: ['HAVE_LIBPNG', 'HAVE_LIBAVCODEC', 'HAVE_GL2PS', 'DEBUG'] Libraries: ['gl2ps', 'avcodec', 'avutil', 'avformat', 'png'] Delete("viewer.cfg") Delete("offscreen.cfg")

Saved configuration: "viewer.cfg" C preprocessor: ['HAVE_X11', 'HAVE_GLUT', 'HAVE_OPENGL', 'DEBUG'] Libraries: ['GL', 'GLU', 'glut', 'X11']

Saved configuration: "offscreen.cfg" C preprocessor: ['HAVE_OSMESA', 'DEBUG'] Libraries: ['OSMesa', 'GLU', 'GL']


scons: done reading SConscript files. scons: Building targets ... scons: `.' is up to date. scons: done building targets.

jmansour commented 6 years ago

Hi @daieren

We have an Underworld1 docker image you should consider using. Installing docker on xubuntu should be straightforward.

Then, to use the image, you would use a command like this

$ docker run -v $PWD:/workspace lmoresi/underworld1 Underworld YourModel.xml

To break this command down, we have:

docker run: instructs that we wish to run a docker image. -v $PWD:/workspace: instructs to map the current working directory ($PWD), to a directory inside the container (/workspace). lmoresi/underworld1: directs which image to run (it will be download it if it isn't locally available), Underworld YourModel.xml: what command to run inside the container.

If you wish to persevere with the local install, note that Underworld1 will most probably not be compatible with the latest versions of petsc (and the configure may not have caught this). You will need to install an earlier version of petsc (probably petsc 3.4). If it still fails, please run

$ ./scons.py detail=1

and then post the details here.

Mandatory note: You really should consider switching to Underworld2. We no longer update Underworld1, and can only provide minimal support.

btokay commented 6 years ago

Hi @jmansour,

Thanks for your helpful reply. Due to being a newbie to numerical modeling, I want to learn completely installation of that version. After understanding all concepts in underworld, I plan to shift my focus onto the newest version. Further, if I can achieve installation of underworld, one of my purposes is to use it in a course related to tectonics or geodynamics in my department.

After installing earlier version of petsc in my computer, here is the result of ./scons.py detail=1:

daieren@daieren:~/underworld1$ ./scons.py detail=1
scons: Reading SConscript files ...
Delete("build/gLucifer/Viewer/offscreen.cfg")
Copy("build/gLucifer/Viewer/output.cfg", "output.cfg")
Copy("build/gLucifer/Viewer/viewer.cfg", "viewer.cfg")
Copy("build/gLucifer/Viewer/offscreen.cfg", "offscreen.cfg")
scons: done reading SConscript files.
scons: Building targets ...
mpicc -o build/PICellerator/Common/src/Ppc.os -c -g -O0 -Wall -fPIC -DCURR_MODULE_NAME="\"Common\"" -DHAVE_LIBM -DHAVE_LIBXML2 -DHAVE_MPI -DHAVE_PYTHON -DHAVE_PETSC -DDEBUG -DSYSTEM_SIZEOF_LONG=8 -DMODULE_EXT="\"so\"" -DLIB_DIR="\"/home/daieren/underworld1/build/lib\"" -DVERSION="\"UNKNOWN\"" -DPATH="\"UNKNOWN\"" -DBRANCH="\"UNKNOWN\"" -DSOURCE_FILE="\"Ppc.c\"" -I/usr/include/libxml2 -I/usr/include/python2.7 -I/home/daieren/petsc-3.4.5/include -I/home/daieren/petsc-3.4.5/arch-linux2-c-debug/include -Ibuild/include -Ibuild/include/PICellerator PICellerator/Common/src/Ppc.c
PICellerator/Common/src/Ppc.c: In function ‘_Ppc_AssignFromXML’:
PICellerator/Common/src/Ppc.c:57:14: warning: variable ‘theDictionary’ set but not used [-Wunused-but-set-variable]
  Dictionary* theDictionary = NULL;
              ^
PICellerator/Common/src/Ppc.c: In function ‘Ppc_Get’:
PICellerator/Common/src/Ppc.c:181:4: error: non-floating-point argument in call to function ‘__builtin_isinf_sign’
    assert( isnan(result[0]) == 0 || isinf(result[0] != 0 ));
    ^
PICellerator/Common/src/Ppc.c: In function ‘_Ppc_VariableConditionFunction’:
PICellerator/Common/src/Ppc.c:224:76: warning: passing argument 4 of ‘FeMesh_CoordGlobalToLocal’ from incompatible pointer type [-Wincompatible-pointer-types]
  FeMesh_CoordGlobalToLocal( self->manager->mesh, elements[0], coordGlobal, &(intPoint.xi) );
                                                                            ^
In file included from build/include/StgFEM/Discretisation/Discretisation.h:86:0,
                 from build/include/StgFEM/StgFEM.h:55,
                 from PICellerator/Common/src/Ppc.c:4:
build/include/StgFEM/Discretisation/FeMesh.h:129:7: note: expected ‘double *’ but argument is of type ‘double (*)[3]’
  void FeMesh_CoordGlobalToLocal( void* feMesh, unsigned element, double* global, double* local );
       ^
scons: *** [build/PICellerator/Common/src/Ppc.os] Error 1
scons: building terminated because of errors.
jmansour commented 6 years ago

Ok, this is the offending error:

PICellerator/Common/src/Ppc.c:181:4: error: non-floating-point argument in call to function ‘__builtin_isinf_sign’
assert( isnan(result[0]) == 0 || isinf(result[0] != 0 ));

For some reason your compiler is picky about the arguments to isinf(). I suggest you just go ahead and remove this line (PICellerator/Common/src/Ppc.c:181) as it is not critical, though I suspect we'll encounter issues further along in the compilation.

lmoresi commented 6 years ago

If you are thinking to use underworld in a class of any kind, I would strongly recommend moving to uw2 from the outset. We started working on this version to overcome all the issues that we found with new users and students. I talked about this in a blog post about our first prototype of uw2 and the arguments still seem valid.

http://www.moresi.info/posts/underworld-2/

Even more important is the fact that we have no capacity to support uw1 and so you are stuck with a outdated libraries and other issues.

L

On 11 Apr 2018, at 11:44 pm, daieren notifications@github.com wrote:

Hi @jmansour https://github.com/jmansour,

Thanks for your helpful reply. Due to being a newbie to numerical modeling, I want to learn completely installation of that version. After understanding all concepts in underworld, I plan to shift my focus onto the newest version. Further, if I can achieve installation of underworld, one of my purposes is to use it in a course related to tectonics or geodynamics in my department.

Here is the result of ./scons.py detail=1

btokay commented 6 years ago

Hi @jmansour & @lmoresi ,

Yes, another errors unfortunately were obtained at once. Ok, I put an end to what I was trying to do in underworld1. Today I am to start working on underworld2 as you suggested crucially. My questions henceforth would come regarding underworld2. Thank you for allocating your time to help me :)

jmansour commented 6 years ago

Yep, UW2 is definitely the way forward! Just learn some Python basics, and you're good to go. Don't hesitate with any questions. 🙂