diff --git a/fish90/include/fishpack.h b/fish90/include/fishpack.h new file mode 100644 index 0000000000000000000000000000000000000000..18513055b11fa3e6a5b9ce39fa39a550ba1fccb9 --- /dev/null +++ b/fish90/include/fishpack.h @@ -0,0 +1,50 @@ +#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_ */ +