00001 /* 00002 * Linear Algebra Tools 00003 */ 00004 /* ----------------------------------------------------------------------------------------- 00005 $Id: linalg.h 573 2006-11-20 00:25:28Z svacek $ 00006 $Author: svacek $ 00007 ----------------------------------------------------------------------------------------- */ 00008 #ifndef _LINALG_SVH 00009 #define _LINALG_SVH 00010 /* -------------------------------------------------------------------------- */ 00011 /*@{*/ 00012 /** \defgroup LINEAR_ALGEBRA Linear Algebra Tools */ 00013 /** \addtogroup LINEAR_ALGEBRA */ 00014 /* -------------------------------------------------------------------------- */ 00015 #include "vector.h" 00016 #include "matrix.h" 00017 /* -------------------------------------------------------------------------- */ 00018 #include "sparse.h" 00019 /* --------------------------------------------------------------------------- */ 00020 /** Fluid motion 2d description (u,v,p) includes derivatives */ 00021 typedef struct 00022 { 00023 vector u,ux,uy,uxx,uyy,uxy; /**< x-component and derivatives */ 00024 vector v,vx,vy,vxx,vyy,vxy; /**< y-component and derivatives */ 00025 vector p,px,py; /**< pressure component and derivatives */ 00026 } motion; 00027 /* --------------------------------------------------------------------------- */ 00028 /** Basefunction storage - includes derivatives */ 00029 typedef struct 00030 { 00031 vector N,Nx,Ny,Nxx,Nyy,Nxy; /**< function with its derivatives */ 00032 } basefunction; 00033 /* --------------------------------------------------------------------------- */ 00034 /** Deallocation of BFN */ 00035 void DestructBaseFn(basefunction *H); 00036 /** Allocation of BFN */ 00037 void ConstructBaseFn(basefunction *H); 00038 void LinkBaseFn(basefunction *H,const basefunction U); 00039 /** Deallocation of MOTION */ 00040 void DestructMotion(motion *U); 00041 /** Allocation of MOTION */ 00042 void ConstructMotion(motion *U); 00043 /** Link to MOTION */ 00044 void LinkMotion(motion *U,const motion V); 00045 long SetMotion(motion *U,double *p); 00046 long SetBaseFn(basefunction *H,double *p); 00047 /* --------------------------------------------------------------------------- */ 00048 /*@}*/ 00049 #endif 00050 /* ------------------------------------------------------------------------------- */ 00051 00052 00053 00054 00055