FPAL-Stanford-University / PadeOps

Licence: LGPL-3.0 license
A DNS and LES box code

Programming Languages

fortran
972 projects

Projects that are alternatives of or similar to PadeOps

integrated-manager-for-lustre
Integrated Manager for Lustre
Stars: ✭ 64 (+204.76%)
Mutual labels:  high-performance
SSCTaglistView
Customizable iOS tag list view, in Swift.
Stars: ✭ 54 (+157.14%)
Mutual labels:  high-performance
Shizuku
Real time simulation and rendering of free surface fluid
Stars: ✭ 22 (+4.76%)
Mutual labels:  fluid-dynamics
DimensionChain
Main source code of Dimensionchain
Stars: ✭ 20 (-4.76%)
Mutual labels:  high-performance
minstant
Performant time measuring in Rust
Stars: ✭ 109 (+419.05%)
Mutual labels:  high-performance
Kinetic.jl
Universal modeling and simulation of fluid dynamics upon machine learning
Stars: ✭ 82 (+290.48%)
Mutual labels:  fluid-dynamics
yastack
YAStack: User-space network-stack based on DPDK, FreeBSD TCP/IP Stack, EnvoyProxy
Stars: ✭ 90 (+328.57%)
Mutual labels:  high-performance
kwang
High Performance Kotlin Native Web Framework based on Lwan
Stars: ✭ 59 (+180.95%)
Mutual labels:  high-performance
QUB DW HighPerformancePython
Code and more for the QUB Development Weeks event 'High Performance Python'
Stars: ✭ 79 (+276.19%)
Mutual labels:  high-performance
pacxx-llvm
Programming Accelerators with C++ (PACXX)
Stars: ✭ 57 (+171.43%)
Mutual labels:  high-performance
LruClockCache
A low-latency LRU approximation cache in C++ using CLOCK second-chance algorithm. Multi level cache too. Up to 2.5 billion lookups per second.
Stars: ✭ 35 (+66.67%)
Mutual labels:  high-performance
clue
a extremely high performance log library for android. 高性能的Android日志库
Stars: ✭ 27 (+28.57%)
Mutual labels:  high-performance
lubeck
High level linear algebra library for Dlang
Stars: ✭ 57 (+171.43%)
Mutual labels:  high-performance
MKLSparse.jl
Make available to Julia the sparse functionality in MKL
Stars: ✭ 42 (+100%)
Mutual labels:  high-performance
darpc
DaRPC: Data Center Remote Procedure Call
Stars: ✭ 49 (+133.33%)
Mutual labels:  high-performance
canvas-fluid-solver
Real-time fluid simulation in Javascript.
Stars: ✭ 45 (+114.29%)
Mutual labels:  fluid-dynamics
unstructured-finite-volume
Unstructured Finite Volume Solver for Partial Differential Equations
Stars: ✭ 26 (+23.81%)
Mutual labels:  fluid-dynamics
Xproxy
reverse proxy implement in java
Stars: ✭ 20 (-4.76%)
Mutual labels:  high-performance
linear-vs-binary-search
Comparing linear and binary searches
Stars: ✭ 28 (+33.33%)
Mutual labels:  high-performance
PyVLM
Vortex Lattice Method library written in Python
Stars: ✭ 33 (+57.14%)
Mutual labels:  fluid-dynamics

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].