| | |
| | | ts_uint j,i; |
| | | ts_spharm *sph=(ts_spharm *)malloc(sizeof(ts_spharm)); |
| | | |
| | | |
| | | sph->N=0; |
| | | /* lets initialize Ylm for each vertex. */ |
| | | sph->Ylmi=(ts_double ***)calloc(l,sizeof(ts_double **)); |
| | | for(i=0;i<l;i++){ |
| | |
| | | sph->ulm[j]=(ts_double *)calloc(2*j+1,sizeof(ts_double)); |
| | | } |
| | | |
| | | /* lets initialize sum of Ulm2 */ |
| | | sph->sumUlm2=(ts_double **)calloc(l,sizeof(ts_double *)); |
| | | for(j=0;j<l;j++){ |
| | | sph->sumUlm2[j]=(ts_double *)calloc(2*j+1,sizeof(ts_double)); |
| | | } |
| | | |
| | | /* lets initialize co */ |
| | | //NOTE: C is has zero based indexing. Code is imported from fortran and to comply with original indexes we actually generate one index more. Also second dimension is 2*j+2 instead of 2*j+2. elements starting with 0 are useles and should be ignored! |
| | |
| | | int i,j; |
| | | for(i=0;i<sph->l;i++){ |
| | | if(sph->ulm[i]!=NULL) free(sph->ulm[i]); |
| | | if(sph->sumUlm2[i]!=NULL) free(sph->sumUlm2[i]); |
| | | if(sph->co[i]!=NULL) free(sph->co[i]); |
| | | } |
| | | if(sph->co[sph->l]!=NULL) free(sph->co[sph->l]); |
| | |
| | | ts_bool preparationSh(ts_vesicle *vesicle, ts_double r0){ |
| | | //TODO: before calling or during the call calculate area of each triangle! Can |
| | | //be also done after vertexmove and bondflip // |
| | | //DONE: in energy calculation! // |
| | | ts_uint i,j; |
| | | ts_vertex **vtx=vesicle->vlist->vtx; |
| | | ts_vertex *cvtx; |
| | |
| | | ts_uint i,j,k; |
| | | ts_vertex *cvtx; |
| | | for(i=0;i<vesicle->sphHarmonics->l;i++){ |
| | | for(j=0;j<2*i;j++) vesicle->sphHarmonics->ulm[i][j]=0.0; |
| | | for(j=0;j<2*i+1;j++) vesicle->sphHarmonics->ulm[i][j]=0.0; |
| | | } |
| | | |
| | | //TODO: call calculateYlmi !!! |
| | |
| | | |
| | | return TS_SUCCESS; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | ts_bool storeUlm2(ts_vesicle *vesicle){ |
| | | |
| | | ts_spharm *sph=vesicle->sphHarmonics; |
| | | ts_int i,j; |
| | | for(i=0;i<sph->l;i++){ |
| | | for(j=0;j<2*i+1;j++){ |
| | | /* DEBUG fprintf(stderr,"sph->sumUlm2[%d][%d]=%e\n",i,j,sph->ulm[i][j]* sph->ulm[i][j]); */ |
| | | sph->sumUlm2[i][j]+=sph->ulm[i][j]* sph->ulm[i][j]; |
| | | } |
| | | } |
| | | sph->N++; |
| | | return TS_SUCCESS; |
| | | } |