/* SOFuncMap.h -- right-hand-side functions for diff eqns. */ /* Last edited on 2003-06-30 15:53:06 by ra014852 */ #ifndef SOFuncMap_H #define SOFuncMap_H #include #include #include typedef FuncMap SOFuncMap; /* A function suitable for the right-hand-side of the general differential equation {D(f)(p) == F(f(p),p)} where {D} is a differential operator. Also compatible with the {FuncMap} argument of {SOFunction_Dot}. */ typedef struct SOFuncMap_Data { FuncMap FMap; /* The function map. */ char *name; /* The identifying name for {FMap}. */ char *descr; /* The formula for {FMap(u, (x,y,z))}. */ double coeff; /* Coefficient for the screened Poisson equation. */ char *sol; /* screened Poisson solution for {coeff} and {FMap} as RHS. */ } SOFuncMap_Data; /* A function map {FMap} and some data about it. The {sol} string, if not NULL, is the name of an {SOProcFunction} {f} which is the exact solution of the screened Poisson equation {Lap(f)(p) + c*f(p) == FMap(f(p),p)}, when {c == coeff}. */ SOFuncMap_Data SOFuncMap_FromName(char *name, SOGrid_Dim u, SOGrid_Dim p, SOGrid_Dim v); /* Returns a {FuncMap} and its data given its name. Bombs out if the name is unrecognized. */ #endif