GRASS GIS 8 Programmer's Manual  8.5.0dev(2024)-bea8435a9e
N_heatflow.h
Go to the documentation of this file.
1 /*****************************************************************************
2  *
3  * MODULE: Grass PDE Numerical Library
4  * AUTHOR(S): Soeren Gebbert, Berlin (GER) Dec 2006
5  * soerengebbert <at> gmx <dot> de
6  *
7  * PURPOSE: Calculation of heatflow
8  * part of the gpde library
9  *
10  * COPYRIGHT: (C) 2000 by the GRASS Development Team
11  *
12  * This program is free software under the GNU General Public
13  * License (>=v2). Read the file COPYING that comes with GRASS
14  * for details.
15  *
16  *****************************************************************************/
17 
18 #ifndef _N_HEATFLOW_H_
19 #define _N_HEATFLOW_H_
20 #include "N_pde.h"
21 
22 typedef struct {
23  N_array_3d *t; /*temperature */
24  N_array_3d *t_start; /*temperature start conditions */
25  N_array_3d *gamma_x; /*x part of the gamma tensor */
26  N_array_3d *gamma_y; /*y part of the gamma tensor */
27  N_array_3d *gamma_z; /*z part of the gamma tensor */
28  N_array_3d *q; /*sources and sinks */
29  N_array_3d *rho; /*density */
30  N_array_3d *c; /*c */
31 
32  N_array_3d *status; /*active/inactive/dirichlet cell status */
33 
34  double dt; /*calculation time */
35 
37 
38 typedef struct {
39  N_array_2d *t; /*temperature */
40  N_array_2d *t_start; /*temperature start conditions */
41  N_array_2d *gamma_x; /*x part of the gamma tensor */
42  N_array_2d *gamma_y; /*y part of the gamma tensor */
43  N_array_2d *q; /*sources and sinks */
44  N_array_2d *rho; /*density */
45  N_array_2d *c; /*c */
46 
47  N_array_2d *status; /*active/inactive/dirichlet cell status */
48 
49  double dt; /*calculation time */
50 
52 
53 extern N_data_star *N_callback_heatflow_3d(void *heatdata, N_geom_data *geom,
54  int depth, int row, int col);
55 extern N_data_star *N_callback_heatflow_2d(void *heatdata, N_geom_data *geom,
56  int row, int col);
57 extern N_heatflow_data3d *N_alloc_heatflow_data3d(int depths, int rows,
58  int cols);
59 extern N_heatflow_data2d *N_alloc_heatflow_data2d(int rows, int cols);
60 
62 
64 #endif
N_data_star * N_callback_heatflow_3d(void *heatdata, N_geom_data *geom, int depth, int row, int col)
N_data_star * N_callback_heatflow_2d(void *heatdata, N_geom_data *geom, int row, int col)
void N_free_heatflow_data3d(N_heatflow_data3d *data)
N_heatflow_data3d * N_alloc_heatflow_data3d(int depths, int rows, int cols)
void N_free_heatflow_data2d(N_heatflow_data2d *data)
N_heatflow_data2d * N_alloc_heatflow_data2d(int rows, int cols)
Matrix entries for a mass balance 5/7/9 star system.
Definition: N_pde.h:295
Geometric information about the structured grid.
Definition: N_pde.h:101
N_array_2d * q
Definition: N_heatflow.h:43
N_array_2d * rho
Definition: N_heatflow.h:44
N_array_2d * t
Definition: N_heatflow.h:39
N_array_2d * c
Definition: N_heatflow.h:45
N_array_2d * t_start
Definition: N_heatflow.h:40
N_array_2d * status
Definition: N_heatflow.h:47
N_array_2d * gamma_y
Definition: N_heatflow.h:42
N_array_2d * gamma_x
Definition: N_heatflow.h:41
N_array_3d * gamma_z
Definition: N_heatflow.h:27
N_array_3d * t
Definition: N_heatflow.h:23
N_array_3d * t_start
Definition: N_heatflow.h:24
N_array_3d * gamma_x
Definition: N_heatflow.h:25
N_array_3d * rho
Definition: N_heatflow.h:29
N_array_3d * q
Definition: N_heatflow.h:28
N_array_3d * c
Definition: N_heatflow.h:30
N_array_3d * status
Definition: N_heatflow.h:32
N_array_3d * gamma_y
Definition: N_heatflow.h:26