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。

  • 相关阅读:
    Sql Server 2008卸载后再次安装一直报错
    listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
    Sql Server 2008修改Sa密码
    学习正则表达式
    Sql Server 查询第30条数据到第40条记录数
    Sql Server 复制表
    Sql 常见面试题
    Sql Server 简单查询 异步服务器更新语句
    jQuery stop()用法以及案例展示
    CSS3打造不断旋转的CD封面
  • 原文地址:https://www.cnblogs.com/pandaroll/p/8934405.html
Copyright © 2011-2022 走看看