Giter Club home page Giter Club logo

diablo's Introduction

DIABLO

DNS In A Box...Laptop Optimized!

A brief description of DIABLO

diablo.f Main program, define grid, read/write flow, statistics input.dat Set the desired flow parameters fft.f Wrapper for calls to FFTW mpi.f Subroutines for MPI parallelization grid_def Define the dimensions of the grid header Defines all variables and common blocks

Timestepping subroutines: periodic.f Periodic (spectral) in all three directions (done) channel.f Periodic (spectral) in x and z, FD in y (done) duct.f Periodic (spectral) in x, FD in z and y (not done) cavity.f FD in x, y, and z (not done)

User editable subroutines: set_ics.f Prescribe the initial conditions for velocity and scalars save_stats.f Calculate statistics during the simulation courant.f Set the dynamic timestep (optional) based on the CFL number user_rhs.f Add forcing terms to the right hand side for momentum and scalars

In order to run a new case do the following steps:

  1. Create a new run directory
  2. Copy the grid* and input* from an existing case directory and edit them as desired
  3. In the diablo/pre_process directory run create_grid_*.m in matlab or octave to create a new grid for each direction using finite differences (non periodic) and move the created *grid.txt files to the new case directory.
  4. Edit set_ics.f to set the desired initial conditions.
  5. Edit the script “setup_run” and set the rundir variable to match the new directory.
  6. Run “setup_run”. This will create an executable called “diablo” in your run directory.
  7. Run the code from inside the run directory. For example, if using MPI, you could do “mpirun -np diablo >output.dat &” which will run a job in the background and write the output to the file output.dat
  8. Some post processing routines can be found in the post_processing directory along with descriptions on their use.

In finite difference (wall bounded) directions, the grid is defined as follows: (Here the y-direction will be shown, but others should be treated the same) The points outside the domain are ghost cells and are used to apply the desired boundary conditions. In the case of one wall-bounded direction, the X and Z velocities (U1 and U3) are defined at the GYF points along with the pressure. Vertical velocity (U2) is defined at GY points. The GYF points are by definition located halfway between neighboring GY points.

GYF(NY+1) ---
* GY(NY+1) GYF(NY) -----Wall-----
* GY(NY) GYF(NY-1) --- * GY(NY-1) GYF(NY-2) ---

GYF(j+1) --- * GY(j+1) GYF(j) --- * GY(j) GYF(j-1) --- * GY(j-1)

GYF(2) --- * GY(2) GYF(1) -----Wall----- * GY(1) GYF(0) ---

Enjoy!

John

October, 2005

diablo's People

Stargazers

 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

diablo's Issues

Compiling the front branch

Hi, everyone, I'm trying to compile the front branch on NCAR's Cheyenne cluster. The reason for that is that I'm trying to contribute on the code organization (I've talked to @johnryantaylor about it).
I was able to compile previous on this cluster successfully, but I haven't been able to compile the front branch specifically because it fails with the following error:

diablo_io.o periodic.o channel.o courant.o les.o \
duct.o cavity.o fft.o rand.o set_ics.o save_stats.o filter.o user_rhs.o \
mpi.o -L/glade/u/home/tomasc/opt/fftw-2.1.5/lib -lrfftw -lfftw hdf5.o 
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: les.o: in function `compute_strain_chan_':
/glade/work/tomasc/frontcomp/for/les.f:557: undefined reference to `ghost_csij2_mpi_'
Makefile:83: recipe for target 'diablo' failed
make: *** [diablo] Error 1

Which (I think) means that ghost_csij2_mpi is a function/subroutine that was called, but was never defined. And indeed if I try to find that function is the code, I can only find a call to it, but not it's definition:

frontcomp/for$ grep -i ghost_csi *.f
les.f:      call ghost_CSij2_mpi

Does anyone know what happened here?

Thanks!

The Missing Bin subfolder (and bash scripts contained)

From UserGuideDiablo.pdf (in docs subfolder) I knew that there should be a bin subfolder containing bash scripts in the diablo release.
image
And in order to generate a new grid_def file when running a parallel case I have to use many bash scripts (e.g. genGridFiles.sh)
image

However, there is no bin subfolder nor any bash scripts. I also tried to get a clone using Mercurial as told:
hg clone https://[email protected]/edeusebio85/diablo
image
Unfortunately, it seems that this repository no longer exist.
image

Is these bash scripts neccesary or I can run diablo without them?
Diablo is an important part of tasks assigned by my tutor
Help me!o(╥﹏╥)o

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.