root/src/spooles.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*     CALCULIX - A 3-dimensional finite element program                 */
   2 /*              Copyright (C) 1998 Guido Dhondt                          */
   3 /*     This program is free software; you can redistribute it and/or     */
   4 /*     modify it under the terms of the GNU General Public License as    */
   5 /*     published by the Free Software Foundation; either version 2 of    */
   6 /*     the License, or (at your option) any later version.               */
   7 
   8 /*     This program is distributed in the hope that it will be useful,   */
   9 /*     but WITHOUT ANY WARRANTY; without even the implied warranty of    */ 
  10 /*     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the      */
  11 /*     GNU General Public License for more details.                      */
  12 
  13 /*     You should have received a copy of the GNU General Public License */
  14 /*     along with this program; if not, write to the Free Software       */
  15 /*     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.         */
  16 
  17 #ifndef __CCX_SPOOLES_H
  18 #define __CCX_SPOOLES_H
  19 
  20 /*
  21  * seperated from CalculiX.h: otherwise everyone would have to include
  22  * the spooles header files
  23  */
  24 
  25 #include <pthread.h>
  26 #include <misc.h>
  27 #include <FrontMtx.h>
  28 #include <SymbFac.h>
  29 #if USE_MT
  30 #include <MT/spoolesMT.h>
  31 #endif
  32 
  33 /* increase this for debugging */
  34 #define DEBUG_LVL       0
  35 
  36 struct factorinfo 
  37 {
  38         ITG size;
  39         double cpus[11];
  40         IV *newToOldIV, *oldToNewIV;
  41         SolveMap *solvemap;
  42         FrontMtx *frontmtx;
  43         SubMtxManager *mtxmanager;
  44         ETree *frontETree;
  45         ITG nthread;
  46         FILE *msgFile;
  47 
  48 };
  49 
  50 void spooles_factor(double *ad, double *au, double *adb, double *aub, 
  51                     double *sigma, ITG *icol, ITG *irow,
  52                     ITG *neq, ITG *nzs, ITG *symmetryflag,
  53                     ITG *inputformat, ITG *nzs3);
  54 
  55 void spooles_solve(double *b, ITG *neq);
  56 
  57 void spooles_cleanup();
  58 
  59 void spooles_factor_rad(double *ad, double *au, double *adb, double *aub, 
  60                     double *sigma, ITG *icol, ITG *irow,
  61                     ITG *neq, ITG *nzs, ITG *symmetryflag,
  62                     ITG *inputformat);
  63 
  64 void spooles_solve_rad(double *b, ITG *neq);
  65 
  66 void spooles_cleanup_rad();
  67 
  68 #endif

/* [<][>][^][v][top][bottom][index][help] */