umfpack_wsolve.h

Go to the documentation of this file.
00001 /* ========================================================================== */
00002 /* === umfpack_wsolve ======================================================= */
00003 /* ========================================================================== */
00004 
00005 /* -------------------------------------------------------------------------- */
00006 /* UMFPACK Version 4.3 (Jan. 16, 2004), Copyright (c) 2004 by Timothy A.      */
00007 /* Davis.  All Rights Reserved.  See ../README for License.                   */
00008 /* email: davis@cise.ufl.edu    CISE Department, Univ. of Florida.            */
00009 /* web: http://www.cise.ufl.edu/research/sparse/umfpack                       */
00010 /* -------------------------------------------------------------------------- */
00011 
00012 int umfpack_di_wsolve
00013 (
00014     int sys,
00015     const int Ap [ ],
00016     const int Ai [ ],
00017     const double Ax [ ],
00018     double X [ ],
00019     const double B [ ],
00020     void *Numeric,
00021     const double Control [UMFPACK_CONTROL],
00022     double Info [UMFPACK_INFO],
00023     int Wi [ ],
00024     double W [ ]
00025 ) ;
00026 
00027 long umfpack_dl_wsolve
00028 (
00029     long sys,
00030     const long Ap [ ],
00031     const long Ai [ ],
00032     const double Ax [ ],
00033     double X [ ],
00034     const double B [ ],
00035     void *Numeric,
00036     const double Control [UMFPACK_CONTROL],
00037     double Info [UMFPACK_INFO],
00038     long Wi [ ],
00039     double W [ ]
00040 ) ;
00041 
00042 int umfpack_zi_wsolve
00043 (
00044     int sys,
00045     const int Ap [ ],
00046     const int Ai [ ],
00047     const double Ax [ ], const double Az [ ],
00048     double Xx [ ],       double Xz [ ],
00049     const double Bx [ ], const double Bz [ ],
00050     void *Numeric,
00051     const double Control [UMFPACK_CONTROL],
00052     double Info [UMFPACK_INFO],
00053     int Wi [ ],
00054     double W [ ]
00055 ) ;
00056 
00057 long umfpack_zl_wsolve
00058 (
00059     long sys,
00060     const long Ap [ ],
00061     const long Ai [ ],
00062     const double Ax [ ], const double Az [ ],
00063     double Xx [ ],       double Xz [ ],
00064     const double Bx [ ], const double Bz [ ],
00065     void *Numeric,
00066     const double Control [UMFPACK_CONTROL],
00067     double Info [UMFPACK_INFO],
00068     long Wi [ ],
00069     double W [ ]
00070 ) ;
00071 
00072 /*
00073 double int Syntax:
00074 
00075     #include "umfpack.h"
00076     void *Numeric ;
00077     int status, *Ap, *Ai, *Wi, sys ;
00078     double *B, *X, *Ax, *W, Info [UMFPACK_INFO], Control [UMFPACK_CONTROL] ;
00079     status = umfpack_di_wsolve (sys, Ap, Ai, Ax, X, B, Numeric,
00080         Control, Info, Wi, W) ;
00081 
00082 double long Syntax:
00083 
00084     #include "umfpack.h"
00085     void *Numeric ;
00086     long status, *Ap, *Ai, *Wi, sys ;
00087     double *B, *X, *Ax, *W, Info [UMFPACK_INFO], Control [UMFPACK_CONTROL] ;
00088     status = umfpack_dl_wsolve (sys, Ap, Ai, Ax, X, B, Numeric,
00089         Control, Info, Wi, W) ;
00090 
00091 complex int Syntax:
00092 
00093     #include "umfpack.h"
00094     void *Numeric ;
00095     int status, *Ap, *Ai, *Wi, sys ;
00096     double *Bx, *Bz, *Xx, *Xz, *Ax, *Az, *W,
00097         Info [UMFPACK_INFO], Control [UMFPACK_CONTROL] ;
00098     status = umfpack_zi_wsolve (sys, Ap, Ai, Ax, Az, Xx, Xz, Bx, Bz, Numeric,
00099         Control, Info, Wi, W) ;
00100 
00101 complex long Syntax:
00102 
00103     #include "umfpack.h"
00104     void *Numeric ;
00105     long status, *Ap, *Ai, *Wi, sys ;
00106     double *Bx, *Bz, *Xx, *Xz, *Ax, *Az, *W,
00107         Info [UMFPACK_INFO], Control [UMFPACK_CONTROL] ;
00108     status = umfpack_zl_wsolve (sys, Ap, Ai, Ax, Az, Xx, Xz, Bx, Bz, Numeric,
00109         Control, Info, Wi, W) ;
00110 
00111 Purpose:
00112 
00113     Given LU factors computed by umfpack_*_numeric (PAQ=LU) and the
00114     right-hand-side, B, solve a linear system for the solution X.  Iterative
00115     refinement is optionally performed.  This routine is identical to
00116     umfpack_*_solve, except that it does not dynamically allocate any workspace.
00117     When you have many linear systems to solve, this routine is faster than
00118     umfpack_*_solve, since the workspace (Wi, W) needs to be allocated only
00119     once, prior to calling umfpack_*_wsolve.
00120 
00121 Returns:
00122 
00123     The status code is returned.  See Info [UMFPACK_STATUS], below.
00124 
00125 Arguments:
00126 
00127     Int sys ;           Input argument, not modified.
00128     Int Ap [n+1] ;      Input argument, not modified.
00129     Int Ai [nz] ;       Input argument, not modified.
00130     double Ax [nz] ;    Input argument, not modified.
00131     double X [n] ;      Output argument.
00132     double B [n] ;      Input argument, not modified.
00133     void *Numeric ;     Input argument, not modified.
00134     double Control [UMFPACK_CONTROL] ;  Input argument, not modified.
00135     double Info [UMFPACK_INFO] ;        Output argument.
00136 
00137     for complex versions:
00138     double Az [nz] ;    Input argument, not modified, imaginary part
00139     double Xx [n] ;     Output argument, real part.
00140     double Xz [n] ;     Output argument, imaginary part
00141     double Bx [n] ;     Input argument, not modified, real part
00142     double Bz [n] ;     Input argument, not modified, imaginary part
00143 
00144         The above arguments are identical to umfpack_*_solve, except that the
00145         error code UMFPACK_ERROR_out_of_memory will not be returned in
00146         Info [UMFPACK_STATUS], since umfpack_*_wsolve does not allocate any
00147         memory.
00148 
00149     Int Wi [n] ;                Workspace.
00150     double W [c*n] ;            Workspace, where c is defined below.
00151 
00152         The Wi and W arguments are workspace used by umfpack_*_wsolve.  They
00153         need not be initialized on input, and their contents are undefined on
00154         output.  The size of W depends on whether or not iterative refinement is
00155         used, and which version (real or complex) is called.  Iterative
00156         refinement is performed if Ax=b, A'x=b, or A.'x=b is being solved,
00157         Control [UMFPACK_IRSTEP] > 0, and A is nonsingular.  The size of W is
00158         given below:
00159 
00160                                 no iter.        with iter.
00161                                 refinement      refinement
00162         umfpack_di_wsolve       n               5*n
00163         umfpack_dl_wsolve       n               5*n
00164         umfpack_zi_wsolve       4*n             10*n
00165         umfpack_zl_wsolve       4*n             10*n
00166 */

Generated on Sun May 27 11:59:43 2007 for FEMFLUID by  doxygen 1.4.6