00001 00055 #ifndef _FEMPARM_H_ 00056 #define _FEMPARM_H_ 00057 00058 /* Generic header files */ 00059 #include "maloc/maloc.h" 00060 #include "apbs/vhal.h" 00061 #include "apbs/vstring.h" 00062 00068 enum eFEMparm_EtolType { 00069 FET_SIMP=0, 00070 FET_GLOB=1, 00071 FET_FRAC=2 00072 }; 00073 00079 typedef enum eFEMparm_EtolType FEMparm_EtolType; 00080 00087 enum eFEMparm_EstType { 00088 FRT_UNIF=0, 00089 FRT_GEOM=1, 00090 FRT_RESI=2, 00091 FRT_DUAL=3, 00093 FRT_LOCA=4 00094 }; 00095 00100 typedef enum eFEMparm_EstType FEMparm_EstType; 00101 00106 enum eFEMparm_CalcType { 00107 FCT_MANUAL, 00108 FCT_NONE 00109 }; 00110 00115 typedef enum eFEMparm_CalcType FEMparm_CalcType; 00116 00122 struct sFEMparm { 00123 00124 int parsed; 00127 FEMparm_CalcType type; 00128 int settype; 00129 double glen[3]; 00130 int setglen; 00131 double etol; 00133 int setetol; 00134 FEMparm_EtolType ekey; 00136 int setekey; 00137 FEMparm_EstType akeyPRE; 00140 int setakeyPRE; 00141 FEMparm_EstType akeySOLVE; 00143 int setakeySOLVE; 00144 int targetNum; 00148 int settargetNum; 00149 double targetRes; 00153 int settargetRes; 00154 int maxsolve; 00155 int setmaxsolve; 00156 int maxvert; 00158 int setmaxvert; 00159 int pkey; 00162 int useMesh; 00163 int meshID; 00165 }; 00166 00171 typedef struct sFEMparm FEMparm; 00172 00173 /* /////////////////////////////////////////////////////////////////////////// 00174 // Class NOsh: Non-inlineable methods (nosh.c) 00176 00183 VEXTERNC FEMparm* FEMparm_ctor(FEMparm_CalcType type); 00184 00192 VEXTERNC int FEMparm_ctor2(FEMparm *thee, FEMparm_CalcType type); 00193 00199 VEXTERNC void FEMparm_dtor(FEMparm **thee); 00200 00206 VEXTERNC void FEMparm_dtor2(FEMparm *thee); 00207 00215 VEXTERNC int FEMparm_check(FEMparm *thee); 00216 00223 VEXTERNC void FEMparm_copy(FEMparm *thee, FEMparm *source); 00224 00235 VEXTERNC Vrc_Codes FEMparm_parseToken(FEMparm *thee, char tok[VMAX_BUFSIZE], 00236 Vio *sock); 00237 00238 #endif 00239