zoukankan      html  css  js  c++  java
  • Advanced Simulation Library(ASL)&& An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method (IBAMR)

    How to install asl and ibamr tools:

    ASL 和 IBAMR 都是有限元分析的工具,流体力学等,ASL可以使用GPU加速计算,

    主机配置,i7 6代,1060, 32G,500G,ubuntu1604。

    安装ASL、配置依赖、安装、运行测试:

    1.GPU DRIVER && CUDA SDK OpenCL

      在Ubuntu 软件源下载GPU驱动。

      NVIDIA 官网下载cuda run安装包,安装时候不要选择图形图像显示驱动的安装。

    装一些依赖:

    1 sudo apt-get install clinfo dkms xz-utils openssl libnuma1 libpciaccess0 bc curl libssl-dev lsb-core libicu-dev -y
    1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    2 echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
    3 sudo apt-get install mono-complete -y

    2.CMAKE

    1 sudo apt-get install libncurses5-dev cmake-curses-gui -y
    1 sudo apt-get install build-essential -y
    2 wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz
    3 tar xf cmake-3.11.1.tar.gz && cd cmake-3.11.1 && ./configure
    4 make -j8 && sudo make install

    3.OpenGL

    1 sudo apt-get install build-essential libgl1-mesa-dev freeglut3-dev libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev gfortran  doxygen graphviz -y

    4.VTK 

    The Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, image processing, and visualization.

    又是一个神乎其技的开源工具。

    1 sudo apt-get install libvtk6.2
    2 wget https://www.vtk.org/files/release/6.3/VTK-6.3.0.zip
    3 unzip VTK-6.3.0.zip
    4 mkdir VTK-build && cd VTK-build&&ccmake ../VTK-6.3.0

    然后按“c”确认配置生成可编译文件,直到“g”选项出现,然后按“g”即可

    1 make -j8
    2 sudo make install

    5.BOOST

    首先安装一个低版本的boost,这个是给ASL用的。

    1 sudo apt-get install libboost1.58-all-dev -y

    6.ASL

    1 unzip ASL-0.1.7.zip
    2 mkdir build-asl && cd build-asl
    3 cmake -D OpenCL_INCLUDE_DIR=/usr/local/cuda-9.0/include/ -G "Unix Makefiles" ../ASL-0.1.7
    4 cmake -D OpenCL_LIBRARY=/usr/local/cuda-9.0/lib64/libOpenCL.so -G "Unix Makefiles" ../ASL-0.1.7
    5 make -j8
    6 sudo make install

    运行实例:

    1 cd examples/flow/locomotive
    2 wget http://asl.org.il/input_data/locomotive.stl
    3 ./asl-locomotive --input locomotive.stl

    ====================================================================================================================

    安装IBAMR、配置依赖、安装、运行测试:此处已经是旧版的ibamr了下载其源码需要找到GitHub上倒数第二个版本v0.2 https://github.com/IBAMR/IBAMR/releases

    1.安装BOOST

    1 mkdir sfw && cd sfw && mkdir linux && cd linux && mkdir boost && cd boost
    2 unzip boost_1_60_0.zip
    3 mv boost_1_60_0 1.6.0
    4 export BOOST_ROOT=$HOME/sfw/linux/boost/1.6.0
    5 mkdir $BOOST_ROOT/include
    6 ln -s $BOOST_ROOT/boost $BOOST_ROOT/include
    7 sudo apt install libz-dev m4 gfortran -y

    2.安装eigen

    1 cd sfw && cd linux && mkdir eigen && cd eigen 
    2 下载 eigen 3.3.1
    3 tar -jxvf 3.3.1.tar.bz2
    4 cmake eigen-eigen-f562a193118d
    5 make -j8 && sudo make install

    3.安装HDF5

    1 cd sfw/linux && mkdir hdf5 && cd hdf5
    2 下载 hdf5-1.8.16.tar.bz2
    3 tar xvjf ~/hdf5-1.8.16.tar.bz2
    4 cd hdf5-1.8.16
    ./configure 
      CC=gcc 
      CXX=g++ 
      FC=gfortran 
      F77=gfortran 
      --enable-production 
      --disable-debug 
      --prefix=$HOME/sfw/linux/hdf5/1.8.16
    1 make -j8 && make check && sudo make install

    4.安装SILO

    1 cd $HOME/sfw/linux
    2 tar xvfz silo-4.10.tar.gz && cd silo-4.10
    ./configure 
      CC=gcc 
      CXX=g++ 
      FC=gfortran 
      F77=gfortran 
      --prefix=$HOME/sfw/linux/silo/4.10 
      --disable-silex 
    1 make -j8 && sudo make install

    5.安装MUPARSER

    1 sudo apt-get install libmuparser-dev -y

    6.安装OpenMPI

    1 cd $HOME/sfw/linux
    
    2 tar xvfj openmpi-1.10.2.tar.bz2
    3 cd openmpi-1.10.2
    
    ./configure 
      CC=gcc 
      CXX=g++ 
      FC=gfortran 
      F77=gfortran 
      --prefix=$HOME/sfw/linux/openmpi/1.10.2 
      --disable-mpi-cxx-seek 
      --disable-heterogeneous 
      --enable-orterun-prefix-by-default
    
    1 make -j8 && make check && sudo make install

    7.安装PETSC

      7.1首先编译debug 版:

    1 sudo apt-get install libblas-dev liblapack-dev -y
    
    2 cd $HOME/sfw && mkdir petsc && cd petsc
    
    3 wget http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.7.2.tar.gz
    
    4 tar xvfz petsc-3.7.2.tar.gz
    
    5 mv petsc-3.7.2 3.7.2 && cd 3.7.2
    
    6 export PETSC_DIR=$PWD
    
    7 export PETSC_ARCH=linux-debug
    
    ./config/configure.py 
      --CC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      --CXX=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicxx 
      --FC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      --LDFLAGS="-L$HOME/sfw/linux/openmpi/1.10.2/lib -Wl,-rpath,$HOME/sfw/linux/openmpi/1.10.2/lib" 
      --with-debugging=1 
      --with-c++-support 
      --download-hypre=1
    
    1 make && make test

      7.2再编译optimize版:

    1 export PETSC_DIR=$PWD
    
    2 export PETSC_ARCH=linux-opt
    
    ./config/configure.py 
      --CC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      --CXX=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicxx 
      --FC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      --COPTFLAGS="-O3" 
      --CXXOPTFLAGS="-O3" 
      --FOPTFLAGS="-O3" 
      --LDFLAGS="-L$HOME/sfw/linux/openmpi/1.10.2/lib -Wl,-rpath,$HOME/sfw/linux/openmpi/1.10.2/lib" 
      --with-default-arch=0 
      --PETSC_ARCH=$PETSC_ARCH 
      --with-debugging=0 
      --with-c++-support 
      --with-hypre=1 
      --download-hypre=1 
      --with-x=0
    
    1 make && make test

    8.安装SAMRAI

    1 cd $HOME/sfw && mkdir samrai && cd samrai && mkdir 2.4.4&& cd 2.4.4
    
    2 tar xvfz SAMRAI-v2.4.4.tar.gz && mv SAMRAI SAMRAI-2.4.4

    然后要打一个补丁

    1 wget https://github.com/IBAMR/IBAMR/releases/download/v0.1-rc1/SAMRAI-v2.4.4-patch-121212.gz
    
    2 cd SAMRAI-2.4.4
    
    3 gunzip -c ../SAMRAI-v2.4.4-patch-121212.gz | patch -p2
    
    4 ./source/scripts/includes --link
    
    5 cd $HOME/sfw/samrai/2.4.4
    
    6 mkdir objs-debug && cd objs-debug
    
    ../SAMRAI-2.4.4/configure 
      --prefix=$HOME/sfw/samrai/2.4.4/linux-g++-debug 
      --with-CC=gcc 
      --with-CXX=g++ 
      --with-F77=gfortran 
      --with-MPICC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      --with-hdf5=$HOME/sfw/linux/hdf5/1.8.16 
      --without-hypre 
      --with-silo=$HOME/sfw/linux/silo/4.10 
      --without-blaslapack 
      --without-cubes 
      --without-eleven 
      --without-kinsol 
      --without-petsc 
      --without-sundials 
      --without-x 
      --with-doxygen 
      --with-dot 
      --enable-debug 
      --disable-opt 
      --enable-implicit-template-instantiation 
      --disable-deprecated
    
    1 make -j8 &&  sudo make install

    优化版本:

    1 cd $HOME/sfw/samrai/2.4.4 &&mkdir objs-opt &&cd objs-opt
    
    ../SAMRAI-2.4.4/configure 
      CFLAGS="-O3" 
      CXXFLAGS="-O3" 
      FFLAGS="-O3" 
      --prefix=$HOME/sfw/samrai/2.4.4/linux-g++-opt 
      --with-CC=gcc 
      --with-CXX=g++ 
      --with-F77=gfortran 
      --with-MPICC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      --with-hdf5=$HOME/sfw/linux/hdf5/1.8.16 
      --without-hypre 
      --with-silo=$HOME/sfw/linux/silo/4.10 
      --without-blaslapack 
      --without-cubes 
      --without-eleven 
      --without-kinsol 
      --without-petsc 
      --without-sundials 
      --without-x 
      --with-doxygen 
      --with-dot 
      --disable-debug 
      --enable-opt 
      --enable-implicit-template-instantiation 
      --disable-deprecated
    
    1 make -j8 && sudo make install

    9.安装libMesh

    1 cd $HOME/sfw/linux &&mkdir libmesh &&cd libmesh &&mkdir 1.0.0 &&cd 1.0.0
    
    2 wget https://github.com/libMesh/libmesh/releases/download/v1.0.0/libmesh-1.0.0.tar.gz
    
    3 THEN:4 tar xvfz libmesh-1.0.0.tar.gz && mv libmesh-1.0.0 LIBMESH &&cd $HOME/sfw/linux/libmesh/1.0.0 && mkdir objs-debug && cd objs-debug
    
    5 export BOOST_ROOT=$HOME/sfw/linux/boost/1.6.0
    
    ../LIBMESH/configure 
      --prefix=$HOME/sfw/linux/libmesh/1.0.0/1.0.0-debug 
      --with-methods=dbg 
      PETSC_DIR=$HOME/sfw/petsc/3.7.2 
      PETSC_ARCH=linux-debug 
      CC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      CXX=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicxx 
      FC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      F77=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      --enable-triangle 
      --disable-cxx11 
      --disable-openmp 
      --disable-perflog 
      --disable-strict-lgpl 
      --disable-pthreads 
      --disable-cppthreads 
      --disable-unique-ptr
    
    1 make -j8 && sudo make install

    然后安装优化版:

    1 cd $HOME/sfw/linux/libmesh/1.0.0 &&mkdir objs-opt &&cd objs-opt
    
    2 export BOOST_ROOT=$HOME/sfw/linux/boost/1.6.0
    
    ../LIBMESH/configure 
      --prefix=$HOME/sfw/linux/libmesh/1.0.0/1.0.0-opt 
      --with-methods=opt 
      PETSC_DIR=$HOME/sfw/petsc/3.7.2 
      PETSC_ARCH=linux-opt 
      CC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      CXX=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicxx 
      FC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      F77=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      --enable-triangle 
      --disable-cxx11 
      --disable-openmp 
      --disable-perflog 
      --disable-strict-lgpl 
      --disable-pthreads 
      --disable-cppthreads 
      --disable-unique-ptr
    1 make -j8 && sudo make install

    终于到了主角,10.安装IBAMR

    1 cd $HOME/sfw && mkdir ibamr && cd ibamr
    
    2 git clone https://github.com/IBAMR/IBAMR.git
    
    3 THEN:4

    4 tar xvfj ibamr.tar.bz2 && cd $HOME/sfw/ibamr && mkdir ibamr-objs-dbg && cd ibamr-objs-dbg 5 export BOOST_ROOT=$HOME/sfw/linux/boost/1.6.0 && export PETSC_ARCH=linux-debug && export PETSC_DIR=$HOME/sfw/petsc/3.7.2 ../IBAMR/configure CFLAGS="-g -O1 -Wall" CXXFLAGS="-g -O1 -Wall" FCFLAGS="-g -O1 -Wall" CC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc CXX=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicxx FC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 CPPFLAGS="-DOMPI_SKIP_MPICXX" --with-hypre=$PETSC_DIR/$PETSC_ARCH --with-samrai=$HOME/sfw/samrai/2.4.4/linux-g++-debug --with-hdf5=$HOME/sfw/linux/hdf5/1.8.16 --with-silo=$HOME/sfw/linux/silo/4.10 --with-boost=$HOME/sfw/linux/boost/1.6.0 --enable-libmesh --with-libmesh=$HOME/sfw/linux/libmesh/1.0.0/1.0.0-debug --with-libmesh-method=dbg 1 make lib -j8 && make examples -j8

    然后安装优化版本

    1 cd $HOME/sfw/ibamr && mkdir ibamr-objs-opt && cd ibamr-objs-opt && export PETSC_ARCH=linux-opt && export PETSC_DIR=$HOME/sfw/petsc/3.7.2
    
    ../IBAMR/configure 
      CC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      CXX=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicxx 
      F77=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      FC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpif90 
      MPICC=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicc 
      MPICXX=$HOME/sfw/linux/openmpi/1.10.2/bin/mpicxx 
      CFLAGS="-O3 -Wall" 
      CXXFLAGS="-O3 -Wall -std=gnu++11" 
      FFLAGS="-O3 -Wall" 
      FCFLAGS="-O3 -Wall" 
      CPPFLAGS="-DOMPI_SKIP_MPICXX" 
      --with-hypre=$PETSC_DIR/$PETSC_ARCH 
      --with-samrai=$HOME/sfw/samrai/2.4.4/linux-g++-opt 
      --with-hdf5=$HOME/sfw/linux/hdf5/1.8.16 
      --with-silo=$HOME/sfw/linux/silo/4.10 
      --with-boost=$HOME/sfw/linux/boost/1.6.0 
      --enable-libmesh 
      --with-libmesh=$HOME/sfw/linux/libmesh/1.0.0/1.0.0-opt 
      --with-libmesh-method=opt
    make -j8 &&make check

    运行实例程序:

    1 cd $HOME/sfw/ibamr/ibamr-objs-opt/examples/IB/staggered_grid/explicit/ex1
    
    2 make examples
    
    3 ./main2d input2d

    完,qsy。

  • 相关阅读:
    日期时间检查(格式为:YYYY-MM-DD HH:MM:SS)
    日期合法性验证(格式为:YYYY-MM-DD或YYYY/MM/DD )
    [转]Attribute在.net编程中的应用
    WCF
    [转]使用C#开发ActiveX控件
    在 IIS 中承载 WCF 服务
    [转]一个完整的Installshield安装程序实例
    反射
    特性
    迭代器
  • 原文地址:https://www.cnblogs.com/pandaroll/p/8934405.html
Copyright © 2011-2022 走看看