3 if(Coord > 4 || Coord <0)
return 1;
5 double *Plot = (
double *)calloc(NBin*NBin*NType,
sizeof(
double));
6 double InvNBin = 1./(double)NBin;
7 double RefPos[3] = {0.,0.,0.};
12 RefPos[0]=
pCm(0);RefPos[1]=
pCm(1);RefPos[2]=
pCm(2);
22 int coord1 = (Coord+1)%3;
23 int coord2 = (Coord+2)%3;
24 for(
int p=0;p<
pNPart();p++){
25 double x =
pPos(p,coord1) - RefPos[coord1];
27 double y =
pPos(p,coord2) - RefPos[coord2];
29 int v = (int)(NBin*x*
pInvEdge(coord1));
30 if( v < 0 || v >= NBin)
continue;
31 int vv = (int)(NBin*y*
pInvEdge(coord2));
32 if( vv < 0 || vv >= NBin)
continue;
34 if( t < 0 || t > 3)
continue;
35 if( CHAIN_IF_TYPE(
Ch[
pChain(p)].Type,CHAIN_ADDED) )
36 Plot[(v*NBin+vv)*NType+3] += 1.;
37 Plot[(v*NBin+vv)*NType+t] += 1.;
40 Plot[(v*NBin+vv)*NType+4] += 1.;
46 for(
int p=0;p<
pNPart();p++){
53 double r = sqrt(SQR(x)+SQR(y));
55 if( v < 0 || v >= NBin)
continue;
57 if( vv < 0 || vv >= NBin)
continue;
59 if( t < 0 || t > 3)
continue;
60 if( CHAIN_IF_TYPE(
Ch[
pChain(p)].Type,CHAIN_ADDED) )
61 Plot[(v*NBin+vv)*NType+3] += 1.;
62 Plot[(v*NBin+vv)*NType+t] += 1.;
65 Plot[(v*NBin+vv)*NType+4] += 1.;
71 FILE *FileToWrite = NULL;
72 FileToWrite = fopen(
"Projection.xyd",
"w");
74 int coord1 = (Coord+1)%3;
75 int coord2 = (Coord+2)%3;
81 for(
int t=0;t<NType;t++){
83 for(
int v=0;v<NBin;v++)
84 for(
int vv=0;vv<NBin;vv++)
85 if(Max[t] < Plot[(v*NBin+vv)*NType+t]) Max[t] = Plot[(v*NBin+vv)*NType+t];
86 Max[t] = Max[t] <= 0. ? 1. : Max[t];
90 for(
int v=0;v<NBin;v++){
91 for(
int vv=0;vv<NBin;vv++){
92 int p = (v*NBin+vv)*NType+t;
94 if(Plot[p] < .1)
continue;
97 double dens = Plot[p]/Max[t]*5.+.5*
pEdge(
CNorm);
98 double NanoAdded = 0.;
99 double Phob = t == 0 ? Plot[(v*NBin+vv)*NType+0]/Max[0] : 0.;
100 double Phil = t == 1 ? Plot[(v*NBin+vv)*NType+1]/Max[1] : 0.;
101 fprintf(FileToWrite,
"{t[%d %d %d] x(%lf %lf %lf) v(%lf %lf %lf)}\n",p,c,t,x,y,dens,NanoAdded,Phob,Phil);
112 double *PlotAv = (
double *)calloc(NBin*NBin,
sizeof(
double));
114 double AreaAv = 0.,SurfAv = 0.;
116 printf(
"Edge %lf Threshold %d\n",
pEdge(3),Threshold);
119 if(
OpenRisk(cFile[f],BF_PART))
return 1;
120 double Surf=0.,Area =0.;
121 double *Plot = (
double *)calloc(NBin*NBin,
sizeof(
double));
122 for(
int p=0;p<
pNPart();p++){
124 if( v < 0 || v > NBin){ printf(
"Oi 0 < %d < %d\n",v,NBin);
return 1;}
126 if( vv < 0 || vv > NBin){ printf(
"Oi 0 < %d < %d\n",vv,NBin);
return 1;}
127 Plot[v*NBin+vv] += 1.;
129 for(
int v=0;v<NBin;v++)
130 for(
int vv=0,n=0;vv<NBin;vv++)
131 PlotAv[v*NBin+vv] += Plot[v*NBin+vv];
132 for(
int v=1;v<NBin-1;v++){
133 for(
int vv=1,n=0;vv<NBin-1;vv++){
134 if(Plot[v*NBin+vv] > Threshold){
137 if(Plot[(v-1)*NBin+vv] > Threshold && v > 0)
139 if(Plot[(v+1)*NBin+vv] > Threshold && v < NBin -1)
141 if(Plot[v*NBin+vv-1] > Threshold && vv > 0)
143 if(Plot[v*NBin+vv+1] > Threshold && vv < NBin -1)
148 else if(n < 4 && n != 0){
170 for(
int v=0;v<NBin;v++)
171 for(
int vv=0,n=0;vv<NBin;vv++)
172 if(PlotAv[v*NBin+vv] > Max)
173 Max = PlotAv[v*NBin+vv];
175 FILE *FileToWrite = NULL;
176 FileToWrite = fopen(
"Surface.xyz",
"w");
177 double FNorma = 1./(double)(NFile[1] - NFile[0]);
178 double LengthConv =
pEdge(0)*
pEdge(1)/(double)(NBin*NBin);
179 fprintf(FileToWrite,
"#AreaTot %lf Area %lf Surf %lf Threshold %d NChain %d NBin %d\n",
pEdge(
CLat1)*
pEdge(
CLat2),AreaAv*FNorma*LengthConv,SurfAv*FNorma*LengthConv,Threshold,
pNChain(),NBin);
180 for(
int v=0;v<NBin;v++)
181 for(
int vv=0,n=0;vv<NBin;vv++)
182 if(PlotAv[v*NBin+vv] > 0.)
183 fprintf(FileToWrite,
"%lf %lf %lf\n",(
double)v/NBin*
pEdge(
CLat1),(
double)vv/NBin*
pEdge(
CLat2),PlotAv[v*NBin+vv]/Max);
193 sprintf(FName,
"ProjOnSurf%05d.dat",f);
194 FILE *FLine = fopen(FName,
"w");
196 for(
int p=0;p<
pNPart();p++){
197 if(
pType(p) != 0)
continue;
198 fprintf(FLine,
"{x(%lf %lf %lf) v(%lf %lf %lf)}\n",
pPos(p,
CLat1)*
pInvEdge(
CLat1),
pPos(p,
CLat2)*
pInvEdge(
CLat1),.5,
pVel(p,0),
pVel(p,1),
pVel(p,2));
205 if(Coord != 0 && Coord != 1){
206 printf(
"Coordinate accepted are 0 or 1 not %d\n",Coord);
209 int SecCoord = (Coord+1)%2;
210 double *Line = (
double *) calloc(3*
NEdge,
sizeof(
double));
211 double *Count = (
double *) calloc(3*
NEdge,
sizeof(
double));
212 for(
int p=0;p<
pNPart();p++){
214 if(vz < 0 || vz >=
NEdge)
continue;
215 for(
int d=0;d<3;d++){
216 Line[vz*3+d] +=
pVel(p,d);
220 for(
int vz=0;vz<
NEdge;vz++){
221 for(
int d=0;d<3;d++){
222 double Norm = Count[vz*3+d] > 0. ? Count[vz*3+d] : 1.;
224 Line[vz*3+d] *=
pEdge(SecCoord)/(double)NEdge;
227 FILE *FLine = fopen(
"ProjOnLine.dat",
"w");
228 for(
int v=0;v<
NEdge;v++){
229 fprintf(FLine,
"%lf %lf %lf %lf\n",v*
pEdge(Coord)/(
double)NEdge,Line[v*3+0],Line[v*3+1],Line[v*3+2]);
245 double InvNFile = 1./(double)(
NFile[1]-
NFile[0]);
246 Plot = (
double **)calloc(NBin,
sizeof(
double));
247 for(
int i=0;i<NBin;i++){
248 *(Plot+i) = (
double *)calloc(NBin,
sizeof(
double));
252 if(
OpenRisk(cFile[f],BF_PART))
return 0;
254 for(
int p=0;p<
pNPart();p++){
257 int vr = (int)(NBin*Rad*
pInvEdge(3));
260 if( vr < 0 || vr >= NBin)
continue;
261 if( vz < 0 || vz >= NBin)
continue;
262 Plot[vr][vz] += InvNFile;
267 FILE *FileToWrite = fopen(
"RadialShell.xye",
"w");
269 fprintf(FileToWrite,
"%lf %lf %lf\n",0.,0.,0.);
270 fprintf(FileToWrite,
"%lf %lf %lf\n",
pEdge(0),
pEdge(1),1.);
272 for(
int i=0;i<NBin;i++){
273 for(
int j=0;j<NBin;j++){
274 if(Plot[i][j] > Max) Max = Plot[i][j];
278 for(
int vz=0;vz<NBin;vz++){
280 for(
int vr=0;vr<NBin;vr++){
281 if(Plot[vr][vz] > 0.){
282 fprintf(FileToWrite,
"%lf %lf %lf\n",(
double)vr/NBin*
pEdge(3),(
double)vz/NBin*
pEdge(2),Plot[vr][vz]/Max);
283 Norm += Plot[vr][vz];
296 Mat->
PreFact = 3./8.*pow((3.*Vol)/DUE_PI,1./3.);
299 printf(
"Volume %lf Cm %lf Area %lf # to Invert %lf\n",(
double)
pNPart()/10.,
pCm(2),Area,pow(DUE_PI/(2.*
pNPart()/10.),.25));
301 Radici = (
double *)malloc(NRadici*
sizeof(
double));
302 int NZeri =
Mat->
Zeri(0.,DUE_PI/2.,Radici,NRadici);
303 for(
int i=0;i<NZeri;i++){
304 Radici[i] *= 360./DUE_PI;
305 printf(
"Angle %lf\n",Radici[i]);
308 printf(
"The function has no real roots\n");
316 double DensEl = CUB(NSample)/(
pVol()*NPairF);
318 FILE *FNano = fopen(
"NanoPos.txt",
"w");
320 for(
int ff=NFile[0];ff<NFile[1];ff+=NPairF){
321 double *Plot = (
double *)calloc(CUBE(NSample),
sizeof(double));
326 for(
int f=ff;f<ff+NPairF&&f<NFile[1];f++){
328 if(
OpenRisk(cFile[f],BF_PART))
return;
331 if(
pType(p) != 0)
continue;
332 for(
int d=0;d<3;d++){
336 int sx = (int)(Pos[0]*
pInvEdge(0)*NSample);
337 int sy = (int)(Pos[1]*
pInvEdge(1)*NSample);
338 int sz = (int)(Pos[2]*
pInvEdge(2)*NSample);
339 int sTot = (sx*NSample+sy)*NSample+sz;
340 Plot[sTot] += DensEl;
341 if(Max < Plot[sTot]) Max = Plot[sTot];
342 if(Min > Plot[sTot]) Min = Plot[sTot];
356 sprintf(FString,
"IsoSurf%05d.dat",ff);
357 FILE *F2Write = fopen(FString,
"w");
358 fprintf(F2Write,
"#l(%lf %lf %lf) v[%d] d[polygon]\n",
pEdge(0),
pEdge(1),
pEdge(2),NSample);
361 for(
int i=0;i<NIso;i++){
362 printf(
"Min %lf Max %lf IsoLevel %lf DensEl %lf\n",Min,Max,IsoLevel[i],DensEl);
364 for(
int t=0;t<NTri;t++){
365 for(
int i=0;i<3;i++){
366 int l1 = t*3 + (i+1)%3;
367 int l2 = t*3 + (i+2)%3;
368 for(
int d=0;d<3;d++) Pos[d] = Triang[t].p[i].x[d];
369 int sx = (int)(Pos[0]*
pInvEdge(0)*NSample);
370 int sy = (int)(Pos[1]*
pInvEdge(1)*NSample);
371 int sz = (int)(Pos[2]*
pInvEdge(2)*NSample);
372 int sTot = (sx*NSample+sy)*NSample+sz;
373 fprintf(F2Write,
"{t[%d %d %d] ",sTot,t,0);
374 fprintf(F2Write,
"x(%lf %lf %lf) ",Pos[0],Pos[1],Pos[2]);
375 fprintf(F2Write,
"v(%lf %lf %lf) ",Triang[t].n[i].x[0],Triang[t].n[i].x[1],Triang[t].n[i].x[2]);
376 fprintf(F2Write,
"l[%d] l[%d]}\n",l1,l2);
382 free(Triang);
continue;
383 int NVertex = CUBE(2*NSample-1);
384 double *WeightL = (
double *) calloc(NVertex,
sizeof(
double));
386 double CmStalk[3] = {0.,0.,0.};
387 double CountStalk = 0.;
388 for(
int t=0;t<NTri;t++){
389 for(
int v=0;v<3;v++){
390 int vRef = Triang[t].
v[v];
391 for(
int d=0;d<3;d++){
392 CmStalk[d] = Triang[t].
p[v].
x[d]*WeightL[vRef];
394 CountStalk += WeightL[vRef];
399 if(CountStalk <= 0.) CountStalk = 1.;
400 for(
int d=0;d<3;d++){
401 CmStalk[d] /= CountStalk;
405 for(
int d=0;d<3;d++){
418 for(
int f=ff;f<ff+NPairF&&f<NFile[1];f++){
421 fprintf(FNano,
"sed '/Rigid/c\\%s' %s > Ciccia.dat\n",String,cFile[f]);
422 fprintf(FNano,
"mv Ciccia.dat %s\n",cFile[f]);
433 double DensEl = SQR(NSample)/(
pVol()*NPairF);
437 double *Plot = (
double *)calloc(SQR(NSample),
sizeof(double));
441 for(
int f=ff;f<ff+NPairF&&f<NFile[1];f++){
443 if(
OpenRisk(cFile[f],BF_PART))
return;
446 if(
pType(p) != 0)
continue;
447 for(
int d=0;d<3;d++){
453 int sTot = sx*NSample+sy;
455 Plot[sTot] += DensEl;
458 if(Max < Plot[sTot]) Max = Plot[sTot];
459 if(Min > Plot[sTot]) Min = Plot[sTot];
462 printf(
"Min %lf Max %lf DensEl %lf\n",Min,Max,DensEl);
472 sprintf(FString,
"IsoSurf%05d.dat",ff);
473 FILE *F2Write = fopen(FString,
"w");
474 fprintf(F2Write,
"#l(%lf %lf %lf) v[%d] d[part]\n",
pEdge(0),
pEdge(1),
pEdge(2),NSample);
476 IsoLine(F2Write,Plot,NSample,IsoLevel,NIso);
481 void ElPoly::IsoLine(FILE *F2Write,
double *Plot,
int NSample,
double *IsoLevel,
int NIso){
487 for(
int i=0;i<NIso;i++){
490 sprintf(FName,
"IsoLineChain%d.dat",i);
503 for(
int t=0;t<NTri;t++){
504 for(
int v=0;v<2;v++){
505 for(
int d=0;d<3;d++) Pos[d] = Triang[t].p[v].x[d];
506 int sTot = Triang[t].
v[v];
507 fprintf(F2Write,
"{t[%d %d %d] ",sTot,t,0);
508 fprintf(F2Write,
"x(%lf %lf %lf) ",Pos[0],Pos[1],Pos[2]);
510 fprintf(F2Write,
"l[%d]}\n",p+1);
512 fprintf(F2Write,
"\n");
522 double DistElips = SQR(Radx)+SQR(Rady);
523 for(
int i=0;i<NIt;i++){
524 double Ang = i/(double)NIt*M_PI - M_PI*.5;
525 double x = Center[0] + Radx*cos(Ang);
526 double y = Center[1] + Rady*sin(Ang);
527 fprintf(F2Write,
"{t[%d %d %d] ",p++,2,2);
528 fprintf(F2Write,
"x(%lf %lf %lf) }\n",x,y,0.);
530 for(
int t=0;t<NTri;t++){
531 for(
int v=0;v<2;v++){
532 for(
int d=0;d<3;d++) Pos[d] = Triang[t].p[v].x[d];
533 int sTot = Triang[t].
v[v];
535 if(fabs(Pos[0] - Center[0]) < Radx && fabs(Pos[1] - Center[1]) < Rady) type = 1;
536 fprintf(F2Write,
"{t[%d %d %d] ",sTot,t,type);
537 fprintf(F2Write,
"x(%lf %lf %lf) ",Pos[0],Pos[1],Pos[2]);
539 fprintf(F2Write,
"l[%d]}\n",p+1);
541 fprintf(F2Write,
"\n");
548 for(
int sx=0;sx<NSample;sx++){
549 for(
int sy=0;sy<NSample;sy++){
552 int sTot = sx*NSample+sy;
553 fprintf(F2Write,
"{t[%d %d %d] ",sTot,NTri+sTot/2,1);
554 fprintf(F2Write,
"x(%lf %lf %lf) }\n",x,y,Plot[sx*NSample+sy]);
560 sprintf(FName,
"Chain%d.dat",c);
561 FILE *FChain = fopen(FName,
"w");
562 for(
int p=0;p<
pNPart();p++){
563 if(
Pm[p].CId != c)
continue;
564 fprintf(FChain,
"%lf %lf\n",
Pm[p].Pos[0],
Pm[p].Pos[1]);
571 FILE *FNano = fopen(
"NanoPos.sh",
"w");
573 FILE *
StalkArea = fopen(
"PoreArea.dat",
"w");
574 fprintf(StalkArea,
"#time rad asy\n");
577 if(
OpenRisk(cFile[f],BF_PART))
return;
583 fprintf(StalkArea,
"%lf %lf %lf\n",
pTime(),
Nano->
Rad,Asy);
584 fprintf(FNano,
"sed '/pore/c\\%s' %s > Ciccia.dat\n",String,cFile[f]);
585 fprintf(FNano,
"mv Ciccia.dat %s\n",cFile[f]);
597 FILE *FNano = fopen(
"NanoPos.sh",
"w");
599 FILE *
StalkArea = fopen(
"StalkArea.dat",
"w");
603 if(
OpenRisk(cFile[f],BF_NO))
return;
609 fprintf(FNano,
"sed '/Rigid/c\\%s' %s > Ciccia.dat\n",String,cFile[f]);
610 fprintf(FNano,
"mv Ciccia.dat %s\n",cFile[f]);
611 sprintf(FName,
"Centered%05d.dat",f);
625 FILE *FNano = fopen(
"NanoPosA.sh",
"w");
626 FILE *
StalkArea = fopen(
"StalkArea.dat",
"w");
627 FILE *AreaS = fopen(
"AreaS.dat",
"w");
630 double *Count = (
double *)calloc(NBin*NBin,
sizeof(
double));
631 double RadTorus = 1.;
638 if(
OpenRisk(cFile[f],BF_NO))
return;
643 double Cm[3] = {0.,0.,0.};
648 for(
int p=0;p<
pNPart();p++){
649 for(
int d=0;d<3;d++){
655 if(fabs(Pos[
CNorm]) > RadTorus)
continue;
659 if(
pType(p) == 1)
continue;
660 for(
int d=0;d<3;d++){
664 int vx = (int)(Pos[CLat1]/(2.*
Nano->
Height)*NBin);
666 if(vx < 0 || vx >= NBin)
continue;
667 int vy = (int)(Pos[CLat2]/(2.*
Nano->
Height)*NBin);
669 if(vy < 0 || vy >= NBin)
continue;
670 Count[vx*NBin+vy] += 1.;
674 for(
int vx=0;vx<NBin;vx++){
675 for(
int vy=0;vy<NBin;vy++){
676 if(Count[vx*NBin+vy] < 1.)
continue;
684 printf(
"No particles in the torus %s\n",cFile[f]);
688 for(
int d=0;d<3;d++){
693 for(
int d=0;d<3;d++){
702 fprintf(FNano,
"sed '/Rigid/c\\%s' %s > Ciccia.dat\n",String,cFile[f]);
703 fprintf(FNano,
"mv Ciccia.dat %s\n",cFile[f]);
704 sprintf(FName,
"Centered%05d.dat",f);
716 double InvAv = 1./(double)NPairF;
725 for(
int p=0;p<
pNPart();p++){
726 for(
int d=0;d<3;d++){
731 for(
int p=0;p<
pNPart();p++){
732 double Pos[3] = {Pn[p].
Pos[0]*Norm,Pn[p].
Pos[1]*Norm,Pn[p].
Pos[2]*Norm};
737 sprintf(FName,
"Av%s",cFile[NFile[0]]);
742 FILE *FWrite = fopen(
"SolSim.dat",
"w");
743 double InvNSample = 1./(double)NSample;
744 fprintf(FWrite,
"# l(%.2f %.2f %.2f) d[part]\n",
pEdge(0),
pEdge(1),
pEdge(2));
745 for(
int sx=0;sx<NSample;sx++){
753 printf(
"sample average: %lf\n",m1.
Uno);
754 double ConvFact = 1.45/m1.
Uno;
755 for(
int sx=0;sx<NSample;sx++){
757 int sx1 = sx + 1 == NSample ? 0 : sx + 1;
758 for(
int sy=0;sy<NSample;sy++){
760 int sy1 = sy + 1 == NSample ? 0 : sy + 1;
761 int p = sx*NSample+sy;
762 int l1 = sx1*NSample+sy + SQR(NSample);
763 int l2 = sx*NSample+sy1 + SQR(NSample);
765 fprintf(FWrite,
"{t[%d 0 3] x(%lf %lf %lf) l[%d] l[%d]}\n",p,x,y,(
PlotMem[p]-m1.
Uno)*ConvFact,l1,l2);
CHAIN * Ch
Information on all chains.
double pTime()
Total time.
double Ypsilon
External parameter to calculate the contact angle.
double x[3]
Cartesian coordinates.
void IsoLine(int NSample, double *IsoValue, int NIso, int How)
Calculate the discrete density of the system and the correspondent isolines.
bool OpenRisk(char *InFile, int BF)
Opens a file without reallocationg.
double pVel(int p, int d)
Return the velocity.
BLOCK * Block
Information for every block.
void ShapeId(int iShape, char *Shape)
Identifier of the shape.
NANO * Nano
Extra particle.
double Hamaker
Strength of the interaction.
int pChain(int p)
Return the chain.
bool Write(char *OutFile)
Writes a "system-file" or a "x y z" file".
int Zeri(double a, double b, double *Radici, int NRadici)
Find the.
void StringNano(char *NString, int n)
String for the rigid inclusion in the header file.
char cWhat2Draw[STRSIZE]
What to draw.
void SetPos(int p, double *Pos)
Set the particle position.
void SetNanoBkf(int n)
Set the back folded array for the nano n.
double pInvEdge(int d)
Inverted xyzr edges of the simulation box.
double Height
Height of the cylinder.
MOMENTI SampleSurfaceMem(int NSample)
Allocate and fill PlotMem with the particle average position.
int pType(int p)
Return the type.
double pCm(int d)
Center of mass of the system.
int CLat2
lateral coordinate
int v[2]
Reference for the vectors.
VAR_TRIANGLE * MarchingCubes(double *Plot, int NSample, double IsoLevel, int *NTri)
Defines the triangles close to the IsoLevel of the 3d density Plot.
double Pos[3]
xyz Position of the particle
void ConnectLineChain(VAR_LINE *Triang, int NGrid, int NTri)
Connect the lines in a chain.
double * PlotMem
Particle position/density on the square lattice.
XYZ p[3]
The three vertices.
void Sample(int NSample)
Sample the space in NSample lattice points.
void ConvoluteMatrix(double *Plot, int NGrid, int NDim, int IfMinImConv)
Convolute with a matrix.
VAR_LINE * MarchingSquares(double *Plot, int NSample, double IsoLevel, int *NTri)
Defines the triangles close to the IsoLevel of the 3d density Plot.
double Area
Area of a pore or a stalk.
double pVol()
xyzr edges of the simulation box
FUNC Func
Pointer to a function.
int v[3]
Reference for the vectors.
int Shape
0 none, 1 spherical, 2 cylindrical 3 wall
int From3To2d(int Coord, double Param)
Project the velocities of a 3d system on a 2d system wrt a coordinate.
double pNanoPos(int n, int d)
Return back folded nano position.
double pEdge(int d)
xyzr edges of the simulation box
double PorePos()
Find the position of the pore.
Moments of a distribution.
void AvSnap()
Average the postion of the lipids over many snapshots.
void FetchPore()
Write the position of the pore for every snapshot.
int pNBlock()
Number of blocks.
int StalkPos(double *OldPos)
Find the position of the stalk.
int NEdge
Number of particles per edge.
void FetchStalk()
Write the position of the stalk for every snapshot.
double ContactAngle(double x)
Definition of the contact angle.
int HeaderNano(FILE *FileToWrite)
Write the nano section of the header to the file.
bool ShiftSys(int How)
Shift the system accordin to the SHIFT_ definitions.
double PreFact
External parameter in the definition of the contact angle.
int RadialShell(int NBin)
Outer shell of a projected (rad,normal) graph.
void FillGaussian(double Sigma, double CutOff)
Fill the entries for the Gauss blur.
Matrice computes the algebric operations on matrices.
char * ChooseDraw(int ExtWhat2Draw)
Convert the internal definition for the menu of ElPoly in string.
double OffSet
Reference potential.
void StalkArea()
Area of hydrophobic in the torus.
Matematica * Mat
Implementation of all usefull algorythms.
double NormalWeight(VAR_TRIANGLE *Triang, double *Weight, int NGrid, int NTri)
Weight of the neighblorung normal on a vertex.
int EndIdx
End particle position.
double pPos(int p, int d)
Return back folded position.
int pNChain()
Number of chain.
int From3To1d(int Coord)
Project a 3d system on one coordinate.
int NFile[2]
First and last file of the list.
void IsoSurf(int NSample, double *IsoValue, int NIso)
Density plot all over different snapshots and calculation of the isolevel surface.
int CLat1
lateral coordinate
Information of every particle.
int Surface(int NBin, int Coord)
Area of a surfuce projected on the coordinate Coord surf.
double Axis[3]
Rotation axis.
int ProjectionF(int NBin, int Coord)
Projection of the system against one direction pro.
int SetNNano(int Val)
Set NNano.
PART * Pm
Particle information of all particle.
void Print()
Print the entries.
void Processing(int f)
Information on the current file elaborated.
int From2To1d(int Coord)
Projet a 2d system on one of the two coordinates.
void SetEdge(double Val, int d)
Set Edge.
int CNorm
Normal coordinate.
int pNPart()
Number of particle.