File diff 000000000000 → d6faa5ffcedf
fish90/include/fishpack.h
Show inline comments
 
new file 100644
 
#ifndef _FISPHACK_H_
 

	
 
/* Arguments for the boundary conditions in fishpack:
 
   The first name is the b.c. at the lowest value of the variable,
 
   the second one is the b.c. at the highest value.
 
     DIR = Dirichlet, 
 
     NEU = Neumann, 
 
     UNS = Unspecified (when r = 0 for cylindrical calculations).
 
*/
 
#define FISH_PERIODIC 0
 
#define FISH_DIR_DIR  1
 
#define FISH_DIR_NEU  2
 
#define FISH_NEU_NEU  3
 
#define FISH_NEU_DIR  4
 

	
 
#define FISH_UNS_DIR  5
 
#define FISH_UNS_NEU  6
 

	
 

	
 
/* This is the maximum number of grid cells that fishpack can handle
 
   without accumulating larger and larger roundoff errors
 
   (it's only an approximation: not checked throughly so if you notice
 
   that you are getting strange things such as artificial lines in
 
   the electric field, this is the first thing you should check). */
 
#define FISH_MAX_GRIDPOINTS   1700
 

	
 
#define LOG2 0.69314718055994530941723212145818
 

	
 
#define FISH_WORK(M_, N_)  (13 * (M_) + 4 * (N_)		\
 
			    + (M_) * (int) (log(N_) / LOG2))
 

	
 
#define FISH_ERROR_MAX 13
 
const char *hstcyl_error_str[FISH_ERROR_MAX];
 

	
 
void 
 
fish_hstcyl (double r0, double r1, int nr, 
 
	     int rbndcnd, double *bcr0, double *bcr1,
 
	     double z0, double z1, int nz, 
 
	     int zbndcnd, double *bcz0, double *bcz1,
 
	     double lambda, double s, double *f, int idimf);
 
void 
 
fish_hstcrt (double r0, double r1, int nr, 
 
	     int rbndcnd, double *bcr0, double *bcr1,
 
	     double z0, double z1, int nz, 
 
	     int zbndcnd, double *bcz0, double *bcz1,
 
	     double lambda, double *f, int idimf);
 

	
 
#define _FISHPACK_H_
 
#endif /* _FISHPACK_H_ */