00001 00073 #ifndef _FEMPARM_H_ 00074 #define _FEMPARM_H_ 00075 00076 /* Generic header files */ 00077 #include "maloc/maloc.h" 00078 #include "apbs/vhal.h" 00079 #include "apbs/vstring.h" 00080 00086 enum eFEMparm_EtolType { 00087 FET_SIMP=0, 00088 FET_GLOB=1, 00089 FET_FRAC=2 00090 }; 00091 00097 typedef enum eFEMparm_EtolType FEMparm_EtolType; 00098 00105 enum eFEMparm_EstType { 00106 FRT_UNIF=0, 00107 FRT_GEOM=1, 00108 FRT_RESI=2, 00109 FRT_DUAL=3, 00111 FRT_LOCA=4 00112 }; 00113 00118 typedef enum eFEMparm_EstType FEMparm_EstType; 00119 00124 enum eFEMparm_CalcType { 00125 FCT_MANUAL, 00126 FCT_NONE 00127 }; 00128 00133 typedef enum eFEMparm_CalcType FEMparm_CalcType; 00134 00140 struct sFEMparm { 00141 00142 int parsed; 00145 FEMparm_CalcType type; 00146 int settype; 00147 double glen[3]; 00148 int setglen; 00149 double etol; 00151 int setetol; 00152 FEMparm_EtolType ekey; 00154 int setekey; 00155 FEMparm_EstType akeyPRE; 00158 int setakeyPRE; 00159 FEMparm_EstType akeySOLVE; 00161 int setakeySOLVE; 00162 int targetNum; 00166 int settargetNum; 00167 double targetRes; 00171 int settargetRes; 00172 int maxsolve; 00173 int setmaxsolve; 00174 int maxvert; 00176 int setmaxvert; 00177 int pkey; 00181 }; 00182 00187 typedef struct sFEMparm FEMparm; 00188 00189 /* /////////////////////////////////////////////////////////////////////////// 00190 // Class NOsh: Non-inlineable methods (nosh.c) 00192 00199 FEMparm* FEMparm_ctor(FEMparm_CalcType type); 00200 00208 int FEMparm_ctor2(FEMparm *thee, FEMparm_CalcType type); 00209 00215 void FEMparm_dtor(FEMparm **thee); 00216 00222 void FEMparm_dtor2(FEMparm *thee); 00223 00231 int FEMparm_check(FEMparm *thee); 00232 00239 void FEMparm_copy(FEMparm *thee, FEMparm *source); 00240 00251 int FEMparm_parseToken(FEMparm *thee, char tok[VMAX_BUFSIZE], 00252 Vio *sock); 00253 00254 #endif 00255 00256