Example #1
0
int main(int argc, const char * argv[])
{
    /** %%%%%%%%%%%%%%%%%%%% INITIALIZING %%%%%%%%%%%%%%%%%%%% */
    const char *dis=argv[argc-1];
    //string c="dis_in.txt"; 
    string line;
    int dum=0;
    VectorXd a;
    ifstream input ("dis_in.txt");
    if (input.is_open())
    {
        while (getline(input,line))
        {
            if (line[0]=='!'){dum=dum+1;}
            else
            {
                if (dum==1)
                {
                    size=atoi(line.c_str());
                    occfile=occfile.append(line.c_str());
                    rndfile=rndfile.append(line.c_str());
                    outfile=outfile.append(line.c_str());
                    outfile=outfile.append("_");                    
                }
                else if (dum==2)
                {
                    if (line.compare("Long")==0)
			{
			    range=size*2.0;
			    outfile=outfile.append("LR");
			    outfile=outfile.append("_"); 
			}
                    else 
			{
			    range=atoi(line.c_str());
			    outfile=outfile.append(line.c_str());
			    outfile=outfile.append("NN_"); 
			}
                }
                else if (dum==3){Gamma=atof(line.c_str());}
                else if (dum==4){zhop=atoi(line.c_str());}
                else if (dum==5)
                {
                    pvac=atoi(line.c_str());
                    occfile=occfile.append(line.c_str());
                    rndfile=rndfile.append(line.c_str());
                    outfile=outfile.append(line.c_str());
                    outfile=outfile.append("_");
                }

/*                else if (dum==6)
                {
                    cout<<'\t'<<dum<<endl;
                    occfile=occfile.append(line.c_str());
                    rndfile=rndfile.append(line.c_str());
                }
*/
            }
        }
        input.close();
    }
    else {cout<<"Unable to open file: "<<"dis_in.txt"<< " \n";};
    
    occfile=occfile.append(dis);
    rndfile=rndfile.append(dis);
    outfile=outfile.append(dis);
    
    occfile=occfile.append(".txt");
    rndfile=rndfile.append(".txt");
    
    cout<<"lattice size = "<<size<<endl;
    cout<<"range = "<<range<<endl;
    cout<<"decay = "<<Gamma<<endl;
    cout<<"symmetrical? "<<zhop<<endl;
    cout<<"percent of vacancy: "<<pvac<<endl;
    cout<<"occupation file: "<<occfile<<endl;
    cout<<"on-site energy file: "<<rndfile<<endl;
    /** %%%%%%%%%%%%%%%%%%%% END OF INITIALIZATION %%%%%%%%%%%%%%%%%%%% */

    Hamiltonian C;
    double* H;
    C.Hami(size, occfile, rndfile, range, zhop, Gamma, H, occnum);

//Lapack
    int numEigvals;
    double* eigvals;
    int presInt = 16;
    eigvals = new double [occnum];
            
    dsyevrEigvalsInterface(H, occnum, &numEigvals, eigvals);
       
    cout << "NumEvals: " << numEigvals << endl;
    cout << "Eigenvalues: " << endl;
    cout << setprecision(presInt);
    ofstream myfile2;
    myfile2.open((outfile+"_Eval.txt").c_str());
    myfile2 << setprecision(presInt);
    for (int i=0; i<numEigvals; i++) {
        cout << eigvals[i] << endl;
	myfile2<< eigvals[i] <<endl;
    } 
    myfile2.close();    
    delete [] eigvals;
    delete [] H;

    
}