Windows 7 Download and Installation
From KratosWiki
Contents |
Preliminaries: Components needed to install the Kratos
- Last visit for the links: 28 March 2010
- Note that this is a specific case of possible installation of Kratos in a 64 bits computer under Windows 7, and all the different components are not compulsory for the successful use of Kratos. You can select other equivalent C++ compilers, svn, etc. or other versions of those we are presenting.
- Two examples of organization of files are provided. Of course, you should select only one of them.
C++ compiler. Microsoft Visual Studio 2008
- For developers using Windows, we recommend to use Microsoft Visual Studio 2005 or 2008. If you are working with a 64 bits machine, be sure that you include the 64 bits tools in your MSVS installation.
SVN
- It is recommended to use RapidSVN
- The latest released version: 0.12, October 2009, RapidSVN-0.12.0-8051.exe
- Download and run the file:
Kratos Source Code
- By using RapidSVN, the kratos source files can be downloaded by taking the following steps:
- Go to Repository->Checkout and enter the following path to the kratos repository:
- By using RapidSVN, the kratos source files can be downloaded by taking the following steps:
http://kratos.cimne.upc.es/svn/kratos/
- Choose a working directory where module: kratos will be created in your pc
- example A: "C:\Kratos2010"
- example B: "D:"
- "recursive" option have to be signed
- this will create a folder "C:\Kratos2010\kratos" or "D:\kratos" with all the required Kratos files.
- Choose a working directory where module: kratos will be created in your pc
Pre and Post Processor. GiD
- We use GiD as our favourite pre and post-processor.
- Download and install the latest version of GiD. Here we use the latest beta version for 64 bits (GiD9.2.9b-win-x64-Install.exe)
- You should have to install the GiDpost External Library too (latest version, March 2010, ::ftp://gid.cimne.upc.es/pub/gid/Tools/gidpost1.70.zip).
- Unzip the file in your kratos external libraries.
- example A: "C:\Kratos2010\kratos\external_libraries\gidpost" (already existing folder, the one by default)
- example B: "D:\external_libraries\gidpost" (independent folder outside kratos' directory tree)
- Unzip the file in your kratos external libraries.
- To build the GiD postprocess libray:
- Open a DOS console (from Start - Programs - Microsoft Visual Studio 2008 - Visual Studio Tools - System Console
- Run vcvarsall.bat
- Change to the VC Common7\Tools directory (cd ..; cd Common7; cd Tools)
- Run vcvars32.bat
- change to the "gidpost\win" directory (remember, "C:\Kratos2010\kratos\external_libraries\gidpost" or "D:\external_libraries\gidpost")
- And depending on the version you want to compile (probably both of them) invoke:
- To build the GiD postprocess libray:
nmake -f Makefile.vc CFG="Release" nmake -f Makefile.vc CFG="Debug"
- This will create two new folders "gidpost\win\Debug" and "gidpost\win\Release" with the file gidpost.lib for the Debug or Release compilation
- Very important! Finally and only if you have selected a different directory to the default one (example B), copy the existing Jamfile file from the default folder (D:\kratos\external_libraries\gidpost) to the one you are using for the libraries (D:\external_libraries\gidpost)
Scripting Language Python. Python(x,y)
- Before installing Python, consider if you want to use it to plot graphics. In that case, you should check packages (python(x,y), for example) which include matplotlib or other equivalent graphic tools.
- For this example, we will describe the full package Python(x,y) installation.
- Download and run the installation file from http://www.pythonxy.com/ (latest version 2.6.2.0, March 2010, 426 MB, http://ftp.ntua.gr/pub/devel/pythonxy/Python(x,y)-2.6.2.0.exe)
- Everything by default, but it is recommended to:
- select installation for all the users
- select the destination folders (to check the full installation process)
- select all the components to be installed
- folders:
- example A:
- Everything by default, but it is recommended to:
general destination: C:\Program Files (x86)\pythonxy python(x,y) documentation: C:\Program Files (x86)\pythonxy\doc python kernel: C:\Python26 eclipse: C:\Program Files (x86)\pythonxy\eclipse eclipse workspace: C:\Documents\Python mingw: C:\Program Files (x86)\pythonxy\mingw
- example B:
general destination: D:\pythonxy python(x,y) documentation: D:\pythonxy\doc python kernel: D:\Python26 eclipse: D:\pythonxy\eclipse eclipse workspace: D:\Simulations\Python mingw: D:\pythonxy\mingw
- After the installation, you should check that Python has created a folder called "C:\Python26\libs" or "D:\Python26\libs".
Boost Library
- Kratos uses 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 ((http://www.boost.org/doc/tools/build/index.html, latest version 2007) and unzip it in the external libraries folder: "C:\Kratos2010\kratos\external_libraries\boost\boost-build" or "D:\external_libraries\boost\boost-build").
- Open a DOS console and change to the boost-build\jam_src folder
- Run build.bat
- A new folder bin.ntx86 will have been created with a bjam.exe file in it.
- Copy the bjam.exe in the kratos root ("C:\Kratos2010\kratos\external_libraries\boost\boost-build\jam_src\bin.ntx86" to "C:\Kratos2010\kratos", in the example A; "D:\external_libraries\boost\boost-build\jam_src\bin.ntx86" to "D:\kratos", in the example A;)
Step2 - Install the boost library
- You can install and build manually the boost library or you can directly use an installer. As said in the boost webpage: "The easiest way to get a copy of Boost is to use an installer. The Boost website version of this Getting Started guide will have undated information on installers as they become available, or see Boost downloads or the installer provided by BoostPro Computing. We especially recommend using an installer if you use Microsoft Visual Studio, because the installer can download and install precompiled library binaries, saving you the trouble of building them yourself."
- Download and run BoostPro Installer (latest version 1.42.0, 190K, boost_1_42_setup.exe, March 2010). You should register to freely download the file.
Step3 - Environment variables
- Check your environment variables (Control Panel->System and Security->System->Advanced System Settings)
- Define the following variable:
- example A: BOOST_BUILD_PATH = C:\Kratos2010\kratos\external_libraries\boost\boost-build
- example B: BOOST_BUILD_PATH = D:\external_libraries\boost\boost-build
- Define the following variable:
- check your path. In this moment, you probably have got something like (example A):
%CommonProgramFiles%\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Python26;C:\Python26\DLLs;C:\Python26\Scripts;C:\Python26\Lib\site-packages\PyQt4;C:\Python26\gnuplot\bin;C:\Python26\Lib\site-packages\vtk;C:\Python26\OpenCV\bin;C:\Program Files (x86)\pythonxy\console;C:\Program Files (x86)\pythonxy\SciTE-2.01;C:\Program Files (x86)\pythonxy\mingw\bin
- you should add the following boost directories (\external_libraries\boost\boost_1_42; \external_libraries\boost\boost_1_42\lib; \kratos\external_libraries\boost\boost_1_42\bin; \external_libraries\boost\boost-build)
%CommonProgramFiles%\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Python26;C:\Python26\DLLs;C:\Python26\Scripts;C:\Python26\Lib\site-packages\PyQt4;C:\Python26\gnuplot\bin;C:\Python26\Lib\site-packages\vtk;C:\Python26\OpenCV\bin;C:\Program Files (x86)\pythonxy\console;C:\Program Files (x86)\pythonxy\SciTE-2.01;C:\Program Files (x86)\pythonxy\mingw\bin;C:\Kratos2010\kratos\external_libraries\boost\boost_1_42; C:\Kratos2010\kratos\external_libraries\boost\boost_1_42\lib; C:\Kratos2010\kratos\external_libraries\boost\boost_1_42\bin; C:\Kratos2010\kratos\external_libraries\boost\boost-build
Compiling Kratos
- In the Kratos root folder ("C:\Kratos2010\kratos" or "D:\kratos") copy the Common_Jamroot to Jamroot and then open it with a text editor: select and customize the parts marked as WINDOWS INSTALLATION, as follows (parts in red bold are those that should be modified):
- example A (C:\Kratos2010\kratos; C:\Kratos2010\kratos\external_libraries)
- In the Kratos root folder ("C:\Kratos2010\kratos" or "D:\kratos") copy the Common_Jamroot to Jamroot and then open it with a text editor: select and customize the parts marked as WINDOWS INSTALLATION, as follows (parts in red bold are those that should be modified):
TEXT TEXT
using gcc ; using intel : : : <cxxflags>"-fPIC -ansi -funroll-loops -cxxlib-gcc -openmp -wd654 -wd10010" <cflags>"-fPIC -funroll-loops -cxxlib-gcc -openmp -wd654 -wd10010" ; using sun : : : <cflags>" -w -DBOOST_UBLAS_UNSUPPORTED_COMPILER=0" <cxxflags>" -w -DBOOST_UBLAS_UNSUPPORTED_COMPILER=0" <linkflags>" -w -DBOOST_UBLAS_UNSUPPORTED_COMPILER=0" ; using msvc ;
using msvc ;
using python ; # uncomment and specify compiler to use MPI ##using mpi : /opt/openmpi/1.2.4/bin/mpiCC ; ################################################################################# ## defining "common includes" and external libraries path-constant TOP : . ; #path to the boost library -- FUNDAMENTAL --- ATTENTION: it is IMPORTANT to set to the directory FROM WHICH the boost was installed path-constant BOOST_LIB_DIR : /usr/lib/ ; path-constant BOOST_INCLUDE_DIR : /usr/include/ ; ##blas/lapack lib dir path-constant BLAS_LIB_DIR : /usr/lib/ ; path-constant LAPACK_LIB_DIR : /usr/lib/ ; # Path to CUDA - required to compile and use GPU solvers - strictly optional ##path-constant CUDA_LIB_DIR : /usr/local/cuda/lib ; ##path-constant CUDA_INCLUDE_DIR : /usr/local/cuda/include ; ##path-constant LAPACKPP_LIB_DIR : /usr/local/lapackpp/lib ; #directory in which we installed the LAPACK++ lib ##path-constant LAPACKPP_INCLUDE_DIR : /usr/local/lapackpp/include/lapackpp ; #directory in which we installed the LAPACK++ lib ##decomment and modify for parallel ##path-constant MPI_LIB_DIR : /usr/lib/openmpi/lib/ ; ##path-constant MPI_INCLUDE_DIR : /usr/lib/openmpi/include/ ; ##path-constant TRILINOS_LIB_DIR : /compiled_libraries/trilinos-9.0.1/lib/ ; ##path-constant TRILINOS_INCLUDE_DIR : /compiled_libraries/trilinos-9.0.1/include/ ; ##path-constant METIS_LIB_DIR : /usr/lib/ ; ##path-constant METIS_INCLUDE_DIR : /usr/include/ ; ##path to the mkl library (STRICTLY OPTIONAL) ##path-constant MKL_INCLUDE_DIR : /opt/intel/mkl/10.0.1.014/include/ ; ##path-constant MKL_LIB_DIR : /opt/intel/mkl/10.0.1.014/lib/ ; project KratosProject : ############################################################################# ############### TO BE CUSTOMIZED -- LINUX VERSION EXAMPLE!! ################# ## requirements <include>$(BOOST_INCLUDE_DIR) #to be CUSTOMIZED ## <include>/usr/include/python2.5/ #to be CUSTOMIZED ## <include>$(TOP)/kratos ## <include>$(TOP)/external_libraries ############################################################################# ############################################################################# ############### TO BE CUSTOMIZED -- WINDOWS VERSION EXAMPLE!! ############### requirements <include>"C:\Kratos2010\kratos\external_libraries\boost\boost_1_42" #to be CUSTOMIZED <include>"C:\Python26\include" #to be CUSTOMIZED <include>$(TOP)/kratos <include>$(TOP)/external_libraries ############################################################################# ##omptl - necessary for parallelism <include>$(TOP)/external_libraries/omptl #basic configurations <threading>multi <define>NDEBUG ### <toolset>intel:<define>_GCC_LIMITS_H_ #compiler settings - can be CUSTOMIZED by the user #WARNING -fPIC is NEEDED to compile on 64 bit systems - it has to be specified here in order to include it in the #kratos "static" library <warnings>on #gcc settings <toolset>gcc:<cflags>"-fPIC -funroll-loops" ##settings for external libraries <toolset>gcc:<cxxflags>"-fPIC -ansi -funroll-loops -ffast-math -Wno-unknown-pragmas" #msvc settings <toolset>msvc:<linkflags>"/NODEFAULTLIB:libcmt" <toolset>msvc:<cxxflags>"/D_SCL_SECURE_NO_DEPRECATE /wd4335" #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 ############################################################################# ############### TO BE CUSTOMIZED -- LINUX VERSION EXAMPLE!! ################# ##lib pythonlib : : <name>python2.5 ; ##lib boost_python_lib : : <variant>debug <name>boost_python-mt-d <search>$(BOOST_LIB_DIR) ; ##lib boost_python_lib : : <variant>release <name>boost_python-mt <search>$(BOOST_LIB_DIR) ; ############################################################################# ############################################################################# ############### TO BE CUSTOMIZED -- WINDOWS ################# lib pythonlib : : <name>python26 <search>"C:/Python26/libs " ; lib boost_python_lib : : <variant>debug <name>boost_python-vc90-mt-gd-1_42 <search>"C:/Kratos2010/kratos/external_libraries/boost/boost_1_42/lib" ; lib boost_python_lib : : <variant>release <name>boost_python-vc90-mt-1_42 <search>"C:/Kratos2010/kratos/external_libraries/boost/boost_1_42/lib" ; ############################################################################# #blas and lapack libraries lib blaslibrary : : <name>blas <search>$(BLAS_LIB_DIR) <link>shared ; lib lapacklibrary : : <name>lapack <search>$(LAPACK_LIB_DIR) <link>shared ; #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 ; alias libomp : : <toolset>msvc ; alias libomp : : <toolset>sun ; ## MPI LIBRARIES - comment out if using mpi is not required ##lib mpilibrary : : <name>mpi <search>$(MPI_LIB_DIR) ; ##lib mpilibrary_cpp : : <name>mpi_cxx <search>$(MPI_LIB_DIR) ; ################################################################################# # IN PRINCIPLE THIS SHOULD REQUIRE NO CUSTOMARIZATION .. apart for compiling new applications ## defining "ids" for the different projects use-project /kratos-prj : . ; ##gid post library use-project /kratos-prj/gidpost : "D:/external_libraries/gidpost" ; ##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 ; use-project /kratos-prj/MeshingApplication : $(TOP)/applications/MeshingApplication ; ##use-project /kratos-prj/Qcompressible_fluid_application : $(TOP)/applications/Qcompressible_fluid_application ; ## REQUIRES METIS TO BE INSTALLED ##use-project /kratos-prj/MetisApplication : $(TOP)/applications/metis_application ; ## REQUIRES TRILINOS TO BE INSTALLED ##use-project /kratos-prj/TrilinosApplication : $(TOP)/applications/trilinos_application ; ## MKL solvers: will not be compiled by default ################################################### ## this requires intel MKL library (v. 10.0.1.014) installed properly on your system ############## #use-project /kratos-prj/mkl_solvers_application : $(TOP)/applications/mkl_solvers_application ; # GPU Solvers: needs CUDA to be installed and appropriate environment variable set, a GT200 series GPU card (GTX260, GTX 280, etc.) with the *latest* driver installed # Before trying to compile this application, go to "~/kratos/applications/gpu_solvers_application/custom_external_libraries" and issue a "./build.sh" to build the "gpu_sparse.a" library use-project /kratos-prj/gpu_solvers_application : $(TOP)/applications/gpu_solvers_application ; ################################################################################################### alias libkratos_static : /kratos-prj/kratos//libkratos/<link>static ; alias gidpost : /kratos-prj/gidpost//gidpost/<link>static ; ################################################################################# ## 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/MeshingApplication//install # /kratos-prj/FSIapplication//install # /kratos-prj/mkl_solvers_application//install # /kratos-prj/Qcompressible_fluid_application//install # /kratos-prj/MetisApplication//install # /kratos-prj/TrilinosApplication//install # /kratos-prj/gpu_solvers_application//install ; ECHO $(TOP) ;
- example B (D:\kratos; D:\external_libraries)
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:
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