26 #include "../include/VarData.h" 31 if((FileToRead = fopen(InFile,
"r"))==0){
32 printf(
"The file %s is missing\n",InFile);
44 for(
int k=0;!(fgets(cLine,STRSIZE,FileToRead)==NULL);k++){
45 if(cLine[0] ==
'#')
continue;
53 if( (
int)*buff == 1 ){
75 DiblockLim = (
int)*buff;
77 if( (
int)*buff == 1 ){
78 VAR_ADD_TYPE(
SysType,VAR_TWOTAILS);
83 Gen->NNano = (int)*buff;
105 if(
ReadString(
"WFuncStraight2",cLine,buff)==1)
107 if(
ReadString(
"WFuncStraight3",cLine,buff)==1)
112 Gen->
Edge[0] = *buff;
114 Gen->
Edge[1] = *buff;
116 Gen->
Edge[2] = *buff;
119 ReadNano(FileToRead,NCircle,NHeight);
139 if( !
Fetch(cLine,
"x",
"%lf %lf %lf",Pos,Pos+1,Pos+2)){
144 for(
int d=0;d<3;d++){
145 if(isnan(Pos[d])) Pos[d] = .5*
pEdge(d);
150 if( !
Fetch(cLine,
"a",
"%lf %lf %lf",Axis,Axis+1,Axis+2)){
156 if(isnan(Axis[0])) Axis[0] = 0.;
157 if(isnan(Axis[1])) Axis[1] = 0.;
158 if(isnan(Axis[2])) Axis[2] = 1.;
163 if(
Fetch(cLine,
"c",
"%lf %lf %lf %lf",Char,Char+1,Char+2,Char+3)){
175 if(
Fetch(cLine,
"s",
"%s",Shape)){
183 if(!strcmp(Shape,
"no"))
184 VAR_ADD_TYPE(iShape,SHAPE_NONE);
185 else if(!strcmp(Shape,
"sph"))
186 VAR_ADD_TYPE(iShape,SHAPE_SPH);
187 else if(!strcmp(Shape,
"tip"))
188 VAR_ADD_TYPE(iShape,SHAPE_TIP);
189 else if(!strcmp(Shape,
"dip"))
190 VAR_ADD_TYPE(iShape,SHAPE_SPH);
191 else if(!strcmp(Shape,
"cyl")){
192 VAR_ADD_TYPE(iShape,SHAPE_CYL);
193 VAR_ADD_TYPE(iShape,SHAPE_HEI);
195 else if(!strcmp(Shape,
"tilt")){
196 VAR_ADD_TYPE(iShape,SHAPE_TILT);
197 VAR_ADD_TYPE(iShape,SHAPE_HEI);
199 else if(!strcmp(Shape,
"pill")){
200 VAR_ADD_TYPE(iShape,SHAPE_PILL);
201 VAR_ADD_TYPE(iShape,SHAPE_HEI);
203 else if(!strcmp(Shape,
"wall"))
204 VAR_ADD_TYPE(iShape,SHAPE_WALL);
205 else if(!strcmp(Shape,
"cluster"))
206 VAR_ADD_TYPE(iShape,SHAPE_CLUSTER);
207 else if(!strcmp(Shape,
"harm"))
208 VAR_ADD_TYPE(iShape,SHAPE_HARM);
209 else if(!strcmp(Shape,
"clinks"))
210 VAR_ADD_TYPE(iShape,SHAPE_CLINKS);
211 else if(!strcmp(Shape,
"pore"))
212 VAR_ADD_TYPE(iShape,SHAPE_PORE);
213 else if(!strcmp(Shape,
"ext"))
214 VAR_ADD_TYPE(iShape,SHAPE_EXT);
215 else if(!strcmp(Shape,
"janus"))
216 VAR_ADD_TYPE(iShape,SHAPE_JANUS);
217 else if(!strcmp(Shape,
"stalk"))
218 VAR_ADD_TYPE(iShape,SHAPE_STALK);
219 else if(!strcmp(Shape,
"torus"))
220 VAR_ADD_TYPE(iShape,SHAPE_TORUS);
221 else if(!strcmp(Shape,
"umbr"))
222 VAR_ADD_TYPE(iShape,SHAPE_UMBR);
223 else if(!strcmp(Shape,
"bound"))
224 VAR_ADD_TYPE(iShape,SHAPE_BOUND);
226 printf(
"Nano type %s not recognized\n",Shape);
232 for(
int k=0,n=0;!(fgets(cLine,STRSIZE,ConfFile)==NULL);k++){
233 if(n == Gen->NNano)
break;
234 if(cLine[0] ==
'#')
continue;
235 if(strstr(cLine,
"Rigid") == cLine) {
237 for(
int d=0;d<3;d++){
243 if( (
Nano[n].NCircle%2) != 0)
253 FILE *FRead = fopen(cFile,
"r+");
257 fgetpos(FRead,&fPosNano);
258 fgets(cLine,
sizeof(cLine),FRead);
259 if(strstr(cLine,
"# Rigid") == cLine){
262 else if(strstr(cLine,
"#") != cLine){
263 printf(
"No # Rigid present!\n");
267 fgets(cLine,
sizeof(cLine),FRead);
268 fsetpos(FRead,&fPosNano);
270 fprintf(FRead,
"%s",cLine);
282 for(
int k=0,n=0;!(fgets(cLine,STRSIZE,ConfFile)==NULL);k++){
283 if(cLine[0] ==
'#')
continue;
284 if(n ==
NSoft)
break;
285 if (strstr(cLine,
"Soft") == cLine) {
286 if( !
Fetch(cLine,
"x",
"%lf %lf %lf",Pos,Pos+1,Pos+2)){
296 if( !
Fetch(cLine,
"v",
"%lf %lf %lf",Vel,Vel+1,Vel+2)){
306 if( !
Fetch(cLine,
"c",
"%lf %lf %lf",Char,Char+1,Char+2)){
307 printf(
"Rigid characteristic are not specified\n");
313 if( !
Fetch(cLine,
"s",
"%s",Shape)){
314 printf(
"Soft shape is not specified\n");
317 if(!strcmp(Shape,
"planar")){
318 VAR_ADD_TYPE(
Soft[n].Topology,VAR_PLANAR);
320 else if(!strcmp(Shape,
"planarPE")){
321 VAR_ADD_TYPE(
Soft[n].Topology,VAR_PLANAR_PE);
323 else if(!strcmp(Shape,
"tube"))
324 VAR_ADD_TYPE(
Soft[n].Topology,VAR_TUBE);
325 else if(!strcmp(Shape,
"obstacle"))
326 VAR_ADD_TYPE(
Soft[n].Topology,VAR_OBSTACLE);
327 else if(!strcmp(Shape,
"coating"))
328 VAR_ADD_TYPE(
Soft[n].Topology,VAR_COATING);
329 else if(!strcmp(Shape,
"distributed"))
330 VAR_ADD_TYPE(
Soft[n].Topology,VAR_DISTRIBUTED);
331 else if(!strcmp(Shape,
"vesicle"))
332 VAR_ADD_TYPE(
Soft[n].Topology,VAR_VESICLE);
334 printf(
"Soft type not recognized %s\n",Shape);
337 sprintf(
Soft[n].Name,
"LIPID");
352 VAR_REM_TYPE(
SysType,VAR_CHAIN_DEF);
355 for(
int d=0;d<3;d++){
358 fgets(cLine,STRSIZE,FileToRead);
359 if(
Fetch(cLine,
"l",3,Val)){
361 VAR_ADD_TYPE(
SysType,VAR_EDGE);
367 else if(!strncmp(cLine,
"# L=",4)){
372 fgets(cLine,STRSIZE,FileToRead);
373 char *pLine = strchr(cLine,
'#');
375 int NPar = sscanf(cLine,
"%lf %lf %lf %lf\n",Val,Val+1,Val+2,Val+3);
402 fgets(cLine,STRSIZE,FileToRead);
407 if(
Fetch(cLine,
"c",1,Val)){
414 if(
Fetch(cLine,
"e",3,Val)){
420 if(
Fetch(cLine,
"i",3,Val)){
426 if(
Fetch(cLine,
"L",1,Val)){
430 if(
Fetch(cLine,
"n",1,Val)){
433 VAR_ADD_TYPE(
SysType,VAR_OPEN_TRUST);
436 if(
Fetch(cLine,
"N",4,Val)){
450 if(
Fetch(cLine,
"P",1,Val)){
451 if( *Val < 0. || *Val > 3.);
458 if(
Fetch(cLine,
"r",4,Val)){
474 if(
Fetch(cLine,
"v",1,Val)){
481 VAR_ADD_TYPE(
SysType,VAR_OPEN_TRUST);
489 fgetpos(FileToRead,&PosTemp);
491 fgets(cLine,
sizeof(cLine),FileToRead);
492 if(strstr(cLine,
"# Rigid") == cLine)
494 else if(strstr(cLine,
"# Pep") == cLine)
499 fsetpos(FileToRead,&PosTemp);
502 for(
int n=0;n<Gen->NNano;n++){
503 fgetpos(FileToRead,&PosTemp);
504 fgets(cLine,STRSIZE,FileToRead);
505 if( strncmp(cLine,
"# Rigid",7)){
506 fsetpos(FileToRead,&PosTemp);
515 fgets(cLine,STRSIZE,FileToRead);
518 fgetpos(FileToRead,&PosTemp);
521 if( sscanf(cLine,
"# L=%lf %lf %lf t=%lf blocks=%d",&Val[0],&Val[1],&Val[2],&Time,&NBlock) == 5 ){
526 VAR_ADD_TYPE(
SysType,VAR_EDGE);
538 fscanf(FileToRead,
"# v=");
539 for(
int i=0;i<6;i++){
540 if(fscanf(FileToRead,
"%lf ",v+i) != 1){
542 if(i == 2) IfThreeType = 0;
545 if(i > 2) IfTwoType = 0;
549 if(IfTwoType) NThird = 4;
550 fscanf(FileToRead,
"w=");
551 for(
int i=0;i<NThird;i++){
552 if(fscanf(FileToRead,
"%lf ",w+i) != 1){
556 Gen->
rho = 3.*(- .5*v[0] + sqrt(QUAD(v[0])*.25-8.*w[0]/3.))/(4.*w[0]);
559 Gen->
chiN = (v[1] - .5*(v[0]+v[2]))*Gen->
rho;
561 Gen->
chiN = (v[1] - .5*(v[0]+v[3]))*Gen->
rho;
563 fgets(cLine,STRSIZE,FileToRead);
564 double Nigot1,Nigot2,Nigot3;
565 fgetpos(FileToRead,&PosTemp);
568 else fsetpos(FileToRead,&PosTemp);
579 fgetpos(FileToRead,&PosTemp);
581 for(
int t=0;t<50;t++){
582 if(NULL == fgets(cLine,
sizeof(cLine),FileToRead))
break;
583 if(strstr(cLine,
"# Rigid") == cLine)
585 else if(strstr(cLine,
"# Pep") == cLine)
590 fsetpos(FileToRead,&PosTemp);
593 for(
int n=0;n<Gen->NNano;n++){
594 fgetpos(FileToRead,&PosTemp);
595 fgets(cLine,STRSIZE,FileToRead);
596 if( strncmp(cLine,
"# Rigid",7)){
597 fsetpos(FileToRead,&PosTemp);
605 for(
int n=NNanoTemp;n<Gen->NNano;n++){
606 fgetpos(FileToRead,&PosTemp);
607 fgets(cLine,STRSIZE,FileToRead);
608 if( strncmp(cLine,
"# Pep",4) ){
609 fsetpos(FileToRead,&PosTemp);
612 if(
Fetch(cLine,
"g",
"%lf %lf %lf",Char,Char+1,Char+2)){
617 if(
Fetch(cLine,
"d",
"%d %d",NSide,NSide+1)){
621 if(
Fetch(cLine,
"fn",
"%s",FileName)){
622 sprintf(
Nano[n].ArchFile,
"%s",FileName);
642 for(
int k=0;!(fgets(cLine,STRSIZE,FileToRead)==NULL);k++){
643 if(cLine[0] ==
'#')
continue;
644 int iLen = (int) (strlen(cLine));
645 if(
Fetch(cLine,
"t",
"%d %d %d",Val,Val+1,Val+2)){
649 if(c >= NChain) NChain++;
650 if(t >= NType) NType++;
652 if(cLine[0] ==
'{') NPart++;
653 if(NChain==0) NPCh++;
654 for(
int i=0,link=0,part=0;i<iLen;i++){
655 if(cLine[i] ==
'l' && cLine[i+1] ==
'['){
657 if(link >= NLink) NLink++;
661 if(NChain==0) NChain = 1;
669 for(
int k=0,b=0;!(fgets(cLine,STRSIZE,FileToRead)==NULL);k++){
670 if(3 == sscanf(cLine,
"# n=%d N=%d name=%s",&Val[0],&Val[1],&
Block[b].Name)){
689 if(Gen->
NBlock == b)
break;
692 for(
int b=0,nNano=0;b<
pNBlock();b++){
693 if(VAR_IF_TYPE(
Block[b].Arch,ARCH_CLUSTER)){
694 for(
int n=0;n<
pNNano();n++,nNano=n){
695 if(VAR_IF_TYPE(
Nano[n].Shape,SHAPE_CLUSTER)){
704 for(
int k=0,b=0;!(fgets(cLine,STRSIZE,FileToRead)==NULL);k++){
705 if(cLine[0] ==
'#' || cLine[0] ==
'$'){
continue;}
708 if(
SysFormat == VAR_SYS_XYZ) NPCh = NPart;
720 for(
int d=0;d<3;d++) Gen->
Cm[d] = 0.;
738 for(
int d=0;d<3;d++) Gen->
Cm[d] /= (
double)
pNPart();
740 for(
int d=0;d<3;d++){
758 for(
int d=0;d<4;d++) Gen->
Vel[d] = 0.000001;
759 for(
int c=0;c<Gen->NChain;c++){
766 for(
int p=0,c=0;!(fgets(cLine,STRSIZE,FileToRead)==NULL);p++){
769 int iLen = strlen(cLine);
770 for(
int k=0;k<iLen;k++){
777 if(!IfContinue)
continue;
783 int sPos =
Fetch(cLine,
"t",
"%d %d %d",Char,Char+1,Char+2);
789 if(p>0 &&
Pm[p].CId !=
Pm[p-1].CId){
795 sPos +=
Fetch(cLine+sPos,
"x",
"%lf %lf %lf",
Pm[p].Pos,
Pm[p].Pos+1,
Pm[p].Pos+2);
796 sPos +=
Fetch(cLine+sPos,
"v",
"%lf %lf %lf",
Pm[p].Vel,
Pm[p].Vel+1,
Pm[p].Vel+2);
797 for(
int d=0;d<3;d++){
808 printf(
"More chains than expected %d > %d\n",c,Gen->
NChain);
811 if(
Pm[p].CId == 0){Gen->
NPCh++;}
818 Pm[p].
Vel[3] = sqrt( QUAD((
Pm[p].Vel[0])) + QUAD((
Pm[p].Vel[1])) + QUAD((
Pm[p].Vel[2])) );
819 Gen->
Vel[3] += sqrt( QUAD((
Pm[p].Vel[0])) + QUAD((
Pm[p].Vel[1])) + QUAD((
Pm[p].Vel[2])) );
820 for(
int l=0;l<Gen->
NLink;l++){
822 int sPosOld =
Fetch(cLine+sPos,
"l",1,Val);
825 Ln[p].
Link[l] = (int)Val[0];
832 for(
int c=0;c<Gen->
NChain;c++)
834 Ch[c].Pos[d] /= Gen->
NPCh;
835 Gen->
Vel[3] /= (
double)NPart;
843 double *buff = (
double *) malloc(
sizeof(
double));
855 for(
int t=0;t<50;t++){
856 fgets(cLine,STRSIZE,FileToRead);
857 if(3 == sscanf(cLine,
"# n=%d N=%d name=%s",&Val[0],&Val[1],&
Block[b].Name)){
867 if(strcasestr(
Block[b].Name,
"TT") ==
Block[b].Name){
871 if(strcasestr(
Block[b].Name,
"PEP") ==
Block[b].Name){
885 if(NULL == fgets(cLine,STRSIZE,FileToRead))
break;
886 if(cLine[0] ==
'#'){ppc--;
continue;}
889 printf(
"Reading more particles than the ones allocated\n");
896 Incr +=
ReadVal(cLine+Incr,buff);
Pm[p].
Pos[1] = *buff*ScaleF[1];
897 Incr +=
ReadVal(cLine+Incr,buff);
Pm[p].
Pos[2] = *buff*ScaleF[2];
901 Incr +=
ReadVal(cLine+Incr,buff);
Pm[p].
Typ = (int)*buff;
902 for(
int d=0;d<3;d++) Gen->
Cm[d] +=
Pm[p].
Pos[d];
903 if(NType <
Pm[p].
Typ ) NType++;
911 if(
Pm[p1+ppc].Typ !=
Pm[p1+ppc-1].Typ)
920 if(
Block[b].Arch == ARCH_CLUSTER) NLink = 0;
923 for(
int ppc = 0;ppc<
Block[b].
NPCh-1;ppc++){
925 Ln[pCurr+ppc].
Link[0] = pCurr+ppc+1;
926 if(
Block[b].Arch == ARCH_TWOTAILS){
927 if(ppc ==
Block[b].Asym/2 - 1){
947 if(NPCh == 0) NPCh = Gen->
NPart;
961 Incr +=
ReadVal(cLine+Incr,&Temp);Pos[1] = Temp*ScaleF[1];
962 Incr +=
ReadVal(cLine+Incr,&Temp);Pos[2] = Temp*ScaleF[2];
963 Incr +=
ReadVal(cLine+Incr,&Temp);
964 Incr +=
ReadVal(cLine+Incr,&Temp);
965 Incr +=
ReadVal(cLine+Incr,&Temp);
966 Incr +=
ReadVal(cLine+Incr,&Temp);*Type = (int)Temp;
970 double *buff = (
double *) malloc(
sizeof(
double));
973 for(
int p=0,c=-1;!(fgets(cLine,STRSIZE,FileToRead)==NULL);p++){
974 if(p >=
pNPart()-1)
continue;
976 if(cLine[0] ==
'#' || cLine[0] ==
'$'){p--;
continue;}
977 sscanf(cLine,
"%lf %lf %lf",Pos,Pos+1,Pos+2);
979 Pm[p].Pos[d] = Pos[d];
986 for(
int d=0;d<3;d++){
991 for(
int p=0;p<
pNPart();p++){
992 for(
int d=0;d<3;d++){
1005 double *buff = (
double *) malloc(
sizeof(
double));
1006 char cLine[STRSIZE];
1011 for(
int p=0,c=-1;!(fgets(cLine,STRSIZE,FileToRead)==NULL);p++){
1012 if(p >=
pNPart()-1)
continue;
1014 if(cLine[0] ==
'#' || cLine[0] ==
'$'){p--;
continue;}
1015 sscanf(cLine,
"%lf %lf %lf %lf",Pos,Pos+1,Pos+2,Pos+3);
1016 for(
int d=0;d<3;d++)
1017 Pm[p].Pos[d] = Pos[d];
1018 Pm[p].
Typ = (int)Pos[3];
1019 if(OldTyp >
Pm[p].Typ){
1023 if(NChain == 0) NPCh++;
1028 for(
int d=0;d<3;d++){
1033 for(
int p=0;p<
pNPart();p++){
1034 for(
int d=0;d<3;d++){
1038 if(NChain == 0) NChain = 1;
int ReadPart(FILE *FileToRead)
Reads particle type and position.
int SetNLink(int NewNCh)
Set and reallocate the number of links.
void SetNPCh(int NewNCh)
Set and reallocate the number of particles per chains.
CHAIN * Ch
Information on all chains.
int pNLink()
Maximum number of bonds.
Information about the nanoparticle.
int ReadPartXvt(FILE *FileToRead)
Reads a position-velocity-type file.
int NLink
How many links per particle.
double kappaN
Incompressibility.
BLOCK * Block
Information for every block.
int NAddChol
Additional cholesterol chains into the membrane.
double Vel[4]
xyzr Velocity of the particle
LINKS * Ln
Array of linking between the particles.
double Viscosity
Viscosity.
void ShapeId(int iShape, char *Shape)
Identifier of the shape.
double ShiftPos[3]
Reference position.
NANO * Nano
Extra particle.
double chiN
Incompatibility.
int SetNChain(int NewNCh)
Set and reallocate the number of chains.
double Gamma
Friction term.
double Hamaker
Strength of the interaction.
int ReadPartXyzt(FILE *FileToRead)
Reads a x y z t file.
double Edge[4]
xyzr edges of the simulation box
char cWhat2Draw[STRSIZE]
What to draw.
double WFuncStraight2
Weighting function straight length.
int Asym
Diblock limit of the chain.
void SetTime(double Val)
Set Time.
int SetNBlock(int Val)
Set NBlock.
void SetNanoBkf(int n)
Set the back folded array for the nano n.
double pInvEdge(int d)
Inverted xyzr edges of the simulation box.
int Fetch(char *str, char *mask, char *fmt,...)
Retrive from a string the information concerning the mask.
int Arch
Architecture type.
double Height
Height of the cylinder.
Information for every soft object.
void SubNanoHeader(char *cFile)
Substitue the nano header.
int CLat2
lateral coordinate
double Pos[3]
xyz Position of the particle
int NLink
Maximum number of bonds.
int InitBead
Initial bead.
int NAddChain
Additional homopolymer chains into the membrane.
int InitIdx
Initial particle position.
double Vel[4]
Velocity of the system.
int Shape
0 none, 1 spherical, 2 cylindrical 3 wall
void ReadHeader(FILE *FileToRead)
Reads a header.
bool ReadString(const char *String, char *cLine, double *Value)
Copy the value in the.
double SpringRest
Rest length of the harmonic potential.
void SetDeltat(double Val)
Set DeltaT.
int nBlock
In which block is the peptide written.
int SetNPart(int NewNPart)
Set and reallocate the number of particles.
int NStuffing
Stuffing for the cylinder.
double pEdge(int d)
xyzr edges of the simulation box
int pNPCh()
Number of particle per chain.
int Idx
Particle identifier.
double vBB
Chemical potential of the water.
int ReadPartTxvl(FILE *FileToRead)
Reads a type-position-velocity-link file.
int pNBlock()
Number of blocks.
MatInt * MInt
Matrix of the prefactor of the interactions.
int NChain
Number of chain.
int * Link
with whom is bonded
int NEdge
Number of particles per edge.
double Vel[3]
bias velocity
double kappaSpring
Prefactor of the bond spring.
int NCircle
Number of monomers per circle.
int HeaderNano(FILE *FileToWrite)
Write the nano section of the header to the file.
void SetTemp(double Val)
Set Temperature.
int ReadSoft(FILE *ConfFile)
Reads the specifications about the nano.
int ReadPartXyz(FILE *FileToRead)
Reads a x y z file.
int NPCh
Number of particle per chain.
double Bkf[3]
Backfolded position.
int SysType
Contains the definition of the system.
double Pos[3]
initial position
int pNNano()
Number of nanoparticles.
double Coating
Thickness of the LJ well.
double Cm[3]
Center of mass of the system.
double Energy[3]
Pot, kinetik, free.
double Pos[4]
xyzr Postion of the chain
int NPCh
particles per chain
double ScaleF[3]
Scale factor.
void SetStep(int Val)
Set Step.
int ReadLineXvt(char *cLine, double *Pos, int *Type)
Read a single line in format Xvt.
int SysFormat
Contains the definition of the file format.
int NanoString(char *cLine, int n)
Reads and set the specifics of the nano.
int NSolvent
Solvent molecules.
double OffSet
Reference potential.
double pReOverCutOff()
Re/CutOff.
void SetNType(int NewNType)
Set the number of species.
double WFuncStraight3
Weighting function straight length.
int EndIdx
End particle position.
int NType
of types of the particle
int pNChain()
Number of chain.
int IfNormalize
If normalize the lateral dimensions to one.
int BfEdge()
Find the box size if missing.
int CLat1
lateral coordinate
void ReadHeaderTxvl(FILE *FileToRead)
Reads a header for a txvl file format.
void ReadHeaderXvt(FILE *FileToRead)
Reads a header of xvl file format.
int ReadPassThru(FILE *FileToRead)
Reads the information to alloc the structure.
bool ReadConf(char *InFile)
Reads a "configuration file".
double AVel[3]
Angular velocity.
double Axis[3]
Rotation axis.
int NSoft
Number of soft bodies.
void Rescale(double SFactor, int Order)
Rescale entries.
int SetNNano(int Val)
Set NNano.
int NPart
Number of particle.
PART * Pm
Particle information of all particle.
double ReOverCutOff
Convertion unit R_e over CutOff.
int NPCh
Number of particles per chain.
int NBlock
Number of blocks.
void VarMessage(const char *s,...)
If enabled call the function position.
double Size[3]
dimension xyz/rad height
void ReadNano(FILE *ConfFile, int NCircle, int NHeight)
Reads the specifications about the hard object.
void SetCoeff()
Set the virial coefficients from the known values of density coex...
double rho
Density coexistence.
void SetEdge(double Val, int d)
Set Edge.
int ReadVal(char *pLine, double *Value)
Copy the value in the String to the Value referring to the position of pLine.
int CNorm
Normal coordinate.
int pNPart()
Number of particle.
int NHeight
Number of monomers per side.
double kappaBend
Prefactor of the bending potential.