auxiliary.h

00001 // copyright by benedikt oswald, all rights reserved, 2002-2006.
00002 // project - aqhdes2003
00003 // file name - auxiliary.c
00004 // file type - C include file file
00005 // objective - povide Whitney base functionality
00006 // creation - 2004 jan 31 ~ 00:00:00 by holger gerhards
00007 // modified - 2004 feb 12 ~ 15:15:00 by benedikt oswald, adapted to overall solver structure
00008 // modified - 2004 feb 23 ~ 14:00:00 by holger gerhards, include new functions (efld2dslice, efld3dvoxel,GlobalVectorOut)
00009 // modified - 2004 feb 23 ~ 14:00:00 by holger gerhards, include modi for some functions
00010 // modified - 2004 mar 04 ~ 13:00:00 by holger gerhards, include new functions (IntegerOut, DoubleOut)
00011 // modified - 2004 mar 08 ~ 10:30:00 by holger gerhards, added Integer "timestep" in GlobalMatrixOut, 
00012 //                                                             GlobalVectorOut, IntegerOut, DoubleOut  
00013 // required software - UG 3.1 or higher
00014 // file id -
00015 // feature - implements function declarations from whitney.h
00016 
00017 #ifndef __AUX__
00018 #define __AUX__
00019 
00020 #include <stddef.h>
00021 #include <math.h>
00022 #include <stdlib.h>
00023 #include <stdio.h>
00024 #include <string.h>
00025 
00026 #include "gm.h"
00027 #include "parallel.h"
00028 #include "evm.h"
00029 #include "shapes.h"
00030 #include "misc.h"
00031 #include "ugdevices.h"
00032 #include "np.h"
00033 #include "assemble.h"
00034 #include "disctools.h"
00035 #include "general.h"
00036 #include "ugstruct.h"
00037 #include "quadrature.h"
00038 #include "cmdline.h"
00039 #include "udm.h"
00040 #include "commands.h"
00041 #include "cmdint.h"
00042 
00043 #include "aqhdPhysicoMath.h"
00044 #include "aqhdSysParams.h"
00045 #include "aqhdMaterials.h"
00046 #include "aqhdBaseTypes.h"
00047 #include "disconst.h"
00048 #include "whitney.h"
00049 
00050 /* PUBLIC CONSTANT DECLARATION */
00051 
00052 #define NORM_OK   0
00053 #define NORM_BAD  1
00054 #define DIST_OK   0
00055 
00056 #define MATHEMATICA      1
00057 #define ONLY_NUM         2
00058 #define ABSOLUTE         3
00059 #define X_COMPONENT      4
00060 #define Y_COMPONENT      5
00061 #define Z_COMPONENT      6
00062 #define ALL_COMPONENTS   7
00063 #define BRACKETS         8
00064 
00065 #define CHECK_LOCAL      9
00066 #define EFIELD          10
00067 #define OUTPUT_ONLY     11
00068 
00069 #define MAT_CLEAR       12
00070 #define MAT_SCALE       13
00071 #define MAT_ADD         14
00072 
00073 /* function recuperates the number of the corner that is opposite a given side in a tetrahedron */
00074 INT CornerOppositeToSideOnTetrahedron(ELEMENT *t,INT s);
00075 
00076 /* function recuperates the number of the side that is opposite a given corner in a tetrahedron */
00077 INT SideOppositeToCorner(ELEMENT *t,INT i);
00078 
00079 /* proprietary implementation of global-to-local coordinate conversion function */
00080 INT GlobalToLocalTetrahedron(INT ncoe,DOUBLE **cornercoord, DOUBLE *globalcoord,DOUBLE *localcoord);
00081 
00082 /* proprietary implementation of FindElementFromPosition */
00083 ELEMENT *FindTetrahedronFromPosition (GRID *theGrid,DOUBLE *pos);
00084 
00085 /* define a normal vector on a boundary segment */
00086 INT NormalVecOnBounSeg(INT bn , DOUBLE_VECTOR norm);
00087 
00088 /* define a distance to a boundary segment    */
00089 INT DistanceToBounSegments( DOUBLE *cartcoords , DOUBLE *distance );
00090 
00091 /* give output of a local matrix */
00092 void LocalMatrixOut(ELEMENT *t, MATDATA_DESC *M, INT mode, char *name, char *zusatz);
00093 
00094 /* give output of a local vector */
00095 void LocalVectorOut(ELEMENT *t, VECDATA_DESC *V, INT mode, char *name, char *zusatz);
00096 
00097 /* gives global matrix out */
00098 INT GlobalMatrixOut(MATDATA_DESC *A, INT mode, INT timestep, char *name, char *zusatz);
00099 
00100 /* gives global vector out */
00101 INT GlobalVectorOut(VECDATA_DESC *A, INT mode, INT timestep, char *name, char *zusatz); 
00102 
00103 /* gives global matrix out - for ARPACK */
00104 INT GlobalMatrixARPACK(MATDATA_DESC *A, char *name, INT mode, INT anzahl); 
00105 
00106 /* modify matrix according to mode */
00107 INT ModifyMatrix(MATDATA_DESC *A, INT mode, DOUBLE value);
00108 
00109 /* global matrix clear */
00110 INT aqmatclear(MATDATA_DESC *A);
00111 
00112 /* gives integer value out */
00113 void IntegerOut(INT a, INT mode, INT timestep, char *name, char *zusatz);
00114 
00115 /* gives double value out */
00116 void DoubleOut(DOUBLE a, INT mode, INT timestep, char *name, char *zusatz);
00117 
00118 #endif

Generated on Fri Oct 26 14:04:29 2007 for acheron3d by  doxygen 1.4.7