00001 // copyright by benedikt oswald, all rights reserved, 2002-2006. 00002 // project - aqhdes2003 00003 // file name - iembc.h 00004 // file type - C include file 00005 // objective - enforce electromagnetic boundary conditions 00006 // creation - 2003 mar 18 ~ 20:23:00 by benedikt oswald 00007 // modified - 00008 // required software - UG 3.1 or higher 00009 // rights for UG - cf. paper by Bastian et al., 1997 00010 // file id - 00011 // inheritance - 00012 // feature - PEC (perfect electrical conductor) CASE: 00013 // feature - enforces electromagnetic boundary conditions on the first 00014 // feature - benchmark problems that we analyze; make sure that 00015 // feature - the electric field coefficients of edges that belong 00016 // feature - to boundary triangles are zero ( E cros n = 0), i.e. 00017 // feature - there is only a normal component of the electric field, 00018 // feature - and also that magnetic flux coefficients of boundary 00019 // feature - triangles are set to zero ( B dot n = 0), i.e. there 00020 // feature - is no normal component of the magnetic flux density; 00021 00022 /****************************************************************************/ 00023 /* */ 00024 /* auto include mechanism and other include files */ 00025 /* */ 00026 /****************************************************************************/ 00027 00028 #include <math.h> 00029 #include <stdlib.h> 00030 #include <stdio.h> 00031 #include <string.h> 00032 00033 #ifndef __EMBC__ 00034 #define __EMBC__ 00035 00036 #ifndef __COMPILER__ 00037 #include "compiler.h" 00038 #endif 00039 #ifndef __GM__ 00040 #include "gm.h" 00041 #endif 00042 00043 // include UG header files 00044 #include "gm.h" /* for data structure */ 00045 #include "ugstruct.h" /* for GetStringValue */ 00046 #include "misc.h" /* for MIN, MAX, PI, ... */ 00047 #include "ugdevices.h" /* for UserWrite, PrintErrorMessage */ 00048 #include "commands.h" /* for GetCurrentMultigrid */ 00049 #include "cmdint.h" /* for CreateCommand */ 00050 #include "cmdint.h" /* for CreateCommand */ 00051 #include "cmdline.h" /* for command line processing */ 00052 #include "general.h" /* for general desclarations */ 00053 #include "np.h" /* for NUMPROC implementation */ 00054 #include "assemble.h" /* for CreateCLASS implementation */ 00055 #include "compiler.h" 00056 #include "namespace.h" 00057 00058 USING_UG_NAMESPACE 00059 USING_UGDIM_NAMESPACE 00060 00061 00062 /****************************************************************************/ 00063 /* */ 00064 /* defines in the following order */ 00065 /* */ 00066 /* compile time constants defining static data size (i.e. arrays) */ 00067 /* other constants */ 00068 /* macros */ 00069 /* */ 00070 /****************************************************************************/ 00071 00072 /****************************************************************************/ 00073 /* */ 00074 /* data structures exported by the corresponding source file */ 00075 /* */ 00076 /****************************************************************************/ 00077 00078 /****************************************************************************/ 00079 /* */ 00080 /* definition of exported global variables */ 00081 /* */ 00082 /****************************************************************************/ 00083 00084 00085 /****************************************************************************/ 00086 /* */ 00087 /* function declarations */ 00088 /* */ 00089 /****************************************************************************/ 00090 00091 INT EnforceIEMBC(NP_BASE *base, 00092 INT embctype); 00093 00094 #endif