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.