00001 00050 #ifndef _FEMPARM_H_ 00051 #define _FEMPARM_H_ 00052 00053 /* Generic header files */ 00054 #include "maloc/maloc.h" 00055 #include "apbs/vhal.h" 00056 #include "apbs/vstring.h" 00057 00063 enum eFEMparm_EtolType { 00064 FET_SIMP=0, 00065 FET_GLOB=1, 00066 FET_FRAC=2 00067 }; 00068 00074 typedef enum eFEMparm_EtolType FEMparm_EtolType; 00075 00082 enum eFEMparm_EstType { 00083 FRT_UNIF=0, 00084 FRT_GEOM=1, 00085 FRT_RESI=2, 00086 FRT_DUAL=3, 00088 FRT_LOCA=4 00089 }; 00090 00095 typedef enum eFEMparm_EstType FEMparm_EstType; 00096 00101 enum eFEMparm_CalcType { 00102 FCT_MAN=0 00103 }; 00104 00109 typedef enum eFEMparm_CalcType FEMparm_CalcType; 00110 00116 struct sFEMparm { 00117 00118 int parsed; 00121 FEMparm_CalcType type; 00122 int settype; 00123 double glen[3]; 00124 int setglen; 00125 double etol; 00127 int setetol; 00128 FEMparm_EtolType ekey; 00130 int setekey; 00131 FEMparm_EstType akeyPRE; 00134 int setakeyPRE; 00135 FEMparm_EstType akeySOLVE; 00137 int setakeySOLVE; 00138 int targetNum; 00142 int settargetNum; 00143 double targetRes; 00147 int settargetRes; 00148 int maxsolve; 00149 int setmaxsolve; 00150 int maxvert; 00152 int setmaxvert; 00154 }; 00155 00160 typedef struct sFEMparm FEMparm; 00161 00162 /* /////////////////////////////////////////////////////////////////////////// 00163 // Class NOsh: Non-inlineable methods (nosh.c) 00165 00172 FEMparm* FEMparm_ctor(FEMparm_CalcType type); 00173 00181 int FEMparm_ctor2(FEMparm *thee, FEMparm_CalcType type); 00182 00188 void FEMparm_dtor(FEMparm **thee); 00189 00195 void FEMparm_dtor2(FEMparm *thee); 00196 00204 int FEMparm_check(FEMparm *thee); 00205 00216 int FEMparm_parseToken(FEMparm *thee, char tok[VMAX_BUFSIZE], 00217 Vio *sock); 00218 00219 #endif 00220 00221