Windows Installation

From KratosWiki
Revision as of 14:10, 9 January 2008 by Nelson (Talk | contribs)
Jump to: navigation, search

Contents

Preliminar components to use Kratos

Last visit for the links: 30 November 2007

CVS

It is recommended to use this: Concurrent Versioning SystemCvs.png
  1. Go to the Download Section
  2. Take the Latest Recommended Release (you can download directly here the WinCvs 2.0.2.4 (released 2005-08-15)
  3. Ask for a username and password to the Kratos Administrator (directly here o by email)

Python

Python can be downloaded from here

C++ Compiler

For developers under Windows, we recommend to use Microsoft Visual Studio 2005

Boost Library

Kratos use the Boost library.

Boost provides free peer-reviewed portable C++ source libraries.

Step1 - Install the building system

The compilation of both the Kratos and the Boost-library is performed using bjam which is a portable "make" like system and manages the compilation. Bjam has configuration files for many different compilers. This configuration files are contained in the "boost-build".

The following steps are needed to install the build system:

  • Downlodad precompiled bjam for windows (see www.boost.org -> getting started).
  • Put the bjam.exe in a place in the "path" (Note that the executalble can be used only if it is in a location in the "PATH" or in the "current" directory)
  • Downloaded the latest release of the boost-build from Download section and extract for example in the directory "c:\boost-build\"
  • Configure the environment variable BOOST_BUILD_PATH=c:\boost-build (set it to the installation path you choosed for boost-build).

Step2 - Install the boost library

The Kratos needs the boost library to be installed in the system. This implies that both the source files and the compiled libraries should be available on the system.

An "easy" way exists to install boost library under windows 32bit:

You can get the setup file from Boost Consulting. The setup file ask you about the components you want to install and the compiler and path to install:

  1. Select the mirror you want. (the random mirror works fine for me)
  2. Select:
    1. the multithread dll AND multithread debug dll
  3. Select at least: (full install is suggested)
    1. the Boost header files
    2. Source and Documentation
    3. Tools (source and binary)
    4. Boost Python
  4. Introduce the installing path. (i.e C:\kratosR1\external_libraries\boost_1_34_1\)

NOTE: These binaries are compiled for 32bit machines. In order to compile 64bit code (on windows 64bit) you MUST recompile the boost python library by going to the boost directory and recompile the boost python using bjam:

   bjam --toolset=msvc --libdir=lib python


Another option for the installation of the boost library is to install the source code and compile it as follows:

  1. Go to the Download section
  2. Download the following libraries:
    1. boost (last release in this moment of edition: 1.34.1, July 24, 2007, boost_1_34_1.zip)
      • to be extracted in \kratosR1\external_libraries once kratos source code is installed
  3. compile and install the libraries

GiDpost External Library

We strongly recommend you to use GiD as a pre and post processor.

gidpost is a set of functions (library) for writing postprocess results for GiD in ASCII or binary format.

  1. Go to the library description
  2. Download the zip file
  3. Unzip the file in your_kratos_path\external_libraries\ <\tt>
  4. Open a DOS console
  5. Change to the "gidpost\win" directory
  6. Run vcvars32.bat
  7. And depending on the version you want to compile (probably both of them) invoke:
    1. nmake -f Makefile.vc CFG="Release"
    2. nmake -f Makefile.vc CFG="Debug"

Kratos Source code

In this moment kratos source files can be downloaded using CVS. Using WinCvs the precedure consists of:

  1. open the <tt> Menu->Admin->Login and insert the following CVSROOT :
 :pserver;username=user_name;hostname=kratos.cimne.upc.es;port=2401:/home/kratosR1

where user_name is your user name (which can be obtained contacting to Pooyan) or anonymous for readonly access.

  1. Login using your password (empty for anonymous username)
  1. Open the Menu->Remote->CheckoutModule
    1. Module name: KratosR1
    2. Local folder: the folder you want to copy your Kratos directory. (the default C:\ is fine)
    3. Choose the same CVSROOT as for login and press OK.

It's important to finish all these steps with ***** CVS exited normally with code 0 *****

Compiling Kratos

  1. Copying the Common_Jamroot to Jamroot
   copy Common_Jamroot Jamroot

modify the highlighted parts of the Jamroot respecting to the installing path of libraries

   using gcc ;
   using intel : : : <cxxflags>"-fPIC -ansi -funroll-loops -cxxlib-gcc -openmp -wd654" ;
   ## using intel : : : <cxxflags>"-fPIC -ansi -funroll-loops -cxxlib-gcc -openmp -diag-enable sv3 -wd10010 -wd654" ;
   
   
   
   #################################################################################
   ## defining "common includes" and external libraries
   path-constant TOP : . ;
   project KratosProject 
   	:
   	requirements <include>/usr/include/boost    #to be customarized
   	    		 <include>/usr/include/python2.5/  #to be customarized 
            <include>$(TOP)/kratos
   		     <include>$(TOP)/external_libraries
   
   	    	     ##omptl - necessary for parallelism
   	    	     <include>$(TOP)/external_libraries/omptl
   	    		
   	    		#basic configurations
   	    	     <threading>multi
   	    	     <define>NDEBUG
       
   	    		 #compiler settings - can be customarized by the user
   	    		 #WARNING -fPIC is NEEDED to compile on 64bit systems - it has to be specified here in order to include it in the 
   	    		 #kratos "static" library
   	    		 <warnings>on
   
   	    		 #gcc settings
   	    		<toolset>gcc:<cxxflags>"-fPIC -ansi -funroll-loops -ffast-math" 
   
   	    		#intel settings
   		##	<toolset>intel:<cxxflags>"-fPIC -ansi -funroll-loops -ffast-math" 
   	: 
   		     default-build release
   	;
   
   #################################################################################
   ## defining "common external libraries" 
   ## the user should adapt this depending on the installations directories on his system
   lib pythonlib : : <name>python2.5 ;          #the name can be found int the python libs
                                                #directory and look for pythonXX.lib file
   lib boost_python_lib : : <name>boost_python-gcc-mt-1_33_1 ;   #the name can be found int the boost lib
                                                                 #directory and look for boost_python-vc80-mt-XXXXXX.dll file
   
   #attention: this is configured for LINUX ... replace the directory for windows version
   lib gidpost : : <name>gidpost <search>$(TOP)/external_libraries/gidpost/unix/release ;
   
   #intel omp library...
   lib intelomp  : : <name>guide  ; 
   
   #ATTENTION: "this requires adding threading=multi to the bjam call"
   alias libomp : intelomp : <toolset>intel ;
   alias libomp : : <toolset>gcc ;
   
   
   #################################################################################
   # IN PRINCIPLE THIS SHOULD REQUIRE NO CUSTOMARIZATION .. apart for compiling new applications
   ## defining "ids" for the different projects
   use-project /kratos-prj : . ;
   
   ##kratos base library and python interfaces
   use-project /kratos-prj/kratos : kratos ; 
   
   ##applications included in the compilation
   use-project /kratos-prj/PFEMapplication : $(TOP)/applications/PFEMapplication ;
   use-project /kratos-prj/incompressible_fluid_application : $(TOP)/applications/incompressible_fluid_application ;
   use-project /kratos-prj/structural_application : $(TOP)/applications/structural_application ;
   use-project /kratos-prj/convection_diffusion_application : $(TOP)/applications/convection_diffusion_application ;
   use-project /kratos-prj/ExternalSolversApplication : $(TOP)/applications/ExternalSolversApplication ;
   use-project /kratos-prj/ULFapplication : $(TOP)/applications/ULFapplication ;
   use-project /kratos-prj/ALEapplication : $(TOP)/applications/ALEapplication ;
   use-project /kratos-prj/FSIapplication : $(TOP)/applications/FSIapplication ;
   
   #################################################################################
   ## installation
   alias install :
   	    	/kratos-prj//kratos 
   	    	/kratos-prj/PFEMapplication//install
   	    	/kratos-prj/incompressible_fluid_application//install
   	    	/kratos-prj/structural_application//install
   	    	/kratos-prj/convection_diffusion_application//install
   	    	/kratos-prj/ExternalSolversApplication//install
   	    	/kratos-prj/ULFapplication//install
   	    	/kratos-prj/ALEapplication//install
   #		/kratos-prj/FSIapplication//install
   		;
   
   ECHO $(TOP) ;


Finally compiling the Kratos using bjam

   bjam toolset=msvc threading=multi -j2

the "-j2" flag is to compile using 2 processors. Omitting it implies compiling with a single processor. "-jN" to compile with N processors

Visual Studio Project

A simple interface for the compilation using Microsoft Visual Studio 2005 is provided at the link:

File:Visual Studio 2005 ide.zip

To use it simply download the file and unpack it in the directory "kratosR1". The file treats the bjam as a makefile and allows compiling inside the visual studio environment

Personal tools
Categories