Giter Site home page Giter Site logo

fpal-stanford-university / padeops Goto Github PK

View Code? Open in Web Editor NEW
24.0 11.0 24.0 263.8 MB

A DNS and LES box code

Home Page: https://fpal.stanford.edu/

License: GNU Lesser General Public License v3.0

CMake 0.44% Fortran 99.05% Python 0.09% Shell 0.32% PHP 0.09%
fluid-dynamics computational high-performance compact-scheme

padeops's Introduction

README

This README would normally document whatever steps are necessary to get your application up and running.

PadeOps

  • Quick summary : Hybrid OpenMP/MPI derivative operators using Compact Difference (6th and 10th Order) and Spectral (Fourier and Chebyshev) Methods to solve PDEs.
  • Version : 0.1
  • Tutorials : TBD/Incomplete

Current build status

  • master: Build Status
  • devel :
  • cgrid :
  • igrid :
  • sgrid :

How do I get set up?

  • Summary of set up
  • Configuration :
    • The Fortran compiler (FC) (preferably even the CC and CXX variables) need to be set to the desired MPI fortran compiler. Also the FFTW library path (FFTW_PATH) and 2DECOMP&FFT library path (DECOMP_PATH) need to be set.

    • Examples of this are in the setup folder. For your system, either use one of the SetupEnv__.sh files or copy the closest one to your own SetupEnv__.sh. Then, from the main directory (PadeOps), run source setup/SetupEnv_<Machine>_<CompilerID>.sh to set the correct environment variables.

    • Now, build the required dependencies:

      • FFTW
        • Extract the fftw-.tar.gz file in the dependencies folder. Change directory using cd fftw-<version>. Set the envireonment variables F77 and MPICC to the correct fortran and MPI C compilers. Configure the build using ./configure --prefix=<current directory> --enable-avx. Then build the library using make; make install. At the end of this, there should be a folder in this directory called lib and a folder called include with the static library file and the include files respectively.
      • 2DECOMP&FFT
        • Extract the 2decomp_fft.tar.gz file in the dependencies folder. Change directory using 2decomp_fft/src. Now, in the file Makefile.inc.x86, change the FFT= (line 25) to FFT=fftw3_f03. In line 32, change the FFTW_PATH variable to where you installed FFTW in the previous step. In line 57, set the F90 variable to your MPI Fortran compiler (like mpif90). In line 71, change the CC variable to your MPI C compiler. This next step is optional and might be required on some systems. Remove the -lfftw3f flag in line 77 if required for compilation. Make a symbolic link to Makefile.inc using ln -s Makefile.inc.x86 Makefile.inc. Move to the directory above using cd ... Then build the library using make. At the end of this, there should be a folder in this directory called lib and a folder called include with the static library file and the include files respectively. Now set the DECOMP_PATH variable to the current directory in your SetupEnv.sh script.
      • Lib_VTK_IO
        • Extract the Lib_VTK_IO.tar.gz file and cd into the created directory. Make a build directory and move to it using mkdir build; cd build. Then build the library using cmake ..; make. Now, set the VTK_IO_PATH to the current directory in your SetupEnv.sh script.
      • HDF5
        • Extract the hdf5-1.8.18.tar.gz file and cd into the directory created. Configure the build using CC=</path/to/mpicc> FC=</path/to/mpif90> CXX=</path/to/mpic++> ./configure --enable-parallel --enable-fortran --enable-build-mode=production --prefix=<current directory>. Build HDF5 using make; make install. Set the HDF5_PATH variable in the SetupEnv_<MACHINE>_<COMPILER>.sh script to the directory that you built HDF5 in.
    • To build the code, run the following commands:

           mkdir build
           cd build
           cmake ..
           make

Contribution guidelines

  • To merge a branch "dev" to master, use the following commands:
git merge --no-commit dev
git checkout origin/master -- .travis.yml
git commit -m "merge dev into master"

Who do I talk to?

  • Akshay Subramaniam or Aditya Ghate

padeops's People

Contributors

akshaysubr avatar jrweststanford avatar mhowlan3 avatar nsghaisas avatar thakchi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

padeops's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.