GRASS Programmer's Manual
6.4.2(2012)
|
00001 00002 /***************************************************************************** 00003 * 00004 * MODULE: Grass PDE Numerical Library 00005 * AUTHOR(S): Soeren Gebbert, Berlin (GER) Dec 2006 00006 * soerengebbert <at> gmx <dot> de 00007 * 00008 * PURPOSE: Calculation of heatflow 00009 * part of the gpde library 00010 * 00011 * COPYRIGHT: (C) 2000 by the GRASS Development Team 00012 * 00013 * This program is free software under the GNU General Public 00014 * License (>=v2). Read the file COPYING that comes with GRASS 00015 * for details. 00016 * 00017 *****************************************************************************/ 00018 00019 #ifndef _N_HEATFLOW_H_ 00020 #define _N_HEATFLOW_H_ 00021 #include "N_pde.h" 00022 00023 typedef struct 00024 { 00025 N_array_3d *t; /*temperature */ 00026 N_array_3d *t_start; /*temperature start conditions */ 00027 N_array_3d *gamma_x; /*x part of the gamma tensor */ 00028 N_array_3d *gamma_y; /*y part of the gamma tensor */ 00029 N_array_3d *gamma_z; /*z part of the gamma tensor */ 00030 N_array_3d *q; /*sources and sinks */ 00031 N_array_3d *rho; /*density */ 00032 N_array_3d *c; /*c */ 00033 00034 N_array_3d *status; /*active/inactive/dirichlet cell status */ 00035 00036 double dt; /*calculation time */ 00037 00038 } N_heatflow_data3d; 00039 00040 typedef struct 00041 { 00042 N_array_2d *t; /*temperature */ 00043 N_array_2d *t_start; /*temperature start conditions */ 00044 N_array_2d *gamma_x; /*x part of the gamma tensor */ 00045 N_array_2d *gamma_y; /*y part of the gamma tensor */ 00046 N_array_2d *q; /*sources and sinks */ 00047 N_array_2d *rho; /*density */ 00048 N_array_2d *c; /*c */ 00049 00050 N_array_2d *status; /*active/inactive/dirichlet cell status */ 00051 00052 double dt; /*calculation time */ 00053 00054 } N_heatflow_data2d; 00055 00056 extern N_les_row_entries *N_callback_heatflow_3d(void *heatdata, 00057 N_geom_data * geom, 00058 int depth, int row, int col); 00059 extern N_les_row_entries *N_callback_heatflow_2d(void *heatdata, 00060 N_geom_data * geom, int row, 00061 int col); 00062 extern N_heatflow_data3d *N_alloc_heatflow_data3d(int depths, int rows, 00063 int cols); 00064 extern N_heatflow_data2d *N_alloc_heatflow_data2d(int rows, int cols); 00065 extern void N_free_heatflow_data3d(N_heatflow_data3d * data); 00066 extern void N_free_heatflow_data2d(N_heatflow_data2d * data); 00067 #endif