Coder Social home page Coder Social logo

wenkai-fluid / broadcast Goto Github PK

View Code? Open in Web Editor NEW

This project forked from drwanghan/broadcast

0.0 0.0 0.0 260 KB

The open-source CFD code called BROADCAST discretises the compressible Navier-Stokes equations and then extracts the linearised N-derivative operators through Algorithmic Differentiation (AD) providing a toolbox for laminar flow dynamics.

License: Mozilla Public License 2.0

Python 37.41% C 15.25% Fortran 40.68% Forth 6.66%

broadcast's Introduction

'srcfv' folder includes BROADCAST source -> Compilation inside this folder must be done to run the code

'misc' folder includes Jacobian construction and all PETSc functions -> Compilation inside this folder must be done to run the code

'ADFirstAidKit' folder to compute the adjoint through TAPENADE software -> unnecessary for BROADCAST

'SIM' folder includes the self-similar profile generator program -> useful to initialise boundary layer simulations

TO COMPILE BROADCAST:

run all the python compilation programs in the main folder, misc/ and srcfv/: python compile*

Boundary Layer case files:

To compute the baseflow of a boundary layer

card_bl2d_fv.py -> Python card to run BROADCAST code, call BROADCAST.py -> Must be fill in by the user (Numerical param., BROADCAST options...) BROADCAST.py -> main program, call the functions compiled in 'srcfv' and 'misc' folders -> Must be fill in by the user (Mesh, Adim. choice, BC location and type...) card_bl2d_fv_cgns.py & BROADCAST_cgns.py -> same program with a CGNS output (require Cassiopee library) BROADCAST_split_func.py -> equal to BROADCAST.py, only different organisation

meshBL.py -> functions to build different cartesian stretched mesh restart_init.py -> functions to read previous solution to restart simulation (only for cartesian rectangular grids) interpgrid.py -> 1st order interpolation functions only for cartesian rectangular grids compilef90.py -> compile initialisation.f90 and set_bnd.f90 initialisation.f90 -> approximated initialisation of blasius profile set_bnd.f90 -> functions which fill the ref. state inside the BC

For resolvent (global stability) analysis of a boundary layer

DzMatrix.py -> Compute the transverse (z-direction) contributions to the Jacobian for 3D stability computeBLthickness -> Compute different boundary layer thicknesses, it can be used to restrict the resolvent resolvent_all.py -> main functions to perform 2D resolvent analysis, call add. functions inside MISC/PETSc_func.py resolvent_all3D_1block.py -> main functions to perform 3D resolvent analysis

Cylinder case files:

To compute the baseflow of a cylinder

card_cyl2d.py -> Python card to run BROADCAST code for cylinder, call cylinder.py -> Must be fill in by the user (Numerical param., BROADCAST options...) cylinder.py -> main program, call the functions compiled in 'srcfv' and 'misc' folders -> Must be fill in by the user (Mesh, Adim. choice, BC location and type...)

meshCyl.py -> functions to build O-mesh for cylinder

For global stability analysis of a cylinder

DzMatrix_cyl.py -> Compute the transverse (z-direction) contributions to the Jacobian for 3D stability biglobal_cyl.py -> main functions to perform 2D/3D (bi)global stability analysis, call add. functions inside MISC/PETSc_func.py

To compute eigenvalue sensitivity of a cylinder

Product_Adjoint.py -> Normalise adjoint and direct modes with L2 norm or any other user's instructions Hessian_cyl.py -> Compute the product of the Hessian operator with a user-provided mode ProductHessian_cyl.py -> Apply the result returned by Hessian_cyl.py to the adjoint mode to compute the eigenvalue sensitivity

To compute the coefficients of the Weakly Nonlinear Stability analysis (Sipp, Lebedev JFM 2007)

limitcycle_part_all.py -> compute the modes x22 & x20 and the coefficients \mu & \nu

Guidelines for Weakly Nonlinear Stability coefficients computation:

  1. Compute direct mode with biglobal_cyl.py
  2. Compute adjoint mode with biglobal_cyl.py
  3. Normalise direct & adjoint modes with Product_Adjoint.py
  4. Compute Hessian associated with the direct mode with Hessian_cyl.py
  5. Compute modes x22 & x20 and the coefficients \mu & \nu with limitcycle_part_all.py

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.