00001 00061 #ifndef _FEMPARM_H_ 00062 #define _FEMPARM_H_ 00063 00064 /* Generic header files */ 00065 #include "maloc/maloc.h" 00066 #include "apbs/vhal.h" 00067 #include "apbs/vstring.h" 00068 00074 enum eFEMparm_EtolType { 00075 FET_SIMP=0, 00076 FET_GLOB=1, 00077 FET_FRAC=2 00078 }; 00079 00085 typedef enum eFEMparm_EtolType FEMparm_EtolType; 00086 00093 enum eFEMparm_EstType { 00094 FRT_UNIF=0, 00095 FRT_GEOM=1, 00096 FRT_RESI=2, 00097 FRT_DUAL=3, 00099 FRT_LOCA=4 00100 }; 00101 00106 typedef enum eFEMparm_EstType FEMparm_EstType; 00107 00112 enum eFEMparm_CalcType { 00113 FCT_MANUAL, 00114 FCT_NONE 00115 }; 00116 00121 typedef enum eFEMparm_CalcType FEMparm_CalcType; 00122 00128 struct sFEMparm { 00129 00130 int parsed; 00133 FEMparm_CalcType type; 00134 int settype; 00135 double glen[3]; 00136 int setglen; 00137 double etol; 00139 int setetol; 00140 FEMparm_EtolType ekey; 00142 int setekey; 00143 FEMparm_EstType akeyPRE; 00146 int setakeyPRE; 00147 FEMparm_EstType akeySOLVE; 00149 int setakeySOLVE; 00150 int targetNum; 00154 int settargetNum; 00155 double targetRes; 00159 int settargetRes; 00160 int maxsolve; 00161 int setmaxsolve; 00162 int maxvert; 00164 int setmaxvert; 00165 int pkey; 00168 int useMesh; 00169 int meshID; 00171 }; 00172 00177 typedef struct sFEMparm FEMparm; 00178 00179 /* /////////////////////////////////////////////////////////////////////////// 00180 // Class NOsh: Non-inlineable methods (nosh.c) 00182 00189 FEMparm* FEMparm_ctor(FEMparm_CalcType type); 00190 00198 int FEMparm_ctor2(FEMparm *thee, FEMparm_CalcType type); 00199 00205 void FEMparm_dtor(FEMparm **thee); 00206 00212 void FEMparm_dtor2(FEMparm *thee); 00213 00221 int FEMparm_check(FEMparm *thee); 00222 00229 void FEMparm_copy(FEMparm *thee, FEMparm *source); 00230 00241 Vrc_Codes FEMparm_parseToken(FEMparm *thee, char tok[VMAX_BUFSIZE], 00242 Vio *sock); 00243 00244 #endif 00245 00246