IFPACK  Development
 All Classes Files Functions Variables Enumerations Friends
Vec_dh.h
00001 /*@HEADER
00002 // ***********************************************************************
00003 //
00004 //       Ifpack: Object-Oriented Algebraic Preconditioner Package
00005 //                 Copyright (2002) Sandia Corporation
00006 //
00007 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00008 // license for use of this work by or on behalf of the U.S. Government.
00009 //
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are
00012 // met:
00013 //
00014 // 1. Redistributions of source code must retain the above copyright
00015 // notice, this list of conditions and the following disclaimer.
00016 //
00017 // 2. Redistributions in binary form must reproduce the above copyright
00018 // notice, this list of conditions and the following disclaimer in the
00019 // documentation and/or other materials provided with the distribution.
00020 //
00021 // 3. Neither the name of the Corporation nor the names of the
00022 // contributors may be used to endorse or promote products derived from
00023 // this software without specific prior written permission.
00024 //
00025 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00026 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00027 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00028 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00029 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00030 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00031 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00032 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00033 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00034 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00035 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00036 //
00037 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
00038 //
00039 // ***********************************************************************
00040 //@HEADER
00041 */
00042 
00043 #ifndef VEC_DH_H
00044 #define VEC_DH_H
00045 
00046 #include "euclid_common.h"
00047 #ifdef __cplusplus
00048 extern "C"
00049 {
00050 #endif
00051 
00052   struct _vec_dh
00053   {
00054     int n;
00055     double *vals;
00056   };
00057 
00058   extern void Vec_dhCreate (Vec_dh * v);
00059   extern void Vec_dhDestroy (Vec_dh v);
00060   extern void Vec_dhInit (Vec_dh v, int size);
00061   /* allocates storage, but does not initialize values */
00062 
00063   extern void Vec_dhDuplicate (Vec_dh v, Vec_dh * out);
00064   /* creates vec and allocates storage, but neither
00065    * initializes nor copies values 
00066    */
00067 
00068   extern void Vec_dhCopy (Vec_dh x, Vec_dh y);
00069   /* copies values from x to y;
00070    * y must have proper storage allocated,
00071    * e.g, through previous call to Vec_dhDuplicate,
00072    * or Vec_dhCreate and Vec_dhInit.
00073    */
00074 
00075   extern void Vec_dhSet (Vec_dh v, double value);
00076   extern void Vec_dhSetRand (Vec_dh v);
00077 
00078   extern void Vec_dhRead (Vec_dh * v, int ignore, char *filename);
00079   extern void Vec_dhReadBIN (Vec_dh * v, char *filename);
00080   extern void Vec_dhPrint (Vec_dh v, SubdomainGraph_dh sg, char *filename);
00081   extern void Vec_dhPrintBIN (Vec_dh v, SubdomainGraph_dh sg, char *filename);
00082 #ifdef __cplusplus
00083 }
00084 #endif
00085 #endif
 All Classes Files Functions Variables Enumerations Friends