コード例 #1
0
ファイル: cal.c プロジェクト: shihy52x/dftb-ga
double cal_energy(double *xx, double *yy, int n1, int n2, int nc, double *cell){
    double energy;
    int status;
    FILE *fp2 ,*fp3;
    fp2=fopen("geo.gen","w"); write_gen(fp2,n1,n2,nc,xx,yy,cell,"Pt","Ru","C"); fclose(fp2);
    status=system("dftb+>dftb_screen");
    energy=grep_energy();
    fp3 =fopen("geo_end.gen","r"); read_gen(fp3,n1,n2,nc,xx,yy);fclose(fp3); 
    printf("Energy= %12.4f\n",energy);
    return grep_energy();                             
}
コード例 #2
0
ファイル: doe.cpp プロジェクト: smartplus-team/smartplus
void gen_initialize(generation &geninit, int &spop, int &apop, int &idnumber, const int &aleaspace, const int &n_param, const vector<parameters> &params, const double &lambda) {
    
    if(aleaspace==0) {
        
        ///Populate the space with equidistant values. First generation
        int geninit_nindividuals = (int)pow(spop,n_param);
        geninit.construct(geninit_nindividuals, n_param, idnumber, lambda);
        
        ///Determination of parameters_equally_spaced
        mat samples = doe_uniform(spop, n_param, params);
        
        for(int j=0; j<n_param; j++) {
            for(int i=0; i<geninit.size(); i++) {
                geninit.pop[i].p(j) = samples(i,j);
            }
        }
        
    }
    if(aleaspace==1) {
        
        ///Populate the space with equidistant values. First generation
        int geninit_nindividuals = (int)pow(spop,n_param);
        geninit.construct(geninit_nindividuals, n_param, idnumber, lambda);
        
        ///Determination of parameters_equally_spaced
        mat samples = doe_uniform_limit(spop, n_param, params);
        
        for(int j=0; j<n_param; j++) {
            for(int i=0; i<geninit.size(); i++) {
                geninit.pop[i].p(j) = samples(i,j);
            }
        }
    }
    else if(aleaspace==2) {
        
        int geninit_nindividuals=apop;
        geninit.construct(geninit_nindividuals, n_param, idnumber, lambda);
                
        ///Determination of random values
        ///Determination of parameters_equally_spaced
        mat samples = doe_random(geninit_nindividuals, n_param, params);
        
        for(int j=0; j<n_param; j++) {
            for(int i=0; i<geninit.size(); i++) {
                geninit.pop[i].p(j) = samples(i,j);
            }
        }
    }
    else if(aleaspace==3) {
        
        mat samples;
        read_gen(apop, samples, n_param);
        int geninit_nindividuals=apop;
        geninit.construct(geninit_nindividuals, n_param, idnumber, lambda);
        
        for(int j=0; j<n_param; j++) {
            for(int i=0; i<geninit.size(); i++) {
                geninit.pop[i].p(j) = samples(i,j);
            }
        }
    }    
}
コード例 #3
0
ファイル: print-gen.c プロジェクト: JiShaobin/LDPC-4Qt
int main
( int argc,
  char **argv
)
{
  char *gen_file;
  int dprint;
  int i, j;

  dprint = 0;
  if (argc>1 && strcmp(argv[1],"-d")==0)
  { dprint = 1;
    argc -= 1;
    argv += 1;
  }

  if (!(gen_file = argv[1]) || argv[2])
  { usage();
  }

  read_gen(gen_file,0,1);

  switch (type)
  {
    case 's': 
    { 
      printf("\nGenerator matrix in %s (sparse representation):\n\n",gen_file);

      printf("Column order (message bits at end):\n");
      for (j = 0; j<N; j++) 
      { if (j%20==0) printf("\n");
        printf(" %3d",cols[j]);
      }
      printf("\n\n");

      printf("Row order:\n");
      for (i = 0; i<M; i++) 
      { if (i%20==0) printf("\n");
        printf(" %3d",rows[i]); 
      }
      printf("\n\n");

      if (dprint)
      { mod2dense *Ld, *Ud;
        Ld = mod2dense_allocate(M,M);
        Ud = mod2dense_allocate(M,N);
        mod2sparse_to_dense(L,Ld);
        mod2sparse_to_dense(U,Ud);
        printf("L:\n\n");
        mod2dense_print(stdout,Ld);
        printf("\n");
        printf("U:\n\n");
        mod2dense_print(stdout,Ud);
        printf("\n");
      }
      else
      { printf("L:\n\n");
        mod2sparse_print(stdout,L);
        printf("\n");
        printf("U:\n\n");
        mod2sparse_print(stdout,U);
        printf("\n");
      }
     
      break;
    }

    case 'd': case 'm':
    {
      if (type=='d')
      { printf("\nGenerator matrix in %s (dense representation):\n\n",gen_file);
      }
      if (type=='m')
      { printf("\nGenerator matrix in %s (mixed representation):\n\n",gen_file);
      }

      printf("Column order (message bits at end):\n");
      for (j = 0; j<N; j++) 
      { if (j%20==0) printf("\n");
        printf(" %3d",cols[j]);
      }
      printf("\n\n");

      printf (type=='d' ? "Inv(A) X B:\n\n" : "Inv(A):\n\n");
      mod2dense_print(stdout,G);
      printf("\n");

      break;
    }

    default: 
    { fprintf(stderr,"Unknown type of generator matrix file\n");
      exit(1);
    }
  }

  return 0;
}