Files @ b7792cb187f7
Branch filter:

Location: MD/arcos/include/proto.h

greta
Edited file README via RhodeCode
/** @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);