Directories | Documentation | Download

FDLIB

FDLIB is a comprehensive software library of FORTRAN 77 (compatible with FORTRAN 90) Matlab, C++, and other codes, covering a broad spectrum of fundamental and applied topics in fluid dynamics. The codes are suitable for self-study, classroom instruction, and fundamental or applied research.

The utility subroutines and simulation codes of FDLIB are pertinent to a variety of disciplines in science and engineering, including applied mathematics and scientific computing, computational physics, biomechanics, aerospace engineering, mechanical engineering, chemical engineering, electrical engineering, and bioengineering.

FDLIB Directories

The thirteen main directories of FDLIB are listed in the following table:

1 Numerical methods 01_num_meth
2 Grids 02_grids
3 Hydrostatics 03_hydrostat
4 Various solutions 04_various
5 Lubrication flows 05_lub
6 Stokes flow 06_stokes
7 Potential flow 07_ptf
8 Hydrodynamic stability 08_stab
9 Vortex motion 09_vortex
10 Boundary-layer flows 10_bl
11 Finite-difference methods 11_fdm
12 Boundary-element methods 12_bem
13 Turbulence 13_turbo

Please click on a subject for a detailed description.

Each main directory contains utility subroutines and simulation programs. The utility subroutines are general-purpose computational modules. The simulation programs are computational engines that drive various simulations.

Public FDLIB

A large subset of FDLIB resides in the public domain and is available subject to the terms of the lesser GNU license agreement.

Download the source code from sourceforge.

To unravel the compressed tar file, on a Unix/Linux system, issue command:

tar xzf FDLIB.xx.xx.tgz

where xx.xx is the version number. This will create Directory FDLIB.xx.xx

General information

A distinguishing feature of FDLIB is that the utility subroutines and simulation programs are compact, specialized, and modular, written in the spirit of well-known general-purpose libraries on numerical methods offered, for example, by IMSL, NAG, and MATLAB.

FDLIB is not a Computational Fluid Dynamics (CFD) library, in the conventional sense of the term. Instead of offering a large memory-demanding program with many options based on one particular numerical method, FDLIB offers instead a host of small- and medium-sized programs that implement a variety of methods.

The execution of the programs requires only a modest amount of computer memory, and the simulations can run on laptop and inexpensive desktop computers.

The intelligent use of the programs requires at least an undergraduate-level understanding of applied mathematics, fluid dynamics, and numerical methods. FDLIB should not be treated as a black box, neither should it be regarded as a device that can be used without a basic understanding of its underpinning.

The FORTRAN codes of FDLIB are written in standard FORTRAN 77 (subset of FORTRAN 90), for compilers that support the END DO extension and allow for in-line comments following an exclamation mark. With proper compilation, as stated in the UNIX makefiles residing in the individual directories, the programs and subroutines should run on any hardware platform.

The input data of the codes are either read from input files (preferred method), or entered from the keyboard in an interactive session. The output is placed in output files in tabular format so that they can be processed and displayed using an independent graphics, visualization, or animation package of choice. The format of the output data can be readily modified in the source code.

Documentation

An in-depth discussion of the governing equations, mathematical formulation, and numerical methods along with the User Guide of selected directories of FDLIB, can be found in the following books: Other related and highly recommended books by the author of FDLIB are:

All of these books are an excellent value with a high information to price ratio.

If you use the software, please consider purchasing these books or ordering them through your library to endorse the publishers and encourage the further development of the software.

Specific documentation for the individual directories is listed below:

Numerical methods See:
C. Pozrikidis (2008) Numerical Computation in Science and Engineering. Second Edition. Oxford University Press.
Grids See:
C. Pozrikidis (2002) A Practical Guide to Boundary-Element Methods with the Software Library BEMLIB. Chapman & Hall/CRC Press.
Hydrostatics See:
C. Pozrikidis, (2016) Fluid Dynamics: Theory, Computation, and Numerical Simulation. Third Edition, Springer.
Various solutions See:
C. Pozrikidis (2016) Fluid Dynamics: Theory, Computation, and Numerical Simulation. Third Edition, Springer.
Lubrication flows See:
C. Pozrikidis (2016) Fluid Dynamics: Theory, Computation, and Numerical Simulation. Third Edition, Springer.
Stokes flow See:
C. Pozrikidis (2002) A Practical Guide to Boundary-Element Methods with the Software Library BEMLIB. Chapman & Hall/CRC Press.
Potential flow See:
C. Pozrikidis, (2002) A Practical Guide to Boundary-Element Methods with the Software Library BEMLIB. Chapman & Hall/CRC Press.
Hydrodynamic stability See:
C. Pozrikidis (2011) Introduction to Theoretical and Computational Fluid Dynamics. Second Edition, Oxford University Press.
Vortex motion See:
C. Pozrikidis (2009) Fluid Dynamics; Theory, Computation, and Numerical Simulation. Second Edition, Springer.
Boundary-layer flows See:
C. Pozrikidis (2009) Fluid Dynamics: Theory, Computation, and Numerical Simulation. Second Edition, Springer.
Finite-difference methods See:
C. Pozrikidis (2009) Fluid Dynamics: Theory, Computation, and Numerical Simulation. Second Edition, Springer.
Boundary-element methods See:
BEM User Guide (version 13.10)
Turbulence See:
C. Pozrikidis (2009) Fluid Dynamics: Theory, Computation, and Numerical Simulation. Second Edition, Springer.

CFDLAB

A subset of FDLIB has been combined with the fabulous X11 graphics library vogle into the interactive graphics and animation software package CFDLAB.

BEMLIB

Selected directories of FDLIB have been arranged in the boundary-element software library BEMLIB.

FDLIB Directories

The following tables describe the contents of FDLIB. Public subdirectories are checked in the first column and CFDLAB implementations are checked in the fourth column, if available. The host BEMLIB directory is indicated in the fifth column, when appropriate.

Directory: 01_num_meth

This directory contains a suite of programs accompanying the book: C. Pozrikidis (2008) Numerical Computation in Science and Engineering, Second Edition, Oxford University Press. In these programs are of value to you, please consider purchasing the book.

Public Directory Subject CFDLAB BEMLIB
01_num_comp Numerical computation. num_meth
02_lin_calc Numerical linear algebra and linear calculus. num_meth
03_lin_eq Linear equations. num_meth
04_nl_eq Nonlinear equations. num_meth
05_eigen Algebraic eigenvalue problems. num_meth
06_interp_diff Interpolation and differentiation. num_meth
07_integration Numerical integration. num_meth
08_approximation Function approximation and Fourier series. num_meth
09_ode Ordinary differential equations. num_meth
10_ode_ddm Ordinary differential equations; domain discretization methods. num_meth
11_pde_diffusion Partial differential equations; unsteady diffusion equation. num_meth
12_pde_poisson Partial differential equations; Poisson equation. num_meth
13_pde_cd Partial differential equations; convection--diffusion equation. num_meth
14_bem Boundary-element methods. num_meth
15_fem Finite-element methods. num_meth
99_spec_fnc Special functions. num_meth

Directory: 02_grids

This directory contains programs that perform adaptive discretization, parametrization, and meshing of two-and three-dimensional lines, and planar or three-dimensional surfaces.

Public Directory Subject CFDLAB BEMLIB
grid_2d Discretization of a planar line into a collection of straight or circular elements with corresponding shapes. grids
prd_2d Adaptive description of a closed planar line. grids
prd_2d_open Adaptive description of an open planar line. grids
prd_2d_pr Adaptive description of a periodic planar line. grids
prd_2d_pr_hs Adaptive parametrization of a periodic planar line with symmetry with respect to the mid-plane. grids
prd_2d_qs Adaptive parametrization of a closed planar line with symmetry with respect to two planes. grids
prd_3d Adaptive parametrization of a closed three-dimensional line. grids
prd_3d_pr Adaptive parametrization of a three-dimensional periodic line. grids
prd_ax Adaptive representation of a line beginning and ending at the x axis regarded as the trace of a surface of revolution in an azimuthal plane, generated by rotating the line around the x axis. grids
prd_ax_cl Adaptive representation of a closed line regarded as the trace of a toroidal surface in an azimuthal plane.
prd_ax_hs Adaptive parametrization of a line beginning and ending at the x axis, with plane-reflection symmetry with respect to the x=0 plane.
prd_ax_pr Adaptive parametrization of a periodic line representing the trace of an axisymmetric periodic surface in an azimuthal plane.
prd_ax_pr_hs Adaptive parametrization of a periodic line representing the trace of an axisymmetric periodic surface in an azimuthal plane with plane-reflection symmetry about the x=0 plane.
rec_2d Interpolation and numerical differential of a velocity field defined on a two-dimensional rectangular grid based on data provided at the grid nodes; computation of the velocity gradient tensor, rate of deformation tensor and its eigenvalues and eigenvectors, velocity and vorticity tensors.
rec_2d_strml Interpolation and computation of streamlines and velocity vector field from data prescribed on a two-dimensional rectangular grid.
sm_3d_df Smoothing by diffusion of a function defined over a closed surface described by triangulation. grids
sm_3d_tr Smoothing by spectrum truncation of a function defined over a closed surface described by triangulation. grids
trgl Triangulation of a closed surface into an unstructured mesh of six-node curved triangular elements. The grid is generated by the successive subdivisions of an octahedron or icosahedron. grids
trgl_flat Triangulation of a square patch into a structured grid of six-node plane triangular elements based on the successive subdivisions of a hard-coded element pattern: a disk, a square, a square performed by a circular hole, a square performed by a square hole. grids

Directory: 03_hydrostat

This directory contains programs that compute interfacial shapes in hydrostatics.

Public Directory Subject CFDLAB BEMLIB
drop_2d A two-dimensional sessile or pendant drop or bubble attached to a horizontal plane.
drop_2di A two-dimensional drop or bubble attached to an inclined plane.
drop_3d A three-dimensional sessile or pendant drop or bubble attached to a plane.
drop_ax An axisymmetric sessile or pendant bubble or drop attached to a horizontal plane.
flsphere A sphere floating at the interface between two immiscible fluids.
men_2d A two-dimensional meniscus between two parallel plates.
men_2d_plate A semi-infinite meniscus originating from an inclined plate.
men_3d A three-dimensional meniscus attached to an elliptical contact line.
men_3d_2p A doubly periodic three-dimensional meniscus.
men_ax A meniscus inside a vertical circular tube.
men_axe A meniscus outside a vertical circular tube.
men_ell An infinite meniscus outside an elliptical contact line.
men_cc An infinite meniscus attached to two cylinders.

Directory: 04_various

This directory contains programs that generate solutions to the equations of steady and unsteady incompressible Newtonian flow. The solutions are obtained by evaluating analytical expressions or by computing numerical solutions of simple ordinary and partial differential equations.

Public Directory Subject CFDLAB BEMLIB
chan_2d Unidirectional Couette-Poiseuille flow through a two-dimensional channel.
chan_2d_2l Unidirectional Couette-Poiseuille flow of two superimposed layers through a two-dimensional channel.
chan_2d_imp Transient flow flow in a channel confined between two parallel plane walls due to the sudden translation of one wall parallel to itself with constant velocity.
chan_2d_ml Flow of an arbitrary number of superimposed layers through a two-dimensional channel.
chan_2d_osc Time-periodic Couette flow in a channel confined between two parallel plane walls due to the in-plane oscillation of one of the walls.
chan_2d_trans Transient flow in a channel confined between two parallel plane walls due to the sudden application of a constant pressure gradient.
chan_2d_wom Time-periodic flow in a channel confined between two parallel plane walls, due to an oscillatory pressure gradient
chan_brush Flow through a semi-infinite rectangular strip modeling the unit cell of a two-dimensional paint brush.
film Flow of a film down an inclined plane.
films Flow of an arbitrary number of superimposed films down an inclined plane.
flow_1d Steady, unidirectional, pressure- and gravity-driven flow through a tube with arbitrary cross-section. The main program solves an integral equation for the distribution of the boundary shear stress using a boundary-element method and computes the velocity at a specified point. laplace
flow_1d_1p Steady unidirectional shear flow over a periodic array of cylinders with arbitrary cross-section or a periodic wall with arbitrary shape. The main program solves an integral equation for the distribution of the boundary shear stress using a boundary-element method and computes the drift velocity, the slip velocity, and the velocity at a specified point in the flow. laplace
flow_1d_osc Oscillatory unidirectional flow inside or outside a tube with arbitrary cross-section. The motion may be due to an oscillatory pressure gradient (internal flow), or to the translational oscillations of the tube wall parallel to the generators (internal or external flow). The main program solves an integral equation for the distribution of the complex amplitude of the boundary shear stress using a boundary-element method and computes the complex amplitude of the velocity at a specified point in the flow. helmholtz
path_lines Computation of path lines.
plate_imp Unsteady flow in a semi-infinite fluid bounded by an infinite plane due to the impulsive translation of the plane at constant velocity.
plate_osc Time-periodic flow in a semi-infinite fluid bounded by an infinite plane due to the sinusoidal oscillations of the plane.
spf Similarity solutions for three types of stagnation-point flow:
  • Two-dimensional oblique stagnation-point flow toward a flat plate.
  • Axisymmetric orthogonal stagnation-point flow.
  • Swirling flow due to the rotation of a flat disk (von Karman flow).
The main program solves the boundary value problems resulting from a similarity solution using a shooting method.




















































































strml



















































































The main program generates streamline patterns for a broad range of flows listed in a nested menu, including, but not limited to, the following:

Irrotational flows
  • Periodic array of two-dimensional (2D) point sources.
  • A 2D point source above a plane wall.
  • A 2D point source in a channel.
  • A 2D point source in a semi-infinite strip.
  • A 2D point source in front of a circular cylinder.
  • A 2D potential dipole.
  • A three-dimensional (3D) point source above a plane wall.
  • A 3D point source in front of a sphere.
  • A doubly-periodic array of 3D point sources.
  • A 3D point source in uniform flow.
  • Flow past a Rankine ovoid.
  • A 3D potential dipole.
  • A ring of point sources
  • A ring of point sources near a wall.
  • Flow around a corner.
  • Flow past a stationary circular cylinder.
  • Flow due to a moving circular cylinder.
  • Flow past a flat plate.
  • Flow past an ellipse.
  • Flow past a Joukowski airfoil.
  • Flow exiting a channel.
  • Flow over a circular bump.
  • Flow down and up a strip.
  • Flow past a sphere.
  • Flow due to a moving sphere.
  • Orthogonal stagnation-point flow past a sphere.
  • Flow past a prolate spheroid.
  • Flow past an oblate spheroid.
Vortex flows
  • Periodic array of Stuart vortices in shear flow.
  • A pair of point vortices of equal strength.
  • A point vortex outside a circular cylinder.
  • A point vortex inside a circular cylinder.
  • A point vortex between two walls.
  • A point vortex in a semi-infinite strip.
  • A periodic array of vortex blobs.
  • A periodic vortex street.
  • A line vortex ring.
  • A line vortex ring in front of a plane.
  • A line vortex ring in front of a sphere.
  • A line vortex ring inside a sphere.
  • Hill's spherical vortex in a stationary or moving frame.
Stokes flows
  • Stagnation-point flow against a plane wall.
  • Flow due to a plane scraping a plane for several scraping angles.
  • Flow due to a moving belt.
  • Flow due to a tape plunging into a pool.
  • Symmetric and antisymmetric flow in a corner.
  • Flow due to the application of constant shear stress at a corner.
  • Flow past, or due to, a translating sphere.
  • Flow past, or due to, a translating drop.
  • A three-dimensional points force (Stokeslet).
  • A two-dimensional points force (Stokeslet).
  • A doubly-periodic array of two-dimensional point forces.
  • A triply-periodic array of three-dimensional point forces.
  • A point force in front of a sphere.
  • A point force above a plane wall.
  • Linear flow past a drop.
  • Quadratic stagnation-point flow.
  • Flow past a slender cylinder.
  • Shear flow over a plane wall with a circular orifice.
  • Shear flow over a plane wall with a discoidal zero-shear-stress patch.
  • Shear flow over a plane wall with a slit.
  • Shear flow over a plane wall with a slit-like zero-shear-stress patch.
Other flows
  • Kovasznay flow.
  • Taylor cellular flow.
  • Oseen flow due to a moving sphere.
  • Flow due to a point source of momentum.
  • Blasius boundary-layer flow.
  • Oblique stagnation-point flow toward a flat plate.
  • Axisymmetric stagnation-point flow toward a flat plate.
  • Two-dimensional linear flow.
tube_ann Flow through an annular tube confined between two concentric cylinders.
tube_ann_ml Flow of an arbitrary number of annular layers through an annular tube confined between two coaxial cylinders.
tube_ann_sw Swirling flow in an annular tube confined between two coaxial cylinders due to the rotation of the inner or outer cylinder.
tube_ann_sw_ml Swirling flow of an arbitrary number of annular layers inside an annular tube confined between two coaxial cylinders due to the rotation of the inner or outer cylinder.
tube_crc Flow through a circular tube.
tube_crc_ml Flow of an arbitrary number of concentric annular layers through a circular tube.
tube_crc_sec Unidirectional flow through a circular tube due to the translation of section of the wall.
tube_crc_sw Swirling flow in a circular tube due to the sudden rotation of the wall at constant angular velocity.
tube_crc_trans Transient flow through a circular tube, due to the sudden application of a constant pressure gradient.
tube_crc_wom Periodic flow through a circular tube due to an oscillatory pressure gradient.
tube_ell Flow through a tube with elliptical cross-section.
tube_rec Flow through a tube with rectangular cross-section.
tube_trgl_eql Flow through tube whose cross-section is an equilateral triangle.

Directory: 05_lub

This directory contains programs that compute a family of viscous flows with negligible inertial forces. The mathematical formulation relies on the approximations of lubrication flow. The basic assumption implemented as an approximation is that the flow is locally unidirectional with a parabolic, position-, and possibly time-dependent velocity profile.

Public Directory Subject CFDLAB BEMLIB
bear_2d Dynamic simulation of the motion of a two-dimensional body pressing against a sliding wall in the arrangement of a slider bearing. The body geometry and boundary conditions for the pressure away from the lubrication zone are specified at the input. The equation governing the motion of the slider bearing normal to the wall derives from Newton's second law of motion, where the force due to the lubrication pressure is a key constituent.
chan2l_exp Dynamic simulation of the evolution of the interface between two viscous layers in a horizontal or inclined channel confined between two parallel plane walls, in Couette, Poiseuille, or gravity-driven flow. The problem is formulated in terms of a nonlinear partial differential equation for the location of the interface. The solution is found using an explicit finite-difference method.
chan_2d_imp Same chan_2d_2l_exp, except that the motion is simulated using an implicit finite-difference method to circumvent stability restrictions on the time step.
films Dynamic simulation of the evolution of an arbitrary number of superimposed viscous films leveling on a horizontal wall or flowing down an inclined or vertical plane. The wall and the inclined plane are allowed to have periodic corrugations. The interfaces are spatially periodic and the wavelength matches the period of the wall. Under the approximations of lubrication flow, the problem is formulated in terms of a system of nonlinear partial differential equations for the location of the interfaces and free surface. The solution is found using an explicit finite-difference method.

Directory: 06_stokes

This directory contains programs pertinent to Stokes flow. Inertial forces are negligible, and the fluid motion is determined by the balance between the pressure, viscous, and possibly a body force.

Public Directory Subject CFDLAB BEMLIB
bump_3d Shear flow past a spherical protrusion on a plane wall. stokes
caps_2d Dynamic simulation of the motion of a two-dimensional bubble, drop, or liquid capsule with generalized interfacial properties, in infinite, semi-infinite, or channel flow. The interface may exhibit constant surface tension, variable surface tension due to the presence of a surfactant, or develop elastic tensions due to the deformation from the unstressed shape. The evolution of the concentration of an insoluble surfactant over the deforming interface is computed by a semi-implicit finite-volume method. In the case of infinite flow, the program also computes the effective rheological properties of a dilute suspension. stokes
caps_3d Dynamical simulation of the motion of a three-dimensional bubble, drop, or liquid capsule bounded by an elastic membrane, in infinite or wall-bounded flow. The interface may exhibit constant surface tension, variable surface tension due to the presence of a surfactant, or develop elastic tensions and bending moments due to the deformation from the unstressed shape. The evolution of the concentration of an insoluble surfactant over the deforming interface is computed by a semi-implicit finite-volume or finite-element method. In the case of flow in an infinite domain, the program also computes the effective rheological properties of a dilute emulsion. stokes
caps_ax Dynamical simulation of the deformation of an axisymmetric bubble, drop, or capsule, moving under the action of gravity or deforming under the action of a specified infinite, semi-infinite or tube flow. The interface may exhibit constant surface tension, variable surface tension due to the presence of a surfactant, or elastic tensions. The evolution of the concentration of an insoluble surfactant over the deforming interface is computed by a finite-volume method.
chan2l Dynamic simulation of the evolution of the interface between two-layers in a channel confined between two parallel walls.
chan2lw Dynamic simulation of the evolution of the interface between two layers in a channel confined between a plane and a wavy wall.
drop_3d Dynamic simulation of the motion of a three-dimensional drop or bubble with uniform surface tension.
drop_3dw Dynamical simulation of the deformation of a three-dimensional drop or bubble with uniform surface tension adhering to a plane wall with a specified contact line under the influence of a shear flow.
drop_ax Dynamic simulation of the evolution of a viscous drop in infinite space, in semi-infinite space bounded by a plane wall, and inside a circular tube. stokes
em_2d Dynamic simulation of the motion of a singly or doubly periodic polydisperse suspension of two-dimensional bubbles, drops, or capsules in shear flow. The interfaces may exhibit constant surface tension, variable surface tension due to the presence of a surfactant, or elastic tensions. The evolution of the concentration of an insoluble surfactant over the deforming interfaces is computed by a finite-volume method. The program also computes the effective rheological properties of the emulsion.
film_3d Dynamical simulation of a three-dimensional liquid film down an inclined plane.
films Dynamical simulation of the deformation of a number of superposed viscous layers comprising a composite film: layers in channel flow, layers leveling on a horizontal plane, and layers flowing down an inclined plane.
filmw Dynamic simulation of the evolution of a liquid film down an inclined plane. The interface is occupied by an insoluble surfactant.
flow_2d Flow in a two-dimensional domain with arbitrary geometry. The main program solves an integral equation of the first kind for the distribution of the boundary traction and computes streamlines emanating from specified points in the flow. Several types of flow and domain geometries are implemented in the program. Other configurations can be included by straightforward modifications. stokes
flow_3x Shear flow over an axisymmetric cavity, orifice, or protrusion embedded on a plane wall, possibly in the presence of an upper plane wall. The main program solves a system of integral equations of the first kind for the Fourier coefficients of the boundary distribution of the traction, and computes streamlines. In the case of flow over a protrusion, the program also computes the force and torque exerted on the protrusion. The program may be readily modified to handle shear flow past an axisymmetric particle, where the unperturbed flow is directed perpendicular to the particle axis. stokes
layers Dynamic simulation of the deformation of two superposed viscous layers or one layer resting on a wall underneath a semi-infinite fluid: two layers in channel flow, a layer leveling underneath a semi-infinite fluid on a horizontal plane, a layer flowing down an inclined plane, an infinite interface deforming under the influence of a periodic collection of point-source dipoles.
pint Flow past or due to particle motion near or inside a flat interface between two immiscible fluids.
prtcl_2d Flow past a collection of two-dimensional particles with arbitrary shapes for several flow configurations: uniform flow past a doubly-periodic particle array, flow in a semi-infinite domain bounded by a plane wall, flow in a channel confined by two parallel plane walls. The main program solves an integral equation of the first kind for the distribution of the traction over the particle surfaces and generates streamlines emanating from specified points. The results allow the computation of macroscopic flow variables including the permeability of a disordered two-dimensional porous medium. stokes
prtcl_2d_se Same as prtcl_2d, except that the integral equations are solved using a spectral-element method.
prtcl_3d Flow past, or due to the motion of, a three-dimensional solid particle in a solitary or periodic arrangement. The main program solves an integral equation of the first kind for the distribution of the traction over the particle surface, and computes the grand-resistance tensor for rigid-body motion in a quiescent fluid. The flow occurs in an infinite domain or in a semi-infinite domain bounded by a plane wall. The force and torque exerted on a particle that is held stationary in an arbitrary flow may be computed readily from the numerical results using the reciprocal relation for Stokes flow. The translational and angular velocity of a particle subjected to a specified force and torque arises by a straightforward computation. stokes
prtcl_3d_mob Mobility problem for three-dimensional particle motion. stokes
prtcl_3d_mob_dlr_se Same as prtcl_3d_mob, except that an integral equation based on the double-layer representation (dlr) is solved by a spectral-element method. stokes
prtcl_3dx Three-dimensional flow past or due to the motion of an axisymmetric particle.
prtcl_ax Axisymmetric flow past, or due to the motion of, a collection of particles with arbitrary shapes aligned with a common axis for a variety of configurations including: uniform flow past a fixed collection of particles, flow due to particle translation, flow in a semi-infinite domain bounded by a plane wall, flow in the interior of a cylindrical tube. The main program solves an integral equation of the first kind for the boundary traction and then computes streamlines. stokes
prtcl_sw Swirling flow generated by the rotation of an axisymmetric particle around its axis. The main program solves an integral equation of the first kind for the traction over the particle surface, and then computes the torque exerted on the particle. Several particle geometries are implemented in the program. Others geometries be included with straightforward modifications. stokes
rbc_2d Numerical simulation of the flow-induced deformation of a two-dimensional red blood cell in infinite shear flow and near a plane wall. stokes


















sgf_2d

















Green's functions of two-dimensional Stokes flow representing the flow due to a two-dimensional point force. The subroutines evaluate the Green's functions for the velocity, pressure, and stress.

Function
sgf_2d_1p_fs Periodic Green's function in free space.
sgf_2d_1p_w Periodic Green's function in a semi-infinite domain bounded by a plane wall.
sgf_2d_1p_ww Periodic Green's function in a channel bounded by two parallel plane walls.
sgf_2d_2p Doubly periodic Green's function.
sgf_2d_2p_glut Generates look-up tables for the doubly periodic Green's function.
sgf_2d_fs Free-space Green's function.
sgf_2d_w Green's function in a semi-infinite domain bounded by a plane wall.

stokes












sgf_3d











Green's functions of three-dimensional Stokes flow representing the flow due to a solitary point force or a periodic array of point forces. The subroutines evaluate the Green's functions for the velocity, pressure, and stress.

Function
sgf_3d_2p Doubly periodic Green's function.
sgf_3d_2p_w Doubly periodic Green's function in a semi-infinite domain bounded by a plane wall.
sgf_3d_3p Triply periodic Green's function.
sgf_3d_fs Free-space Green's function.
sgf_3d_sph Green's function for flow in the exterior of a solid sphere.
sgf_3d_w Green's function for flow in a semi-infinite domain bounded by a plane wall.
stokes






sgf_ax





Green's functions of axisymmetric Stokes flow representing the flow due to a ring of point forces. The subroutines in this directory evaluate the Green's functions for the velocity, and the kernel of the double-layer potential.

Function
sgf_ax_1p Singly periodic Green's function in free space.
sgf_ax_1p_ct Singly periodic Green's function inside a circular tube.
sgf_ax_fs Free-space Green's function.
sgf_ax_w Green's function in a semi-infinite domain bounded by a plane wall.
stokes











slip Particle motion near a plane wall with the no-slip or slip boundary condition over the wall and particle surface.
spart Interception of two spherical particles in shear flow with the no-slip or slip boundary condition over the particle surfaces.
spfl Dynamical simulation of the evolution of a film resting on a plane wall in stagnation-point flow.
susp_2d Dynamical simulation of the motion of a collection of two-dimensional (cylindrical) particles with arbitrary shapes, for several flow configurations: uniform flow of a doubly-periodic array, flow in a semi-infinite domain bounded by a plane wall, flow in a channel bounded by two parallel plane walls. A specified force and torque is exerted on each particle. The main program solves an integral equation of the first kind for the distribution of the traction over the particle surfaces and simultaneously produces the particle translational and angular velocities.
susp_2d_se Same as susp_2d, except that the integral equations are solved by a spectral-element method.
susp_3d Dynamical simulation of a suspension of three-dimensional particles. stokes
thread_ax Dynamic simulation of the instability of an infinite liquid thread or annular layer subject to axisymmetric periodic perturbations. The ambient fluid may be of infinite extent or bounded by a coaxial cylindrical surface in the configuration of the core-annular flow. The thread interface may exhibit constant surface tension, variable surface tension due to the presence of an insoluble surfactant, and develop elastic tensions. The evolution of the concentration of an insoluble surfactant over the deforming interface is computed by a finite-volume method.
two_spheres Motion of two intercepting spheres in simple shear flow

Directory: 07_ptf

This directory contains programs that solve problems involving potential (irrotational) flow of an incompressible fluid. The fundamental physical assumption is that the vorticity is zero throughout the domain of the flow. See also directory 12_bem on boundary-element methods.

Public Directory Subject CFDLAB BEMLIB
airf_2d Shapes of two-dimensional airfoils.
airf_2d_cdp Potential flow past an airfoil with arbitrary geometry with the Kutta condition satisfied at the trailing edge or at a designated point. The flow is computed by solving Laplace's equation subject to the Dirichlet boundary condition using the constant-source-dipole panel method.
airf_2d_csdp Potential flow past an airfoil with arbitrary geometry with the Kutta condition satisfied at the trailing edge or at a designated point. The flow is computed by solving Laplace's equation with the Dirichlet boundary condition using the constant-point-source / source-dipole panel method.
airf_2d_lvp Potential flow past an airfoil with arbitrary geometry with the Kutta condition satisfied at the trailing edge or at a designated point. The flow is computed by solving Laplace's equation using the linear vortex panel method. laplace
body_2d Potential flow past a two-dimensional body with arbitrary geometry. The flow occurs in an infinite domain or in a semi-infinite domain bounded by a plane wall. The main program solves an integral of the second kind for the boundary distribution of a properly defined disturbance potential over the surface of the body, computes the distribution of the pressure coefficient and the force exerted on the body, and then generates streamlines originating from specified points. The program implements uniform flow past a body with circular, elliptical, triangular, or rectangular shape. Other flow geometries and types of flow may be included by straightforward modifications. laplace
body_ax Potential flow past an axisymmetric body with arbitrary geometry. The main program solves an integral equation of the second kind for the boundary distribution of a properly defined disturbance potential, computes the distribution of the pressure coefficient and the force exerted on the body, and then generates streamlines originating from specified points. The program implements uniform flow past a body with spherical, spheroidal, and toroidal shape. Other flow geometries and types of flow can be included by straightforward modification. laplace
bubble_3d Dynamical simulation of the evolution of a three-dimensional gas bubble suspended in an inviscid fluid. The ambient fluid is infinite or semi-infinite bounded by a plane wall. The flow is computed using a generalized vortex method with a boundary-element implementation.
cvt_2d Potential flow in a rectangular cavity with impenetrable bottom and side walls computed by a finite-difference method.
drop_3d Dynamical simulation of the natural oscillations of a three-dimensional inviscid drop induced by surface tension. The flow is computed using a generalized vortex method and a boundary-element implementation.
flow_2d Potential flow in a two-dimensional domain with arbitrary geometry. The main program solves an integral of the second kind for the boundary distribution of a properly defined disturbance harmonic potential and then produces streamlines originating from specified points. The program implements uniform flow past a cavity or a protrusion embedded on a plane wall, possibly in the presence of an upper wall. Other flow geometries can be included by straightforward modifications. laplace


















lgf_2d

















Green and Neumann functions of Laplace's equation in two dimensions. These programs evaluate the following Green's functions and their gradient:

Function
lgf_2d_1p Singly-periodic Green's function in free space.
lgf_2d_fs Free-space Green's function.
lgf_2d_w Green's function for a semi-infinite domain of flow bounded by a plane wall.
lgf_2d_ww Green's function for flow in a channel confined between two parallel plane walls.
lnf_2d_crc Neumann function for internal or external flow bounded by a circular cylinder.
lnf_2d_w Neumann function for a semi-infinite domain of flow bounded by a plane wall.
lnf_2d_ww Neumann function for flow on a channel confined between two parallel plane walls.
lnf_2d_www Neumann function for flow in a semi-infinite rectangular strip confined between two parallel plane walls and another plane wall intersecting them at right angle.

laplace





























lgf_3d











Green and Neumann functions of Laplace's equation in three dimensions. These subroutines evaluate the following Green's functions and their gradient:

Function
lgf_3d_2p Doubly-periodic Green's function.
lgf_3d_2p_glut Generates look-up tables for the doubly-periodic Green's function.
lgf_3d_fs Free-space Green's function.
lgf_3d_w Green's function in a semi-infinite domain bounded by a plane wall.
lnf_3d_sph Neumann function inside or outside a sphere.
lnf_3d_w Neumann function in a semi-infinite domain bounded by a plane wall.

laplace











lgf_ax



Green's and Neumann functions of Laplace's equation in an axisymmetric domain. These subroutines evaluate the following Green's functions and their gradient:

Function
lgf_ax_fs Free-space Green's function.
lgf_ax_w Green's function for semi-infinite flow bounded by a plane wall.
lnf_ax_w Neumann function for semi-infinite flow bounded by a plane wall.

laplace
tank_2d Dynamical simulation of the sloshing of a liquid inside a rectangular tank undergoing accelerating motion, computed by a boundary-element method. laplace
wave_3d Dynamical simulation of doubly periodic gravity/capillary waves computed by a generalized vortex method.

Directory: 08_stab

This directory contains programs and functions related to hydrodynamic stability.

Public Directory Subject CFDLAB BEMLIB
ann2l Capillary instability of two annular layers placed between two concentric cylinders in the presence of an insoluble surfactant.
ann2l0 Same as ann2l, but for Stokes flow.
ann2lel Same as ann2l, but for an elastic interface.
ann2lel0 Same as ann2l0, but for an elastic interface.
ann2lvs0 Same as ann2l0, but for a viscous interface.
chan2l0 Instability of two-layer flow in a channel confined between two parallel plane walls under conditions of Stokes flow.
chan2l0_s Same as chan2l0, but in the presence of an insoluble surfactant.
coat0_s Instability of a liquid film resting on a plane wall in the presence of an insoluble surfactant.
film0 Instability of a liquid film flowing down an inclined plane under conditions of Stokes flow.
film0_s Same as film0, but in the presence of an insoluble surfactant under conditions of Stokes flow.
if0 Instability of a horizontal interface separating two semi-infinite fluids in Stokes flow.
ifsf0_s Instability of a horizontal interface separating two semi-infinite fluids in the simple shear flow, in the presence of an insoluble surfactant under conditions of Stokes flow.
kirch_stab Linear stability of Kirchhoff's elliptical vortex.
layer0 Instability of a liquid layer resting on a horizontal wall underneath a semi-infinite fluid under conditions of Stokes flow.
layersf0_s Instability of a liquid layer resting on a horizontal wall underneath a semi-infinite fluid in simple shear flow in the presence of an insoluble surfactant under conditions of Stokes flow.
orr Solution of the Orr-Sommerfeld equation by a finite-difference method.
prony prony: Decomposition of a time series into normal modes expressing exponentially growing or decaying sinusoidal waves.
wave: Decomposition of linear spatial waves into exponentially evolving normal modes.
rayleigh Solution of the Rayleigh equation determining the stability of inviscid shear flow; the velocity profile is specified in analytic or numerical form.
thread0 Capillary instability of viscous thread immersed in an infinite ambient viscous fluid, under conditions of Stokes flow.
thread1 Capillary instability of an inviscid thread suspended in an infinite ambient inviscid fluid with negligible density.
vl Kelvin-Helmholtz instability of an inviscid vortex layer with constant vorticity.
vs Kelvin-Helmholtz and Rayleigh-Taylor instability of a vortex sheet.

Directory: 09_vortex

This directory contains programs concerning vorticity dynamics and vortex motion in an effectively inviscid fluid.

Public Directory Subject CFDLAB BEMLIB
kirch_stab Linear stability analysis of the Kirchhoff elliptical vortex.
lv_lia Dynamical simulation of the motion of a closed three-dimensional line vortex computed by the local-induction approximation (LIA).
lvr Velocity induced by a line vortex ring in an infinite or bounded domain.
Function
lvr_fs A line vortex ring in free space.
lvr_sph Axisymmetric flow induced by a line vortex ring in the presence of a sphere.
lvr_w A line vortex ring before a plane wall positioned perpendicular to the ring axis in an axisymmetric arrangement.
lvrm Dynamical simulation of the motion of a collection of coaxial line vortex rings. The strength of the vortex rings evolves so as to preserve the circulation around each ring. A pair of rings exhibit leap-frogging.
pv Velocity induced by point vortices in domains bounded by various surfaces.
Function
pv_circle A point vortex in the presence of a circular cylinder.
pv_fs A point vortex in free space.
pv_pr A periodic array of point vortices.
pv_w A point vortex in a semi-infinite domain of flow bounded by a plane wall.
pv_ww A point vortex between two parallel plane walls.
pv_www A point vortex in a semi-infinite rectangular strip confined between two parallel plane walls, and an another plane wall intersecting them at a right angle.
pvm Dynamical simulation of the motion of collection of point vortices.
pvm_pr Dynamical simulation of the motion of a periodic collection of point vortices illustrating the Kelvin-Helmholtz instability. A periodic array forming a periodic line emulates a two-dimensional vortex sheet separating two streams of a homogeneous fluid.
pvpoly Computation of rotating nested point-vortex polygons.
ring Self-induced velocity of a vortex ring with a core of finite cross-section and a specified constant or Gaussian vorticity distribution. As the radius of the core tends to zero, we obtain a line vortex ring.
vl_2d Dynamic simulation of the motion of a compound vortex layer comprised with an arbitrary number of attached layers with constant vorticity. The motion of the vortex boundaries is computed by the method of contour dynamics for two-dimensional periodic flow.
vp_2d Dynamical simulation of the motion of a collection of two-dimensional vortex patches with constant vorticity, in solitary or periodic arrangement. The motion of the vortex boundaries is computed by the method of contour dynamics for two-dimensional flow.
vp_ax Dynamical simulation of the motion of a collection of axisymmetric coaxial vortex patches whose vorticity varies linearly with the distance from the axis of symmetry. The motion of the vortex boundaries is computed by the method of contour dynamics for axisymmetric flow.
vs_3d Dynamical simulation of the self-induced motion of a closed three-dimensional vortex sheet.
vs_3d_2p Dynamic simulation of the self-induced motion of a doubly-periodic three-dimensional vortex sheet

Directory: 10_bl

This directory contains of programs concerning boundary-layer flows.

Public Directory Subject CFDLAB BEMLIB
blasius Solution of the Blasius boundary layer equation.
falskan Solution of the Falkner-Skan boundary layer equation.
kp_cc Boundary-layer flow around a circular cylinder computed using the Karman-Pohlhausen method.
pohl_pol Profiles of the Pohlhausen polynomials.

Directory: 11_fdm

This directory contains programs that generate numerical solutions to the equations of incompressible Newtonian flow using finite-difference methods.

Public Directory Subject CFDLAB BEMLIB
channel Unidirectional flow in a channel.
cvt_pm Transient flow in a rectangular cavity computed using Alexandre Chorin's projection method.
cvt_stag Stokes flow in a rectangular cavity computed on a staggered grid.
cvt_sv Steady flow in a rectangular cavity driven computed using the stream function-vorticity formulation.

Directory: 12_bem

This directory contains programs that generate numerical solutions to Laplace's equation with Dirichlet and Neumann boundary conditions using boundary-element methods based on direct and indirect formulations.

Public Directory Subject CFDLAB BEMLIB
ldr_3d Solution of Laplace's equation in the interior or exterior of a three-dimensional domain subject to the Dirichlet boundary condition, computed using the boundary-integral formulation. laplace
ldr_3d_2p Solution of Laplace's equation in a doubly periodic semi-infinite domain subject to the Dirichlet boundary condition, computed using the double-layer representation. laplace
ldr_3d_ext Solution of Laplace's equation in the exterior of a three-dimensional region subject to the Dirichlet boundary condition, computed using the completed double-layer formulation. laplace
ldr_3d_ext_se Spectral element implementation of ldr_3d_ext
ldr_3d_int Solution of Laplace's equation in the interior of a three-dimensional region subject to the Dirichlet boundary condition, computed using the double-layer formulation. laplace
ldr_3d_int_se Spectral element implementation of ldr_3d_int
lnm_3d Solution of Laplace's equation in the interior or exterior of a three-dimensional domain subject to the Neumann (natural) boundary condition, computed using the boundary-integral formulation. laplace

Directory: 13_turbo

This directory contains data and programs related to turbulent flow.

Public Directory Subject CFDLAB BEMLIB
stats Statistics of a turbulent time series for stably stratified turbulent flow behind a grid recorded in the laboratory by Kurt Keller. The main program reads a velocity and temperature time series from a data file, and computes mean and RMS values, power spectra, and time-delayed correlations.

Terms

FDLIB (public) is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

FDLIB (public) is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Foobar. If not, see http://www.gnu.org/licenses/