BGQ OpenFOAM

From oldwiki.scinet.utoronto.ca
Revision as of 13:23, 24 September 2013 by Northrup (talk | contribs)
Jump to navigation Jump to search

Example OpenFOAM on BGQ

To run OpenFOAM on the BGQ

Sample script for running the OpenFOAM tutorial case on BGQ

Parallel OpenFOAM

In order to run OpenFOAM in parallel the problem needs to be decomposed to to match the number of processor cores to be used. OpenFOAM has a [ http://www.openfoam.org/docs/user/running-applications-parallel.php decompsePar] utility that will perform this operation after intial mesh creation. The control for this is done creating a OpenFOAM 'dictionary' called decomposeParDict in the system directory of your case folder. Below is an example file for decomposing the cavity case for running on 16 cores.

system/decomposeParDict


/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.1.1                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

numberOfSubdomains 16;

method          simple;

simpleCoeffs
{
    n               ( 4 4 1 );
    delta           0.001;
}

distributed     no;

roots           ( );


// ************************************************************************* //

Loadleveler Submission Script

The following is a Sample script for running the OpenFOAM tutorial case on BGQ, first doing the pre-processing serially on the front-end p7 node, then running the case on the BGQ using runjob, and then reconstructing the solution again using the front-end node.

#!/bin/sh
# @ job_name           = bgqopenfoam
# @ job_type           = bluegene
# @ comment            = "BGQ Job By Size"
# @ error              = $(job_name).$(Host).$(jobid).err
# @ output             = $(job_name).$(Host).$(jobid).out
# @ bg_size            = 64
# @ wall_clock_limit   = 30:00
# @ bg_connectivity    = Torus
# @ queue 

#----------------- Preprocessing on FEN ------------
module purge
module load FEN/OpenFOAM
source $FOAM_DOT_FILE

$FOAM_APPBIN/blockMesh
$FOAM_APPBIN/decomposePar

#------------------ Solver on BGQ --------------------
# Load BGQ OpenFOAM modules
module purge
module load binutils/2.23 bgqgcc/4.8.1 mpich2/gcc-4.8.1 OpenFOAM
source $FOAM_DOT_FILE

# Run solver
runjob --np 16 --ranks-per-node=1 --env-all  : $FOAM_APPBIN/icoFoam -parallel

#----------------- PostProcessing on FEN ------------
module purge
module load FEN/OpenFOAM
source $FOAM_DOT_FILE

$FOAM_APPBIN/reconstructPar



Post-Processing

https://support.scinet.utoronto.ca/wiki/index.php/Using_Paraview