| | |
| | | /* vim: set ts=4 sts=4 sw=4 noet : */ |
| | | #ifndef _GENERAL_H |
| | | #define _GENERAL_H |
| | | |
| | |
| | | ts_double projArea; |
| | | ts_double relR; |
| | | ts_double solAngle; |
| | | struct ts_poly *grafted_poly; |
| | | struct ts_poly *grafted_poly; |
| | | struct ts_cluster *cluster; |
| | | }; |
| | | typedef struct ts_vertex ts_vertex; |
| | | |
| | |
| | | ts_double znorm; |
| | | ts_double area; // firstly needed for sh.c |
| | | ts_double volume; // firstly needed for sh.c |
| | | ts_double energy; |
| | | }; |
| | | typedef struct ts_triangle ts_triangle; |
| | | |
| | | struct ts_triangle_list{ |
| | | ts_uint n; |
| | | ts_double a0; |
| | | ts_triangle **tria; |
| | | }; |
| | | typedef struct ts_triangle_list ts_triangle_list; |
| | |
| | | typedef struct ts_poly_list ts_poly_list; |
| | | |
| | | |
| | | typedef struct{ |
| | | ts_float z_max; |
| | | ts_float z_min; |
| | | ts_int force_switch; |
| | | } ts_confinement_plane; |
| | | |
| | | typedef struct { |
| | | long int nshell; |
| | |
| | | long int nczmax; |
| | | long int npoly; |
| | | long int nmono; |
| | | long int internal_poly; |
| | | long int nfil; |
| | | long int nfono; |
| | | long int R_nucleus; |
| | | ts_double R_nucleusX; |
| | | ts_double R_nucleusY; |
| | | ts_double R_nucleusZ; |
| | | long int pswitch; |
| | | long int constvolswitch; |
| | | long int constareaswitch; |
| | | long int stretchswitch; |
| | | ts_double xkA0; |
| | | ts_double constvolprecision; |
| | | char *multiprocessing; |
| | | long int brezveze0; |
| | | long int brezveze1; |
| | |
| | | long int mcsweeps; |
| | | long int quiet; |
| | | long int shc; |
| | | long int number_of_vertices_with_c0; |
| | | ts_double c0; |
| | | ts_double w; |
| | | ts_double F; |
| | | long int plane_confinement_switch; |
| | | ts_double plane_d; |
| | | ts_double plane_F; |
| | | } ts_tape; |
| | | |
| | | |
| | | /* plugins */ |
| | | typedef struct { |
| | | void (*at_start)(int argc, char **argv); |
| | | void *(*after_vesicle_init)(void *vesicle); |
| | | ts_bool (*vm_hard_constraint)(void *vesicle, ts_vertex *vtx, ts_vertex *odl_vtx); |
| | | void (*vm_energy_before_prepare)(void *vesicle, ts_vertex *vtx); |
| | | ts_double (*vm_energy_before_execute)(void *vesicle, ts_vertex *vtx); |
| | | ts_double (*vm_energy_after_prepare)(void *vesicle, ts_vertex *vtx); |
| | | ts_double (*vm_energy_after_execute)(void *vesicle, ts_vertex *vtx); |
| | | ts_double (*vm_before_montecarlo_constraint)(void *vesicle, ts_vertex *vtx, ts_vertex *old_vtx); |
| | | ts_double (*vm_new_state_accepted)(void *vesicle, ts_vertex *vtx, ts_vertex *old_vtx); |
| | | ts_double (*vm_new_state_rejected)(void *vesicle, ts_vertex *vtx, ts_vertex *old_vtx); |
| | | void (*cleanup)(void); |
| | | } ts_plugin_function; |
| | | |
| | | typedef struct { |
| | | ts_char *name; |
| | | ts_char *description; |
| | | ts_char *author; |
| | | void *data; |
| | | } ts_plugin_details; |
| | | |
| | | typedef struct { |
| | | ts_plugin_details *details; |
| | | ts_plugin_function *function; |
| | | ts_char *filename; |
| | | void *libhandle; |
| | | } ts_plugin; |
| | | |
| | | struct ts_plugin_chain { |
| | | ts_plugin *plugin; |
| | | struct ts_plugin_chain *next; |
| | | }; |
| | | typedef struct ts_plugin_chain ts_plugin_chain; |
| | | |
| | | typedef struct { |
| | | ts_plugin_chain *at_start; |
| | | ts_plugin_chain *after_vesicle_init; |
| | | ts_plugin_chain *vm_hard_constraint; |
| | | ts_plugin_chain *vm_energy_before_prepare; |
| | | ts_plugin_chain *vm_energy_after_execute; |
| | | ts_plugin_chain *vm_before_montecarlo_constraint; |
| | | ts_plugin_chain *vm_new_state_accepted; |
| | | ts_plugin_chain *cleanup; |
| | | } ts_plugin_chains; |
| | | |
| | | |
| | | typedef struct { |
| | | ts_uint n; |
| | | ts_plugin **plugin; |
| | | ts_plugin_chains *chain; |
| | | ts_plugin_chain *pointer; |
| | | } ts_plugin_list; |
| | | |
| | | /* end plugins */ |
| | | |
| | | |
| | | typedef struct { |
| | |
| | | ts_double spring_constant; |
| | | ts_double pressure; |
| | | ts_int pswitch; |
| | | ts_tape *tape; |
| | | ts_tape *tape; |
| | | ts_double R_nucleus; |
| | | |
| | | ts_double R_nucleusX; |
| | | ts_double R_nucleusY; |
| | | ts_double R_nucleusZ; |
| | | ts_double nucleus_center[3]; |
| | | ts_double area; |
| | | ts_confinement_plane confinement_plane; |
| | | ts_plugin_list *plist; |
| | | } ts_vesicle; |
| | | |
| | | |
| | | |
| | | struct ts_cluster{ |
| | | ts_uint nvtx; |
| | | ts_uint idx; |
| | | ts_vertex **vtx; |
| | | }; |
| | | |
| | | typedef struct ts_cluster ts_cluster; |
| | | |
| | | typedef struct{ |
| | | ts_uint n; |
| | | ts_cluster **cluster; |
| | | } ts_cluster_list; |
| | | |
| | | |
| | | /* GLOBAL VARIABLES */ |
| | | |
| | | int quiet; |
| | | |
| | | |
| | | ts_double V0; |
| | | ts_double A0; |
| | | ts_double epsvol; |
| | | ts_double epsarea; |
| | | /* FUNCTIONS */ |
| | | |
| | | /** Non-fatal error function handler: |
| | |
| | | #define VTX(n) &(vlist->vtx[n]) |
| | | #define VTX_DATA(n) vlist->vtx[n].data |
| | | |
| | | |
| | | /* FOR PID GENERATION ROUTINE */ |
| | | #define CPF_CLOEXEC 1 |
| | | |
| | | int createPidFile(const char *progName, const char *pidFile, int flags); |
| | | |
| | | int lockRegion(int fd, int type, int whence, int start, int len); |
| | | char *libVersion(); |
| | | #endif |