dlz.h

00001 // copyright by benedikt oswald, all rights reserved, 2002-2006.
00002 // project - aqhdes2003
00003 // file name - dlz.c
00004 // file type - C include file
00005 // objective - define NUMPROC dlz to model discrete material layers in the z direction of the CoD
00006 // inheritance - derived from slocf.h
00007 // modified - 2004 aug 11, benedikt oswald, creation
00008 // modified -
00009 // required software - UG 3.1 or higher
00010 // file id -
00011 // feature - 
00012 
00013 #ifndef __DLZ__
00014 #define __DLZ__
00015 
00016 // include standard header files
00017 #include <math.h>
00018 #include <stdlib.h>
00019 #include <stdio.h>
00020 #include <string.h>
00021 #include <time.h>
00022 
00023 // include UG header files
00024 #include "gm.h"                             /* for data structure                                   */
00025 #include "ugstruct.h"                       /* for GetStringValue                                   */
00026 #include "misc.h"                           /* for MIN, MAX, PI, ...                                */
00027 #include "ugdevices.h"                      /* for UserWrite, PrintErrorMessage                     */ 
00028 #include "commands.h"                       /* for GetCurrentMultigrid                              */
00029 #include "cmdint.h"                         /* for CreateCommand                                    */
00030 #include "cmdint.h"                         /* for CreateCommand                                    */
00031 #include "cmdline.h"                        /* for command line processing                          */
00032 #include "general.h"                        /* for general desclarations                            */
00033 #include "np.h"                             /* for NUMPROC implementation                           */
00034 #include "assemble.h"                       /* for CreateCLASS implementation                       */
00035 #include "pfile.h"                          /* header file for parallel file access                 */
00036 #include "parallel.h"                       /* include parallel support                             */
00037 #include "compiler.h"
00038 #include "namespace.h"
00039 
00040 // include proprietary header files
00041 #include "aqhdSysParams.h"                  /* get system parameters from standard include file     */
00042 #include "aqhdReleaseInfo.h"                /* get release information                              */
00043 #include "aqhdPhysicoMath.h"                /* get release information                              */
00044 #include "linmaterials.h"                   /* get declaration of base NUMRPOC for linear materials */
00045 
00046 
00047 USING_UG_NAMESPACE
00048 USING_UGDIM_NAMESPACE
00049 
00050 
00051 /****************************************************************************/
00052 /*                                                                          */
00053 /* data structures used in this source file (exported data structures are   */
00054 /*        in the corresponding include file!)                               */
00055 /*                                                                          */
00056 /****************************************************************************/
00057 
00058 /* declare NUMPROC class and methods for 'NP_DISCRETE_MATERIAL_LAYERS';
00059    which implements a simple model for the situation of a GPR antenna
00060    lying on soil which variable electrical material properties in the z
00061    direction, i.e. in the direction going into the soil; we use the
00062    parameters given below to describe the distribution of material
00063    properties in the air-soil configuration:
00064    
00065    - electric material properties vary in the z dimension only
00066    - z axis is directed as in cartesian coordinate system, i.e z=0 at bottom
00067    - fraction of interval filled with air material properties
00068    - use NUMPROC NP_LINEAR_MATERIALS, defined in linmaterials.h
00069 */
00070 
00071 struct np_discrete_layers_z
00072 {
00073     NP_LINEAR_MATERIALS linmat;  // uses NP_LINEARMATERIALS NUMPROC
00074 
00075     INT nl;                      // number of layers in z direction
00076     DOUBLE hz;                   // length of interval over which material properties vary
00077 
00078     DOUBLE *lthickness;          // tickness of layer in absolute dimensions
00079     DOUBLE *er;                  // array stores relative permittivity values of discrete layers
00080     DOUBLE *mr;                  // array stores relative permeability values of discrete layers
00081     DOUBLE *sigma;               // array stores ohmic conductivity of discrete layers
00082     DOUBLE *zintrfc;             // maximum z coordinate of a layer
00083 
00084     DOUBLE xmin;           // for definition of air space between layers stratified in z direction and truncation of CoD
00085     DOUBLE xmax;           // for definition of air space between layers stratified in z direction and truncation of CoD
00086     DOUBLE ymin;           // for definition of air space between layers stratified in z direction and truncation of CoD
00087     DOUBLE ymax;           // for definition of air space between layers stratified in z direction and truncation of CoD
00088 };
00089 typedef struct np_discrete_layers_z NP_DISCRETE_LAYERS_Z;
00090 
00091 INT InitDLZ(void); /* check class & methods into UG */
00092 
00093 #endif

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