Files @ b7792cb187f7
Branch filter:

Location: MD/arcos/include/proto.h - annotation

greta
Edited file README via RhodeCode
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
/** @file proto.h
 *  @brief Function prototypes for exported functions.
 */

#ifndef _RZ_ARRAY_H_
# include "rz_array.h"
#endif

/* rz_array.c */
rz_array_t *rz_new_3d_a (int r0, int z0, int r1, int z1, int ntheta);
rz_array_t *rz_guest (rz_array_t *host, int r0, int z0, int r1, int z1);
void rz_set_zero (rz_array_t *array);
void rz_set_periodic (rz_array_t *array);
void rz_copy_bnd (rz_array_t *from, rz_array_t *to, 
		  int sign, REAL *start_from, REAL *start_to, 
		  int dim0, int inout_from, int inout_to,
		  int dim1, int dim1_0, int dim1_1, 
		  int dim2, int dim2_0, int dim2_1);
void rz_set_bnd (rz_array_t *array, int sign, REAL *start, int dim0, int inout,
		 int dim1, int dim1_from, int dim1_to, 
		 int dim2, int dim2_from, int dim2_to);
void rz_free (rz_array_t *array);
void rz_copy (rz_array_t *fro, int rfro, int zfro, 
	      rz_array_t *to, int rto, int zto,
	      int rn, int zn);
void rz_copy_modes (rz_array_t *fro, int rfro, int zfro, 
		   rz_array_t *to, int rto, int zto,
		    int rn, int zn, int nmode_fro, int nmode_to);
void rz_dump (rz_array_t *rz_array, const char *fname, const char *mode,
	      int r0, int z0, int r1, int z1);
void rz_dump_3d (rz_array_t *rz_array, const char *fname, const char *mode,
		 int r0, int z0, int r1, int z1, int ntheta);
void rz_axis_dump (const char *fname, int x0, int x1, double delta);


#ifndef _GRID_H_
# include "grid.h"
#endif

/* grid.c */
int grid_max_depth_r (grid_t *grid);
double grid_rmin_r (grid_t *grid);
void grid_print_r (grid_t *grid, int indent);
int grid_contains (grid_t *grid, int i, int j, int check);
int grid_overlap (grid_t *grid1, grid_t *grid2, int buff1, int buff2,
		  int *left, int *bottom, int *right, int *top, 
		  int *level_diff);
int grid_overlap_with_shifts (grid_t *grid1, grid_t *grid2, 
			      int buff1, int buff2, 
			      int *left, int *bottom, int *right, int *top, 
			      int *level_diff, int shift_r, int shift_z);
void grid_inherit_ext_bound (grid_t *grid);
grid_t *grid_finest_containing_r (grid_t *grid, double r, double z);
int grid_howmany_children (grid_t *grid);
grid_t *grid_get_child (grid_t *grid, int n);


#ifndef _INTERPOL2_H_
# include "interpol2.h"
#endif

interpol_t *interpol_new_a (double Lr, double Lz, interpol_method_t *method);
void interpol_free (interpol_t *this);
void interpol_set_stencil (interpol_t *this, double r0, double z0, ...);
void interpol_set_stencil_at (grid_t *grid,
			      interpol_t *this, double r0, double z0, 
			      rz_array_t *ar,
			      int ir, int iz, int itheta);
void interpol_set_coeffs (interpol_t *this);
double interpol_apply (interpol_t *this, double r, double z);

#ifndef _MAPPER_H_
# include "mapper.h"
#endif

void map_grid (mapper_t **mappers, grid_t *source, grid_t *target, int ntheta,
	       int copy, int interpol, int coarsen, int s_buff, int t_buff);
void map_grid_r (mapper_t **mappers, grid_t *source, grid_t *target, 
		 int ntheta, int copy, int interpol, int coarsen, 
		 int s_buff, int t_buff);
void map_trees_r (mapper_t **mappers, grid_t *source, grid_t *target, 
		  int ntheta, int copy, int interpol, int coarsen,
		  int s_buff, int t_buff);

#ifndef _CDR_H_
# include "cdr.h"
#endif

#ifndef _POISSON_H_
# include "poisson.h"
#endif

/* cdr.c */
void cdr_init (void);
void cdr_end (void);

cdr_grid_t *cdr_new_3d_a (int r0, int z0, int r1, int z1, int ntheta);
cdr_grid_t *cdr_like_a (cdr_grid_t *grid);
cdr_grid_t *cdr_clone_a (cdr_grid_t *grid);
void cdr_set_periodic (cdr_grid_t *grid);
void cdr_free (cdr_grid_t *grid);
void cdr_free_r (cdr_grid_t *grid);
void cdr_calc_charge (cdr_grid_t *grid);
void cdr_calc_charge_r (cdr_grid_t *root);
void cdr_dft_charge_r (cdr_grid_t *grid, int sign);
cdr_grid_t *cdr_create_coarser_a (cdr_grid_t *grid);
cdr_grid_t *cdr_add_coarser_grids_a (cdr_grid_t *prev_root, int n);
void cdr_free_coarser_grids (cdr_grid_t *prev_root, int n);
void cdr_add_ext_field (cdr_grid_t *grid);
void cdr_add_ext_field_r (cdr_grid_t *grid);
void cdr_add_inhom_field_r (cdr_grid_t *cdr, double q);
void cdr_calc_eabs (cdr_grid_t *grid);
void cdr_calc_eabs_r (cdr_grid_t *grid);
void cdr_nonegative (cdr_grid_t *grid);
void cdr_nonegative_r (cdr_grid_t *grid);
pois_grid_t **cdr_calc_field_r (cdr_grid_t *grid, int return_pois);
void cdr_set_ext_bnd (cdr_grid_t *grid);
void cdr_set_ext_bnd_r (cdr_grid_t *grid);
void cdr_calc_d_dens (cdr_grid_t *grid);
void cdr_calc_d_dens_r (cdr_grid_t *grid);
void cdr_advect_diffu (cdr_grid_t *grid);
void cdr_advect_diffu_r (cdr_grid_t *grid);

double cdr_courant (cdr_grid_t *grid);
void cdr_update (cdr_grid_t *orig, cdr_grid_t *dest, double h);
void cdr_rk2_update (cdr_grid_t *dens_0, cdr_grid_t *d_dens_1, 
		     cdr_grid_t *d_dens_2, cdr_grid_t *dest, 
		     double h);
void cdr_rk2_update_r (cdr_grid_t *dens_0, cdr_grid_t *d_dens_1, 
		       cdr_grid_t *d_dens_2, cdr_grid_t *dest, 
		       double h);
void cdr_self_update_r (cdr_grid_t *grid, double h);
void cdr_like_update_ar (cdr_grid_t *grid, cdr_grid_t *new_grid, double h);
double cdr_rk2 (cdr_grid_t *grid, double h, double t);

void cdr_update_refined (cdr_grid_t **ptree);
void cdr_calc_maxs (cdr_grid_t *grid);
void cdr_refine (cdr_grid_t *grid);
void cdr_refine_r (cdr_grid_t *grid, cdr_grid_t *source);
void cdr_match_r (cdr_grid_t *grid1, cdr_grid_t *grid2);
void cdr_set_bnd (cdr_grid_t *grid);
void cdr_set_bnd_r (cdr_grid_t *grid);

void cdr_restrict (cdr_grid_t *grid);
void cdr_restrict_r (cdr_grid_t *grid);

void cdr_set_dens (cdr_grid_t *cdr, int species, int mode, double factor,
		   double (*f) (double, double, double));
void cdr_init_dens (cdr_grid_t *cdr);
cdr_grid_t *cdr_scratch_init (void);

mapper_t **cdr_mappers_a (interpol_method_t *interp_method);
void cdr_free_mappers (mapper_t **mappers);

void cdr_dump (cdr_grid_t *grid, const char *prefix, const char *name);
void cdr_dump_r (cdr_grid_t *grid, const char *prefix, const char *name,
		 FILE *infp, double sim_time);
cdr_grid_t *cdr_load_tree_r (const char *prefix, const char *name, FILE *infp);
void cdr_dump_frames (cdr_grid_t *grid, const char *prefix, const char *name);

/* poisson.c */
void pois_init (void);
pois_grid_t *pois_new_a (int r0, int z0, int r1, int z1);
pois_grid_t *pois_new_3d_a (int r0, int z0, int r1, int z1, int ntheta);
void pois_free (pois_grid_t *grid);
void pois_free_r (pois_grid_t *grid);
pois_grid_t *pois_new_glob_a (int r0, int z0, int r1, int z1, int level);
pois_grid_t *pois_init_tree_a (int r0, int z0, int r1, int z1);
REAL *pois_boundary_a (pois_grid_t *grid, int boundary);
void pois_solve_grid (pois_grid_t *grid, pois_problem_t *prob, 
		      double lambda, double s);
void pois_set_phi_boundaries (pois_grid_t *grid, REAL *boundaries[], 
			      int left_uns, int right_neu, int bottom_neu,
			      int top_neu);
int pois_map_charge (pois_grid_t *pois, cdr_grid_t *cdr, int mode);
void pois_set_error (pois_grid_t *grid);
int pois_refine (pois_grid_t *grid, double threshold);
pois_grid_t **pois_solve_a (cdr_grid_t *cdr, pois_problem_t *prob);
pois_grid_t **pois_gen_solve_a (cdr_grid_t *cdr, pois_problem_t *prob, 
				mapper_t **mappers, double es);
pois_grid_t *pois_solve_mode (cdr_grid_t *tree, cdr_grid_t *cdr,
			      pois_problem_t *prob, int mode, double es);
void pois_solve_r (pois_grid_t *pois, cdr_grid_t *cdr, pois_problem_t *prob, 
		   int mode, double es, double threshold);
double pois_phi_at (pois_grid_t *grid, double r, double z, double theta);
void pois_dump (pois_grid_t *grid, const char *prefix, const char *name);
void pois_dump_r (pois_grid_t *grid, const char *prefix, const char *name);
void pois_write_error_r (pois_grid_t *grid, FILE *fp);
void pois_error_measures (pois_grid_t *grid, double *L1, double *L2, 
			  double *Lmax);
void pois_inhom_init (void);
double pois_inhom_phi (double r, double z);
double pois_inhom_er (double r, double z);
double pois_inhom_ez (double r, double z);
double pois_inhom_q_factor (pois_grid_t *pois);
void pois_add_inhom_phi_r (pois_grid_t *grid, double q);

#ifndef _PHOTO_H_
# include "photo.h"
#endif

/* photo.c */
void photo_init ();
void photo_register (double A, double lambda);
void photo_copy_list (photo_term_t *src, photo_term_t **dest);
void photo_unregister_all (void);
void photo_dft_r (cdr_grid_t *grid, int sign);
void photo_copy_source (cdr_grid_t *grid);
void photo_add_term (photo_term_t *term, cdr_grid_t *cdr);
void photo_add_term_r (photo_term_t *term, cdr_grid_t *cdr);
pois_grid_t **photo_calc_term (photo_term_t *term, cdr_grid_t *cdr, int i);
void photo_calc (photo_term_t *terms, cdr_grid_t *cdr);
void photo_load_file (char *fname);

/* cstream.c */
void init_parameters(void);
void cstream_init (void);
void cstream_end (void);
void cstream_set_field_at_time (double t);

/* dft.c */
void dft_transform (rz_array_t *in, rz_array_t *out, int sign);
void dft_diff (grid_t *grid, rz_array_t *f);
void dft_weight (cdr_grid_t *cdr, rz_array_t *var, double weights[], 
		 double power);
void dft_out_weights (cdr_grid_t *grid, const char *prefix, double t);
void dft_perturb (cdr_grid_t *cdr, rz_array_t *var, double *epsilon_k);
void dft_dens_perturb_r (cdr_grid_t *grid, int species, double *epsilon_k);


#ifndef _REACTION_H_
# include "reaction.h"
#endif

/* reaction.c */
int find_species_by_name(const char *spec_name);
void react_add (reaction_t *react);
void react_init ();
void react_apply_r (reaction_t *react, cdr_grid_t *grid, int overwrite);
void react_apply_all (cdr_grid_t *grid);

#ifndef _REACT_TABLE_H_
# include "react_table.h"
#endif

/* kinetic module (usually minimal.c) */
void kinetic_init (void);

/* sprites module */
double spr_density_at (double altitude);
void spr_init ();
void spr_hook (cdr_grid_t *grid);
void spr_update (double altitude);
double spr_head_altitude (cdr_grid_t *grid, int sign);

/* rt.c */
void kinetic_init (void);
void read_input_file(const char *f_kinetic_name, const char *filename);