ARBY3
Reduced Basis Fluid Flow Code
ARBY3
is a FORTRAN77 program which
analyzes a 2D fluid flow using the reduced
basis method.
ARBY3 is version 3 of the program. There were 4 versions total.
The reduced basis idea is related to the finite element method.
In the finite element method, a completely arbitrary basis is
set up. The reduced basis method seeks, instead, to use a much
smaller set of basis functions which somehow represent the most
typical behaviors of the solution.
Such a basis set might be determined by computing lots of solution
vectors, or from theoretical considerations. It can also be
determined by taking the state equations, repeatedly
differentiating them with respect to a parameter, and solving the
resulting systems. This then allows a sort of Taylor expansion
of the solution with the parameter acting as the independent
variable.
In a true Taylor expansion, the coefficients of the
basis vectors are strictly determined by the size of the increment
in the independent variable. But in this approach, it is assumed
that although the Taylor coefficients may quickly become inaccurate,
the corresponding Taylor basis vectors will still be useful
for representing the solution. It remains, then, to determine
the now unknown coefficients.
Related Data and Programs:
ARBY1
is a FORTRAN77 program which
is version 1 of the reduced basis program for fluid flow.
ARBY2
is a FORTRAN77 program which
is version 2 of the reduced basis program for fluid flow.
ARBY4
is a FORTRAN90 program which
is version 4 of the reduced basis program for fluid flow.
BUMP
is a FORTRAN90 program which
seeks the appropriate channel inflow and bump shape which will cause the flow to most
closely match a given downflow profile.
CHANNEL
is a FORTRAN90 program which
seeks the appropriate channel inflow which will cause the flow to most
closely match a given downflow profile.
TOMS611
is a FORTRAN77 library which
minimizes a functional.
Reference:
-
Janet Peterson,
The Reduced Basis Method for Incompressible Viscous Flow Calculations,
SIAM Journal of Scientific and Statistical Computing,
Volume 10, Number 4, pages 777-786, July 1989.
Source Code:
Examples and Tests:
List of Routines:
-
ARBY3 solves a fluid flow problem using reduced basis techniques.
-
CH_CAP capitalizes a single character.
-
DIFFPRB estimates the jacobian of the reduced function, using
-
DIFSENFL computes a central difference estimate for the first NCOFRB
-
DIFSENRB estimates the reduced sensitivities using finite differences.
-
FLOWBC computes the specified boundary values of velocity for a
-
FPBCRB evaluates the jacobian of the boundary conditions that form
-
FPFERB evaluates the reduced basis jacobian directly (that is,
-
FPFL computes the jacobian of the Navier Stokes residual function
-
FPIRB computes the jacobian of the reduced basis solution GRB
-
FPRB evaluates the reduced basis jacobian directly (that is,
-
FXBCRB evaluates the boundary conditions that form part of the
-
FXFERB evaluates the finite element portion of the reduced function.
-
FXFL computes the residual of the Navier Stokes equations,
-
FXFL2RB projects a function vector RESFL for the full system into
-
FXIRB computes the residual of the reduced basis solution GRB
-
FXRB evaluates the boundary conditions and finite element equations
-
GETGSEN computes the coefficients of the sensitivity matrix S,
-
GETRB computes the orthogonal reduced basis matrix RB.
-
GETSENFL computes the matrix SENFL of sensitivity vectors.
-
GETSENRB computes the value of the reduced sensitivities by
-
GFL2RB projects a full solution vector GFL into
-
GRB2FL computes the full solution GFL represented by a set of
-
HELLO prints the program name, date of revision, time and date,
-
HELP prints out a list of the interactive commands which the
-
INIT sets problem data to default values.
-
NEWTFL is given an initial estimate of the solution of the full
-
NEWTRB is given an initial estimate of the solution of the reduced
-
OPTDIFFL optimizes the full problem, without gradient information.
-
OPTDIFRB optimizes the reduced problem, without gradient information.
-
PICFL carries out simple iteration on the full Navier Stokes
-
PICMFERB evaluates the simple iteration matrix.
-
PICMFL computes the Picard iteration matrix for the full
-
PICRB carries out simple iteration on the reduced Navier Stokes
-
PICVFERB computes the finite element portion of the right hand
-
PICVFL computes the right hand side for Picard iteration on the
-
REYSEN sets up the right hand side RHS associated with the ISEN-th
-
TARGET is called to save the current parameters and solution
-
TEST2 compares U, V, and P for the full solution and the reduced
-
TEST3 verifies that RB*RFACT=SENFL
-
TEST4
-
TEST5 is given the QR factors of the reduced basis matrix, and
-
PRUVPFL prints the values of velocity and pressure for all nodes
-
PRUVPRB prints the values of the reduced velocity and pressure
-
UVPRB is given a set of reduced coefficients, an element IELEM,
-
BMPCST evaluates the cost of the bump control.
-
BMPSPL sets up or updates the spline data that describes the bump.
-
BSP computes the value and spatial derivatives of the linear basis
-
CAPCHR accepts a STRING of characters and replaces any lowercase
-
CAVITY sets up the standard driven cavity problem.
-
CHANNL sets up the standard channel problem.
-
CHRCTD accepts a string of characters, and tries to extract a
-
CHRCTI accepts a STRING of characters and reads an integer
-
CHRDB1 accepts a string of characters and removes all
-
CHRUP2 copies STRING into STRNG2, up to, but not including, the
-
DDETFL computes the determinant of a double precision band matrix
-
DDETRB computes the determinant of a double precision matrix
-
DELHMS returns the number of seconds that elapsed between
-
DFACFL factors a double precision band matrix by elimination.
-
DFACRB factors a double precision dense matrix.
-
DIFSET computes the NCOF coefficients for a centered finite difference
-
DISCST computes the discrepancy integrals for the pressure,
-
DSOLFL solves the linear system AFL*X=B
-
DVEQ returns .TRUE. if the N elements of the double precision
-
DVNEQ returns .TRUE. if any of the N elements of the double precision
-
FACT computes the (real) factorial of a nonnegative integer.
-
GETCST is given the value of the solution, GFL, the target
-
GQUAD1 returns the weights and abscissas for a 1 dimensional,
-
GRID computes the X or Y coordinate of the I-th gridpoint.
-
INTPRS interpolates the pressure at the midside nodes.
-
L2NORM computes the "big" L2 norm of the velocity over the flow region,
-
LBASE evalualates the IVAL-th Lagrange polynomial based
-
LENCHR returns the length of STRING up to the last nonblank
-
LEQI is a case insensitive comparison of two strings for
-
LEQIDB is a case insensitive comparison of two strings for
-
NBINOM calculates the number of combinations of M things taken N
-
NRMFLO returns norms of a flow solution or flow residual.
-
PCVAL evaluates a piecewise constant function at a given point.
-
PLDX evaluates the derivative of a piecewise linear function with
-
PLDX1 evaluates the X derivative of the piecewise linear
-
PLTOPN opens the plotting file.
-
PLVAL evaluates a piecewise linear function at a given point.
-
PLVAL1 evaluates the piecewise linear polynomial which is 1
-
PQDX evaluates the derivative of a piecewise quadratic function with
-
PQDX1 evaluates the X derivative of the piecewise quadratic
-
PQVAL evaluates a piecewise quadratic function at a given point.
-
PQVAL1 evaluates the piecewise quadratic polynomial which is 1
-
PRBMAT prints all nonzero entries of rows ILO to IHI, columns JLO to
-
PRDAT prints the problem information.
-
PRDMAT prints out a portion of a dense matrix.
-
PRELEM prints out data about one or more elements.
-
PRFXFLN prints out the norm of a full residual.
-
PRGRB prints out the reduced basis solution.
-
PRINDX prints out the integer variables that define the
-
PRMATFL prints entries from a matrix A associated with a full
-
PRPAR prints out the current parameters.
-
PRSENN prints out the norms of the sensitivities.
-
PRVECFL prints out some entries of a vector indexed by node number.
-
PRVECRB prints out entries ILO through IHI of a vector.
-
PRXY prints the X and Y coordinates of each node.
-
QBF evaluates a particular quadratic basis function at a point
-
REFBSP evaluates one of the three linear basis functions,
-
REFQBF evaluates one of the six quadratic basis functions,
-
S_EQI is a case insensitive comparison of two strings for equality.
-
SETBAN computes NLBAND, the lower band width of the Jacobian matrix
-
SETGEO is given a set of flow parameters in PAR, and an
-
SETLOG determines some data that depends on the user input.
-
SETNOD assigns numbers to the nodes and elements, decides which
-
SETPFL computes the value of the finite element basis functions at
-
SETPRB is given:
-
SETQ3 sets the abscissas and weights for a three point quadrature
-
SETXY sets the X and Y coordinates of the nodes.
-
STEP sets up a forward facing step problem.
-
TRANS calculates the biquadratic transformation which maps the
-
UVPNRM returns the "norm" of the solution. Here, the norm of
-
UVPQFL evaluates the velocities and pressure, and their X and Y
-
UVPQRB is given:
-
WRDIS writes information to a file which can be used to create
-
WRTEC writes out information which can be used for with the
-
XOFXSI is given the XSI, ETA coordinates of a point in an
-
DASUM takes the sum of the absolute values of the entries of
-
DAXPY adds a multiple of one vector to another.
-
DCOPY copies a vector X to a vector Y.
-
DDOT forms the dot product of two vectors.
-
DGBTF2 computes an LU factorization of a real m-by-n band matrix A
-
DGBTRF computes an LU factorization of a real m-by-n band matrix A
-
DGBTRS solves a system of linear equations
-
DGEMM performs one of the matrix-matrix operations
-
DGEMV performs one of the matrix-vector operations
-
DGEQR2 computes a QR factorization of a real m by n matrix A:
-
DGEQRF computes a QR factorization of a real M-by-N matrix A:
-
DGER performs the rank 1 operation A := alpha*x*y' + A,
-
DGETF2 computes an LU factorization of a general m-by-n matrix A
-
DGETRF computes an LU factorization of a general M-by-N matrix A
-
DGETRS solves a system of linear equations
-
DLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary
-
DLARF applies a real elementary reflector H to a real m by n matrix
-
DLARFB applies a real block reflector H or its transpose H' to a
-
DLARFT forms the triangular factor T of a real block reflector H
-
DLASWP performs a series of row interchanges on the matrix A.
-
DNRM2 returns the euclidean norm of a vector via the function
-
DORG2R generates an m by n real matrix Q with orthonormal columns,
-
DORGQR generates an M-by-N real matrix Q with orthonormal columns,
-
DSCAL scales a vector by a constant.
-
DSWAP interchanges two vectors.
-
DTBSV solves one of the systems of equations
-
DTRMM performs one of the matrix-matrix operations
-
DTRMV performs one of the matrix-vector operations
-
DTRSM solves one of the matrix equations
-
IDAMAX FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
-
ILAENV is called from the LAPACK routines to choose problem-dependent
-
LSAME returns .TRUE. if CA is the same letter as CB regardless of
-
XERBLA is an error handler for the LAPACK routines.
-
DLAMCH determines double precision machine parameters.
-
DLAMC1 determines the machine parameters given by BETA, T, RND, and
-
DLAMC2 determines the machine parameters specified in its argument
-
DLAMC3 is intended to force A and B to be stored prior to doing
-
DLAMC4 is a service routine for DLAMC2.
-
DlAMC5 attempts to compute RMAX, the largest machine floating-point
-
DLARFG generates a real elementary reflector H of order n, such
You can go up one level to
the FORTRAN77 source codes.
Last revised on 18 August 2008.