Channelflow

Channelflow is a direct numerical simulator for incompressible Navier-Stokes channel flow, written in C++.
Download

Channelflow Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • John F. Gibson
  • Publisher web site:
  • http://www.nongnu.org/channelflow/

Channelflow Tags


Channelflow Description

Channelflow is a direct numerical simulator for incompressible Navier-Stokes channel flow, written in C++. Channelflow is a direct numerical simulator for incompressible Navier-Stokes channel flow, written in C++.Channelflow application simulates fluid flow in a rectangular box, with no-slip boundary conditions on the upper and lower surfaces of the box, and periodic boundary conditions in the stream and spanwise directions.Channelflow uses a spectral discretization in spatial directions (Fourier x Chebyshev x Fourier) and finite-differencing in time, on primitive variables (3D velocity and pressure).Here are some key features of "Channelflow":Flexible object-oriented programming· Channelflow is written as a C++ class library. The classes act as building blocks for expressing particular channel-flow simulations and associated data analysis, and underneath these, the mathematical structures needed to perform the calculations. Channelflow provides classes for representing Chebyshev expansions, Fourier x Chebyshev x Fourier expansions, DNS algorithms, and a number of differential equations. Each class has automatic memory management and a set of high-level elemental operations, so that auxiliary data fields and computations can be added to a program with a few lines of code. · In channelflow, even the DNS algorithm is an object. This greatly increases the flexibility of DNS computations. For example, a DNS can be reparameterized and restarted multiple times within a single program, multiple independent DNS computations can run side-by-side within the same program, and DNS computations can run as small components within a larger, more complex computations. As a result, comparative calculations that formerly required coordination of several programs through shell scripts and saved data files can be done within single channelflow program. Organized, readable library code · Channelflow uses object-oriented programming and data abstraction to maximize the organization and readability of its library code. Channelflow defines about a dozen C++ classes that act as abstract data types for the major components of spectral channel-flow simulation (diagram of class libraries). Each class forms a level of abstraction in which a set of mathematical operations are performed in terms of lower-level abstractions, from time-stepping equations at the top to linear algebra at the bottom. The channelflow library code thus naturally reflects mathematical algorithm, both in overall structure and line-by-line. One can look at any part of the code and quickly understand what role it plays in the overall algorithm. One can learn the algorithm in stages, either top-down or bottom-up, by focusing on one level of abstraction at a time.· Moderately general: Channelflow provides elemental algebraic and differential operators for its mathematical classes, so that most quantities of interest can be calculated with a few lines of code. However, Channelflow is not general regarding geometry: it works only with rectangular geometries with two periodic and one nonhomogeneous direction. · Configurable: For example, channelflow's DNS algorithms implement a variety of time-stepping schemes, external constraints, and methods of calculating nonlinear terms. · Extendable: The library code is structured to take small-scale extensions such as additional time-stepping schemes. Channelflow's object-oriented, modular structure allows channelflow simulations to be embedded as small components within larger, more complex computations. · Verifiable: The source distribution contains a test suite that verifies the correct behavior of major classes. · Documented: The Channelflow User's Manual contains annotated program examples, discussion of design, an overview of the main classes from a user's perspective, and a review of the mathematical algorithm. · Supported: Channelflow has a support website. with public CVS access, support-request and bug-tracking systems, etc. · Fast: Channelflow is as fast as comparable Fortran codesWhat's New in This Release:· The documentation was improved.· The dependency on Octave was removed.· Minor bugs were fixed.


Channelflow Related Software