Topic: Installation of oofem for a beginner...

Hello guys,

I am on the way to install oofem using cygwin, but the Linux interface is completely new for me. If you could provide me some help on the following points, it will be so nice from you:

1) After having run the configure script in oofem-1.7, I get the following message:
“Modules to be included: oofemlib sm tm fm”
“target to be built: oofem-release”
What does that mean ?

2) By running ./configure –enable-oofeg, I get the message that the Elixir Library has not been found (But I have installed Elixir)

3) In order to build the utilities, I go to tools directory and when I run “make all” I get the message “ nothing to be done for `all` ” That`s a problem because I can not do the test as it requires the utilities.

4) The Readme file of oofem says:
“running oofem : the oofem program prints out the available options when run without any option. To run a specific job, you can enter : oofem -f input_file_name”
I Copy-pasted an input file in the oofem-1.7 folder, and when I go on Cygwin and type
" oofem -f NameOfTheFile.in " it says that the oofem command hasn`t been found. But  when I just write
" NameOfTheFile.in ", it says that the lattice2D, the node, the boundaryConditions, the nsteps, the Direct, etc... hasn`t been found, even if they are defined in the file.

Could someone advice me on how to get these problems solved?

Many Thanks in advance

Clam’s

2

Re: Installation of oofem for a beginner...

Hello Clam,
here are the answers:

1)
>What does that mean?
>"Modules to be included: oofemlib sm tm fm"
>"target to be built: oofem-release"

This means that the oofem executable will include following modules (functionality): oofemlib (fem kernel, should be always included), sm (structural analysis module), tm (module for solving transport problems), and fm (fluid mechanics).
The second message "Targets to be built: oofem-release" means that you have configured to build only release version of the solver. The included modules and build targets can be modified using configure options (see README or run "./configure --help" from oofem top directory).

2) Configure script checks some predefined locations for Elixir library. If Elixir is not installed there, but somewhere else, the script will ask for the absolute file system path to Elixir installation dir.

One of the default locations is the directory "Elixir" located in directory containing oofem directory. So for example, in your home directory you can typically have "oofem-1.7" directory with oofem installation and "Elixir" directory with Elixir library.

3) The message " nothing to be done for `all`" means that "all" target has been already done. You have probably already run "make all" command (in this case tools directory will contain "extractor" file).

4)
> Running " oofem -f NameOfTheFile.in " says that the oofem command hasn't been found.
If you happen to be in the directory that where executable is, then you can enter "./oofem -f NameOfTheFile.in" (the './' tells that the file in question is in the directory that you happen to be in).
You may also run oofem by typing the full path to oofem command, so for example: "/home/user_name/oofem-1.7/bin/Debug/oofem -f file.in". Optionally, you may add actual working directory "." into your PATH variable. For example, if your shell is bash, edit ".bash_profile" and add "." into your PATH list.

Hope that this will help,
Borek

Re: Installation of oofem for a beginner...

Hello Borek,

Thank you so much for all these answers... I now understand better !
I will try to install it again with your advices and will keep you informed.

Clam's

Re: Installation of oofem for a beginner...

Hello Borek,

How can I check that oofem has been correctly installed ?
I typed "MAN" in order to check ("man oofem" or "man oofem-1.7") but I get the answer "No manula entry for oofem". That's why I think I still have somethink wrong in my installation.

What's more, I followed your indication in my question number 4 from previous message, but I noticed that I don't have any "bin" file in my "oofem-1.7" file. So I can not put my input file in oofem-1.7/bin/Debug. I tried by adding my input file in my oofem-1.7 folder. Once I am in that folder, I type ./oofem -f NameOfFile.in but I get the message : "bash: ./oofem: no such file or directory"... What does that mean ?

Thanks a lot in advance ...

Clam's

5

Re: Installation of oofem for a beginner...

Hello Clam,

if you have correctly compiled oofem, then in your oofem top directory, you should find subdirectory "bin", followed either by Debug or Release subdirectories (this depends, whether you have built debug or release version). In these dies, you should find the oofem executable. If not, the the compilation was not successfully. For a complete description on oofem installation, see README, here I include only three basic steps, needed to build release version of the solver:

1) change working directory to your oofem top dir (e.g., oofem-1.7)
2) run "./configure"
3) run " make oofem-release"
after last step, oofem executable should be in "bin/Release" directory.

to verify installation:
4) compile tools:
4.1) change working directory to "tools"
4.2) run "make"

5.1) change working directory to "tests"
5.2) run "bash ./do_tests"
5.3) check results by inspecting "results" file

PS: there is no manual page for oofem, all the documentation is located in "doc" subdirectory and online version available on the net.

Borek

Re: Installation of oofem for a beginner...

Hello,

I tryed to start again the installation and I noticed one problem that could be responsible of the wrong installation of oofem: when I go to the src directory in the Ckit folder and type ./configure I obtain 2 warnings telling me that the Ckit Library (and the Ckit includes) are not found at the standard places.

By checking in the Elixir Readme file, they say :

If configure fails to guess its name, and you know of one, set its name on the command line as
         $ CC=cc_I_know_of ./configure
If configure fails to guess where the X libraries and includes are, and if you know where the stuff is, you may set the directories on the command line (see ./configure --help).

So my question is if there is a specific place to locate the Elixir and Ckit folders in order to provide this warning to happen.

This warning happens again by typing ./configure --enable-debug --enable-oofeg in the oofem-1.7 folder. I am asked to type the correct directory for Ckit and Elixir include. I am also asked to type the correct directory for Ckit and Elixir library. But at this stage I noticed that I don't have any libelixir.a file !! Could it be this lack of lebelixir.a file which is responsible of my problem to install oofem ?

Clam

7

Re: Installation of oofem for a beginner...

Hi Clam,

my suggestion is to have a single directory (it can be even your home directory), where you will install Ckit, Elixir, and oofem. So in this directory you should have following folders: Ckit, Elixir, and oofem-1.7.

1) First configure and build Ckit. It has no dependencies, so it should compile smoothly.
Check, that after compilation, there is "libckit.a" in Ckit/src directory.

2) Then configure and build Elixir. This time, the configure should find Ckit libraries.
Check, if there is "libelixir.a" in Elixir/src directory.

3) Finally,  you can go to oofem-1.7 and run configure. When you will fail in any step, please send me the output of configure command, as well as output produced by makefile for that particular step.

I am little bit confused from your last email, you wrote:
>I tryed to start again the installation and I noticed one problem that could be responsible of the wrong installation of >oofem: when I go to the src directory in the Ckit folder and type ./configure I obtain 2 warnings telling me that the Ckit >Library (and the Ckit includes) are not found at the standard places.
seems much more like a message for Elixir configure script, since it depends on Ckit, not from Ckit configure.

>If configure fails to guess its name, and you know of one, set its name on the command line as
>         $ CC=cc_I_know_of ./configure
this should be used when configure could not find C compiler, is this your case? This can explain a lot! Do you have a working c (and c++) compiler?

Borek

Re: Installation of oofem for a beginner...

Hello Borek,

Yes you are right... its Elixir and not Ckit... sorry for the confusion...

Concerning my compiler, I use CYGWIN... is that ok ?

Clam's

9

Re: Installation of oofem for a beginner...

Hi Clam,

Yes, CYGWIN is ok. One colleague from our department is using it with oofem and has no problems.
In fact CYGWIN is distribution, this has nothing to do with compiler. GNU c (and c++) compilers are packages that can be installed.

Please send me the output of ELIXIR configure script. To redirect the output to the file you can use following syntax:

./configure > elixir_configure.log

and send the output to the forum. I hope that this will reveal the problem.

Borek.

Re: Installation of oofem for a beginner...

Hello Borek...

Thank you very much for your help...

The mistake I have done is that I created one too many folder in Elixir: I created a general folder called OOFEM containing the folders oofem-1.7, ckit and elixir. And inside elixir, I had again a folder called elixir containing doc, include and src folders... (same mistake for Ckit) So by running the configuration he couldn't find the path because of this too many step I created...

Now is my OOFEM running !!!
I am so happy !!!  ;-)

Thanks againg for your help...

Clam's

Re: Installation of oofem for a beginner...

Hello Borek:

I'm starting to work with OOFEM- I try-
But I have some problems with the compilation, can you help me? Please
I write ./configure OOFEM_TARGET="oofeg" --enable-oofeg and then the file config.txt brings some
results that indicate mistakes  ( I think). In the party of CORE TESTS there are four packages
after the legend CONFIGURE: FAILED PROGRAM WAS:


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2636: g++ -E  conftest.cpp
conftest.cpp:8:28: ac_nonexistent.h: No such file or directory
configure:2642: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
..
..
..
conftest.cpp:8:28: ac_nonexistent.h: No such file or directory
configure:2747: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
..
..
..
/cygdrive/c/DOCUME~1/SANCHE~1/LOCALS~1/Temp/cci73D8r.o: In function `main':
/cygdrive/c/cygwin/home/oofem-1.8/conftest.cpp:64: undefined reference to `_nearest'
collect2: ld returned 1 exit status
configure:3778: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIMITS_H 1
| #define HAVE_MALLOC_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define TIME_WITH_SYS_TIME 1
| #define HAVE_STRSTR 1
| #define HAVE_STRTOD 1
| #define HAVE_STRTOL 1
| #define HAVE_STRNCASECMP 1
| #define HAVE_ACCESS 1
| /* end confdefs.h.  */
| /* Define nearest to an innocuous variant, in case <limits.h> declares nearest.
|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
| #define nearest innocuous_nearest
|
| /* System header to define __stub macros and hopefully few prototypes,
|     which can conflict with char nearest (); below.
|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|     <limits.h> exists even on freestanding compilers.  */
|
..
..
..
configure:3836: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIMITS_H 1
| #define HAVE_MALLOC_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define TIME_WITH_SYS_TIME 1
| #define HAVE_STRSTR 1
| #define HAVE_STRTOD 1
| #define HAVE_STRTOL 1
| #define HAVE_STRNCASECMP 1
| #define HAVE_ACCESS 1
| /* end confdefs.h.  */
| #include<stdio.h>
| int
..
..

After I run the make OOFEM_TARGET="oofeg" and I have these results


## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
..
..
config.status:663: creating makefile
config.status:663: creating targets/oofeg--enable-oofeg/include/oofemdef.h
config.status:663: creating targets/oofeg--enable-oofeg/makefile
config.status:663: creating targets/oofeg--enable-oofeg/lib/oofemlib/makefile
config.status:663: creating targets/oofeg--enable-oofeg/lib/sm/makefile
config.status:663: creating targets/oofeg--enable-oofeg/lib/tm/makefile
config.status:663: creating targets/oofeg--enable-oofeg/lib/fm/makefile
config.status:663: creating targets/oofeg--enable-oofeg/lib/dss/makefile
config.status:663: creating targets/oofeg--enable-oofeg/lib/main/makefile
config.status:663: creating tools/makefile
config.status:663: creating targets/oofeg--enable-oofeg/include/oofemcfg.h
..
..
..
    if [ -d targets/${OOFEM_TARGET} ]; then \
        cd targets/${OOFEM_TARGET}; ${MAKE} OOFEM_TARGET=${OOFEM_TARGET};\
        echo;\
        echo ${OOFEM_TARGET} target done;\
        echo;\
    else\
        echo ;\
        echo Error: ${OOFEM_TARGET} not configured;\
        echo ;\
    fi

Error: oofeg not configured

This situation is caused for the four packages that I cann't configure?
I don't know if I have problems to use the OOFEM in a laptop

Thanks for your help