From 523bf18206f550a315c6c17e5a0a253381b0f8bf Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Thu, 07 Jun 2012 11:16:16 +0000
Subject: [PATCH] Spherical harmonics. Almost everyhing is done. Missing triangle area calculation when vertex is moved or bond is flipped. Also missing volume calculation on vertex move or bondflip. Calculation of co coefficient is not done completely yet. Problems are in numbering the coefficients. Newly added data structure ts_spharm is referenced from ts_vesicle. Missing function for initialization and freeing the memory of that datastructure -- but that memory is already used by some functions.

---
 src/general.h |   47 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/src/general.h b/src/general.h
index 6d2ab06..b775bd2 100644
--- a/src/general.h
+++ b/src/general.h
@@ -110,12 +110,29 @@
 
 /* STRUCTURES */
 
+
+/** @brief Data structure for keeping the coordinates in selected coordinate
+ * system
+ */
+#define TS_COORD_CARTESIAN 0
+#define TS_COORD_SPHERICAL 1
+#define TS_COORD_CYLINDRICAL 2
+
+typedef struct {
+    ts_double e1;
+    ts_double e2;
+    ts_double e3;
+    ts_uint coord_type;
+} ts_coord;
+
+
+
 /** @brief Data structure of all data connected to a vertex
  *
- *  ts_vertex_data holds the data for one single point (bead, vertex). To understand how to use it
+ *  ts_vertex holds the data for one single point (bead, vertex). To understand how to use it
  *  here is a detailed description of the fields in the data structure. */
-struct ts_vertex_data {
-        ts_uint idx; /**< Represents index of the vertex point. Should become obsolete, since it is also present in ts_vertex structure. */        
+struct ts_vertex {
+        ts_uint idx;
         ts_double x; /**< The x coordinate of vertex. */
         ts_double y; /**< The y coordinate of vertex. */
         ts_double z; /**< The z coordinate of vertex. */
@@ -134,12 +151,9 @@
         ts_double xk;
         ts_double c;
         ts_uint id;
-};
-typedef struct ts_vertex_data ts_vertex_data;
-
-struct ts_vertex {
-        ts_uint idx;
-        ts_vertex_data *data;
+        ts_double projArea;
+        ts_double relR;
+        ts_double solAngle;
 };
 typedef struct ts_vertex ts_vertex;
 
@@ -172,6 +186,7 @@
 	ts_double xnorm;
 	ts_double ynorm;
 	ts_double znorm;
+    ts_double area; // firstly needed for sh.c
 };
 typedef struct ts_triangle ts_triangle;
 
@@ -199,6 +214,16 @@
 
 
 typedef struct {
+    ts_uint l;
+    ts_uint i;
+    ts_double ***Ylmi;
+    ts_double **ulm;
+    ts_uint **co;
+} ts_spharm;
+
+
+
+typedef struct {
 	ts_vertex_list *vlist;
 	ts_bond_list *blist;
 	ts_triangle_list *tlist;
@@ -208,9 +233,13 @@
     ts_double dmax;
     ts_double stepsize;
     ts_double cm[3];
+    ts_double volume;
+    ts_spharm *sphHarmonics;
 } ts_vesicle;
 
 
+
+
 /* GLOBAL VARIABLES */
 
 int quiet;

--
Gitblit v1.9.3