| | |
| | | /* vim: set ts=4 sts=4 sw=4 noet : */ |
| | | #ifndef _GENERAL_H |
| | | #define _GENERAL_H |
| | | |
| | | #include<stdarg.h> |
| | | #include<stdio.h> |
| | | |
| | | #include<gsl/gsl_complex.h> |
| | | /* @brief This is a header file, defining general constants and structures. |
| | | * @file header.h |
| | | * @author Samo Penic |
| | | * @date 5.3.2001 |
| | | * |
| | | * |
| | | * Header file for general inclusion in all the code, defining data structures |
| | | * and general constans. All datatypes used in the code is also defined here. |
| | | * |
| | | * Miha: branch trisurf-polyel |
| | | */ |
| | | |
| | | /* Defines */ |
| | |
| | | #define TS_FAIL 1 |
| | | |
| | | /* CONSTANTS */ |
| | | |
| | | #define TS_ID_FILAMENT 1 |
| | | |
| | | /* DATA TYPES */ |
| | | /** @brief Sets the default datatype for ts_double |
| | |
| | | ts_uint coord_type; |
| | | } ts_coord; |
| | | |
| | | |
| | | |
| | | /** @brief Data structure of all data connected to a vertex |
| | | * |
| | | * ts_vertex holds the data for one single point (bead, vertex). To understand how to use it |
| | |
| | | ts_double projArea; |
| | | ts_double relR; |
| | | ts_double solAngle; |
| | | struct ts_poly *grafted_poly; |
| | | struct ts_cluster *cluster; |
| | | }; |
| | | typedef struct ts_vertex ts_vertex; |
| | | |
| | |
| | | } ts_vertex_list; |
| | | |
| | | struct ts_bond { |
| | | ts_uint idx; |
| | | ts_uint idx; |
| | | ts_vertex *vtx1; |
| | | ts_vertex *vtx2; |
| | | ts_double bond_length; |
| | | ts_double bond_length_dual; |
| | | ts_double bond_length; |
| | | ts_double bond_length_dual; |
| | | ts_bool tainted; //TODO: remove |
| | | ts_double energy; |
| | | ts_double x,y,z; |
| | | }; |
| | | typedef struct ts_bond ts_bond; |
| | | |
| | |
| | | ts_double ynorm; |
| | | ts_double znorm; |
| | | ts_double area; // firstly needed for sh.c |
| | | ts_double volume; // firstly needed for sh.c |
| | | }; |
| | | typedef struct ts_triangle ts_triangle; |
| | | |
| | |
| | | ts_double dcell; |
| | | ts_double shift; |
| | | ts_double max_occupancy; |
| | | ts_double dmin_interspecies; |
| | | } ts_cell_list; |
| | | |
| | | |
| | | typedef struct { |
| | | ts_uint l; |
| | | ts_uint i; |
| | | ts_double **ulm; |
| | | gsl_complex **ulmComplex; |
| | | ts_double **sumUlm2; |
| | | ts_uint N; |
| | | ts_double **co; |
| | | ts_double ***Ylmi; |
| | | } ts_spharm; |
| | | |
| | | |
| | | |
| | | struct ts_poly { |
| | | ts_vertex_list *vlist; |
| | | ts_bond_list *blist; |
| | | ts_vertex *grafted_vtx; |
| | | ts_double k; |
| | | }; |
| | | typedef struct ts_poly ts_poly; |
| | | |
| | | |
| | | struct ts_poly_list { |
| | | ts_uint n; |
| | | ts_poly **poly; |
| | | }; |
| | | typedef struct ts_poly_list ts_poly_list; |
| | | |
| | | |
| | | |
| | | typedef struct { |
| | | long int nshell; |
| | | long int ncxmax; |
| | | long int ncymax; |
| | | long int nczmax; |
| | | long int npoly; |
| | | long int nmono; |
| | | 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; |
| | | ts_double constvolprecision; |
| | | char *multiprocessing; |
| | | long int brezveze0; |
| | | long int brezveze1; |
| | | long int brezveze2; |
| | | ts_double xk0; |
| | | ts_double dmax; |
| | | ts_double dmin_interspecies; |
| | | ts_double stepsize; |
| | | ts_double kspring; |
| | | ts_double xi; |
| | | ts_double pressure; |
| | | long int iterations; |
| | | long int inititer; |
| | | long int mcsweeps; |
| | | long int quiet; |
| | | long int shc; |
| | | } ts_tape; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | ts_vertex_list *vlist; |
| | | ts_bond_list *blist; |
| | | ts_triangle_list *tlist; |
| | | ts_cell_list *clist; |
| | | ts_cell_list *clist; |
| | | ts_uint nshell; |
| | | ts_double bending_rigidity; |
| | | ts_double dmax; |
| | | ts_double stepsize; |
| | | ts_double cm[3]; |
| | | ts_double volume; |
| | | ts_spharm *sphHarmonics; |
| | | ts_double bending_rigidity; |
| | | ts_double dmax; |
| | | ts_double stepsize; |
| | | ts_double cm[3]; |
| | | ts_double volume; |
| | | ts_spharm *sphHarmonics; |
| | | // Polymers outside the vesicle and attached to the vesicle membrane (polymer brush): |
| | | ts_poly_list *poly_list; |
| | | // Filaments inside the vesicle (not attached to the vesicel membrane: |
| | | ts_poly_list *filament_list; |
| | | |
| | | ts_double spring_constant; |
| | | ts_double pressure; |
| | | ts_int pswitch; |
| | | 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_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); |
| | | #endif |