Streamer fluid modeling - An overview of ARCoS  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
proto.h
Go to the documentation of this file.
1 
5 #ifndef _RZ_ARRAY_H_
6 # include "rz_array.h"
7 #endif
8 
9 /* rz_array.c */
10 rz_array_t *rz_new_3d_a (int r0, int z0, int r1, int z1, int ntheta);
11 rz_array_t *rz_guest (rz_array_t *host, int r0, int z0, int r1, int z1);
12 void rz_set_zero (rz_array_t *array);
13 void rz_set_periodic (rz_array_t *array);
14 void rz_copy_bnd (rz_array_t *from, rz_array_t *to,
15  int sign, REAL *start_from, REAL *start_to,
16  int dim0, int inout_from, int inout_to,
17  int dim1, int dim1_0, int dim1_1,
18  int dim2, int dim2_0, int dim2_1);
19 void rz_set_bnd (rz_array_t *array, int sign, REAL *start, int dim0, int inout,
20  int dim1, int dim1_from, int dim1_to,
21  int dim2, int dim2_from, int dim2_to);
22 void rz_free (rz_array_t *array);
23 void rz_copy (rz_array_t *fro, int rfro, int zfro,
24  rz_array_t *to, int rto, int zto,
25  int rn, int zn);
26 void rz_copy_modes (rz_array_t *fro, int rfro, int zfro,
27  rz_array_t *to, int rto, int zto,
28  int rn, int zn, int nmode_fro, int nmode_to);
29 void rz_dump (rz_array_t *rz_array, const char *fname, const char *mode,
30  int r0, int z0, int r1, int z1);
31 void rz_dump_3d (rz_array_t *rz_array, const char *fname, const char *mode,
32  int r0, int z0, int r1, int z1, int ntheta);
33 void rz_axis_dump (const char *fname, int x0, int x1, double delta);
34 
35 
36 #ifndef _GRID_H_
37 # include "grid.h"
38 #endif
39 
40 /* grid.c */
41 int grid_max_depth_r (grid_t *grid);
42 double grid_rmin_r (grid_t *grid);
43 void grid_print_r (grid_t *grid, int indent);
44 int grid_contains (grid_t *grid, int i, int j, int check);
45 int grid_overlap (grid_t *grid1, grid_t *grid2, int buff1, int buff2,
46  int *left, int *bottom, int *right, int *top,
47  int *level_diff);
48 int grid_overlap_with_shifts (grid_t *grid1, grid_t *grid2,
49  int buff1, int buff2,
50  int *left, int *bottom, int *right, int *top,
51  int *level_diff, int shift_r, int shift_z);
52 void grid_inherit_ext_bound (grid_t *grid);
53 grid_t *grid_finest_containing_r (grid_t *grid, double r, double z);
54 int grid_howmany_children (grid_t *grid);
55 grid_t *grid_get_child (grid_t *grid, int n);
56 
57 
58 #ifndef _INTERPOL2_H_
59 # include "interpol2.h"
60 #endif
61 
62 interpol_t *interpol_new_a (double Lr, double Lz, interpol_method_t *method);
63 void interpol_free (interpol_t *this);
64 void interpol_set_stencil (interpol_t *this, double r0, double z0, ...);
66  interpol_t *this, double r0, double z0,
67  rz_array_t *ar,
68  int ir, int iz, int itheta);
69 void interpol_set_coeffs (interpol_t *this);
70 double interpol_apply (interpol_t *this, double r, double z);
71 
72 #ifndef _MAPPER_H_
73 # include "mapper.h"
74 #endif
75 
76 void map_grid (mapper_t **mappers, grid_t *source, grid_t *target, int ntheta,
77  int copy, int interpol, int coarsen, int s_buff, int t_buff);
78 void map_grid_r (mapper_t **mappers, grid_t *source, grid_t *target,
79  int ntheta, int copy, int interpol, int coarsen,
80  int s_buff, int t_buff);
81 void map_trees_r (mapper_t **mappers, grid_t *source, grid_t *target,
82  int ntheta, int copy, int interpol, int coarsen,
83  int s_buff, int t_buff);
84 
85 #ifndef _CDR_H_
86 # include "cdr.h"
87 #endif
88 
89 #ifndef _POISSON_H_
90 # include "poisson.h"
91 #endif
92 
93 /* cdr.c */
94 void cdr_init (void);
95 void cdr_end (void);
96 
97 cdr_grid_t *cdr_new_3d_a (int r0, int z0, int r1, int z1, int ntheta);
100 void cdr_set_periodic (cdr_grid_t *grid);
101 void cdr_free (cdr_grid_t *grid);
102 void cdr_free_r (cdr_grid_t *grid);
103 void cdr_calc_charge (cdr_grid_t *grid);
104 void cdr_calc_charge_r (cdr_grid_t *root);
105 void cdr_dft_charge_r (cdr_grid_t *grid, int sign);
108 void cdr_free_coarser_grids (cdr_grid_t *prev_root, int n);
109 void cdr_add_ext_field (cdr_grid_t *grid);
110 void cdr_add_ext_field_r (cdr_grid_t *grid);
111 void cdr_add_inhom_field_r (cdr_grid_t *cdr, double q);
112 void cdr_calc_eabs (cdr_grid_t *grid);
113 void cdr_calc_eabs_r (cdr_grid_t *grid);
114 void cdr_nonegative (cdr_grid_t *grid);
115 void cdr_nonegative_r (cdr_grid_t *grid);
116 pois_grid_t **cdr_calc_field_r (cdr_grid_t *grid, int return_pois);
117 void cdr_set_ext_bnd (cdr_grid_t *grid);
118 void cdr_set_ext_bnd_r (cdr_grid_t *grid);
119 void cdr_calc_d_dens (cdr_grid_t *grid);
120 void cdr_calc_d_dens_r (cdr_grid_t *grid);
121 void cdr_advect_diffu (cdr_grid_t *grid);
122 void cdr_advect_diffu_r (cdr_grid_t *grid);
123 
124 double cdr_courant (cdr_grid_t *grid);
125 void cdr_update (cdr_grid_t *orig, cdr_grid_t *dest, double h);
126 void cdr_rk2_update (cdr_grid_t *dens_0, cdr_grid_t *d_dens_1,
127  cdr_grid_t *d_dens_2, cdr_grid_t *dest,
128  double h);
129 void cdr_rk2_update_r (cdr_grid_t *dens_0, cdr_grid_t *d_dens_1,
130  cdr_grid_t *d_dens_2, cdr_grid_t *dest,
131  double h);
132 void cdr_self_update_r (cdr_grid_t *grid, double h);
133 void cdr_like_update_ar (cdr_grid_t *grid, cdr_grid_t *new_grid, double h);
134 double cdr_rk2 (cdr_grid_t *grid, double h, double t);
135 
136 void cdr_update_refined (cdr_grid_t **ptree);
137 void cdr_calc_maxs (cdr_grid_t *grid);
138 void cdr_refine (cdr_grid_t *grid);
139 void cdr_refine_r (cdr_grid_t *grid, cdr_grid_t *source);
140 void cdr_match_r (cdr_grid_t *grid1, cdr_grid_t *grid2);
141 void cdr_set_bnd (cdr_grid_t *grid);
142 void cdr_set_bnd_r (cdr_grid_t *grid);
143 
144 void cdr_restrict (cdr_grid_t *grid);
145 void cdr_restrict_r (cdr_grid_t *grid);
146 
147 void cdr_set_dens (cdr_grid_t *cdr, int species, int mode, double factor,
148  double (*f) (double, double, double));
149 void cdr_init_dens (cdr_grid_t *cdr);
151 
152 mapper_t **cdr_mappers_a (interpol_method_t *interp_method);
153 void cdr_free_mappers (mapper_t **mappers);
154 
155 void cdr_dump (cdr_grid_t *grid, const char *prefix, const char *name);
156 void cdr_dump_r (cdr_grid_t *grid, const char *prefix, const char *name,
157  FILE *infp, double sim_time);
158 cdr_grid_t *cdr_load_tree_r (const char *prefix, const char *name, FILE *infp);
159 void cdr_dump_frames (cdr_grid_t *grid, const char *prefix, const char *name);
160 
161 /* poisson.c */
162 void pois_init (void);
163 pois_grid_t *pois_new_a (int r0, int z0, int r1, int z1);
164 pois_grid_t *pois_new_3d_a (int r0, int z0, int r1, int z1, int ntheta);
165 void pois_free (pois_grid_t *grid);
166 void pois_free_r (pois_grid_t *grid);
167 pois_grid_t *pois_new_glob_a (int r0, int z0, int r1, int z1, int level);
168 pois_grid_t *pois_init_tree_a (int r0, int z0, int r1, int z1);
169 REAL *pois_boundary_a (pois_grid_t *grid, int boundary);
170 void pois_solve_grid (pois_grid_t *grid, pois_problem_t *prob,
171  double lambda, double s);
172 void pois_set_phi_boundaries (pois_grid_t *grid, REAL *boundaries[],
173  int left_uns, int right_neu, int bottom_neu,
174  int top_neu);
175 int pois_map_charge (pois_grid_t *pois, cdr_grid_t *cdr, int mode);
176 void pois_set_error (pois_grid_t *grid);
177 int pois_refine (pois_grid_t *grid, double threshold);
180  mapper_t **mappers, double es);
182  pois_problem_t *prob, int mode, double es);
183 void pois_solve_r (pois_grid_t *pois, cdr_grid_t *cdr, pois_problem_t *prob,
184  int mode, double es, double threshold);
185 double pois_phi_at (pois_grid_t *grid, double r, double z, double theta);
186 void pois_dump (pois_grid_t *grid, const char *prefix, const char *name);
187 void pois_dump_r (pois_grid_t *grid, const char *prefix, const char *name);
188 void pois_write_error_r (pois_grid_t *grid, FILE *fp);
189 void pois_error_measures (pois_grid_t *grid, double *L1, double *L2,
190  double *Lmax);
191 void pois_inhom_init (void);
192 double pois_inhom_phi (double r, double z);
193 double pois_inhom_er (double r, double z);
194 double pois_inhom_ez (double r, double z);
195 double pois_inhom_q_factor (pois_grid_t *pois);
196 void pois_add_inhom_phi_r (pois_grid_t *grid, double q);
197 
198 #ifndef _PHOTO_H_
199 # include "photo.h"
200 #endif
201 
202 /* photo.c */
203 void photo_init ();
204 void photo_register (double A, double lambda);
205 void photo_copy_list (photo_term_t *src, photo_term_t **dest);
206 void photo_unregister_all (void);
207 void photo_dft_r (cdr_grid_t *grid, int sign);
208 void photo_copy_source (cdr_grid_t *grid);
209 void photo_add_term (photo_term_t *term, cdr_grid_t *cdr);
210 void photo_add_term_r (photo_term_t *term, cdr_grid_t *cdr);
212 void photo_calc (photo_term_t *terms, cdr_grid_t *cdr);
213 void photo_load_file (char *fname);
214 
215 /* cstream.c */
216 void init_parameters(void);
217 void cstream_init (void);
218 void cstream_end (void);
219 void cstream_set_field_at_time (double t);
220 
221 /* dft.c */
222 void dft_transform (rz_array_t *in, rz_array_t *out, int sign);
223 void dft_diff (grid_t *grid, rz_array_t *f);
224 void dft_weight (cdr_grid_t *cdr, rz_array_t *var, double weights[],
225  double power);
226 void dft_out_weights (cdr_grid_t *grid, const char *prefix, double t);
227 void dft_perturb (cdr_grid_t *cdr, rz_array_t *var, double *epsilon_k);
228 void dft_dens_perturb_r (cdr_grid_t *grid, int species, double *epsilon_k);
229 
230 
231 #ifndef _REACTION_H_
232 # include "reaction.h"
233 #endif
234 
235 /* reaction.c */
236 int find_species_by_name(const char *spec_name);
237 void react_add (reaction_t *react);
238 void react_init ();
239 void react_apply_r (reaction_t *react, cdr_grid_t *grid, int overwrite);
240 void react_apply_all (cdr_grid_t *grid);
241 
242 #ifndef _REACT_TABLE_H_
243 # include "react_table.h"
244 #endif
245 
246 /* kinetic module (usually minimal.c) */
247 void kinetic_init (void);
248 
249 /* sprites module */
250 double spr_density_at (double altitude);
251 void spr_init ();
252 void spr_hook (cdr_grid_t *grid);
253 void spr_update (double altitude);
254 double spr_head_altitude (cdr_grid_t *grid, int sign);
255 
256 /* rt.c */
257 void kinetic_init (void);
258 void read_input_file(const char *f_kinetic_name, const char *filename);
259 
260 
261 
262 
263