00001 #ifndef __ASG__
00002 #define __ASG__
00003
00004 #include "iwave.h"
00005 #include "except.hh"
00006
00007 int asg_modelinit(PARARRAY pars,
00008 FILE *stream,
00009 IMODEL & model);
00010
00011 void asg_modeldest(void ** specs);
00012
00013 int asg_timegrid(PARARRAY * pars,
00014 FILE * stream,
00015 grid const & g,
00016 float & dt,
00017 float & rhs);
00018
00019 void asg_timestep(std::vector<RDOM *> dom,
00020 bool fwd,
00021 int iv,
00022 void* fdpars);
00023
00024 int asg_create_sten(void *,
00025 FILE *,
00026 int,
00027 IPNT[RDOM_MAX_NARR],
00028 STENCIL *);
00029
00030 void asg_check(RDOM * dom,
00031 void * specs,
00032 FILE * stream);
00033
00034 void asg_loop_refine(int const * gmin, int const * gmax,
00035 float tmax, int input,
00036 FILE * stream, void * specs);
00037
00038 typedef struct s_asg_ts_pars {
00039 float dt;
00040 RPNT lam;
00041 int k;
00042 int ndim;
00043 IPNT lbc;
00044 IPNT rbc;
00045 IPNT nls;
00046 IPNT nrs;
00047 int extd;
00048 FILE * stream;
00049
00050 float ** coeffs;
00051
00052 float cmax;
00053 float cmin;
00054
00055 float amp;
00056 float * ep[RARR_MAX_NDIM];
00057 float * epp[RARR_MAX_NDIM];
00058 float * ev[RARR_MAX_NDIM];
00059 float * evp[RARR_MAX_NDIM];
00060 } ASG_TS_PARS;
00061
00062
00063 #define CFL_DEF 0.95
00064
00065 #endif
00066
00067