Esempio n. 1
0
/* menu */
void cmpdir (void) {
	register struct file *f, *of;
	register dir *d, *od;
	struct file *end, *oend;
	int cmp;

	d = left;
	od = right;
	end = d->d.cat + d->d.num;
	oend = od->d.cat + od->d.num;
	for (of=od->d.cat; of<oend; ++of)
		if ((of->mode & S_IFMT) == (unsigned) S_IFREG)
			of->tag = 1;
	for (f=d->d.cat; f<end; ++f)
		if ((f->mode & S_IFMT) == (unsigned) S_IFREG)
			f->tag = 1;
	for (f=d->d.cat, of=od->d.cat; of<oend; ++of) {
		while ((cmp = compfile (f, of)) < 0)
			if (++f >= end)
				goto breakloop;
		if (! of->tag || ! f->tag)
			continue;
		if (cmp || f->size != of->size)
			continue;
		if (cmpfil (d->d.cwd, f->name, od->d.cwd, of->name))
			f->tag = of->tag = 0;
	}
breakloop:
	counttag (d);
	counttag (od);
}
Esempio n. 2
0
int Readparams::read(int argc, char *argv[]){
    namespace po = boost::program_options;
    po::options_description desc("Options");
    desc.add_options()
        ("infile1", po::value<std::string>()->required(),"input file 1")
        ("infile2", po::value<std::string>(),"input file 2")
        ("o,o", po::value<std::string>()->default_value("save.hdf5"),"output file")
        ("n,n", po::value<int>(&nPoints)->default_value(16384),"no. of integration points")
        ("i,i", po::value<std::string>()->default_value("init.hdf5"),"File with initial positions")
        ("N,N", po::value<int>(&Npart), "no. of particles to integrate")
        ("e,e", po::value<double>( &endTime)->default_value(5e18), "End time of integration in s")
        ("Firstpass,F", po::value<bool> () -> default_value(false), "First or second pass")
        //("dt,dt", po::value<double>(& dt) -> default_value(3e13), "Time Step")
        ("verbose,v", po::value<bool> (& verbose) -> default_value(false), "Verbosity")
        ("test,", po::value<bool> (& test) -> default_value(false), "Write test potentials")
        ("tol,", po::value<double>(& tol) -> default_value(1e-12), "Relative tolerance for integration");
    po::positional_options_description positionalOptions;
    positionalOptions.add("infile1",1);
    positionalOptions.add("infile2",1);

    po::variables_map vm;
    po::store(po::command_line_parser(argc,argv).options(desc).positional(positionalOptions).run(),vm);
    po::notify(vm);

    infilename1=strdup(vm["infile1"].as<std::string>().c_str());
    initfilename=strdup(vm["i"].as<std::string>().c_str());
    outfilename=strdup(vm["o"].as<std::string>().c_str());
    saveint = nPoints / NumSavepoints;

    /* Print some info */
    std::cout << "Output file is: " << vm["o"].as<std::string>() << "\n";
    std::cout << "No. of time points/ save points = " << nPoints <<","<< NumSavepoints <<"\n";
    std::cout << "Save Interval = " << saveint << "\n";
    std::cout << "Rtol = " << tol << "\n";
    std::cout << "NLIM,LLIM,NDIM=" << NLIM <<","<< LLIM << "," << NDIM << "\n";
    std::cout << "G="<< GRAVITY << "\n" << "\n";


    if (vm.count("infile2")){
        std::cout << "2 coefficient files given, 2 component model assumed\n";
        NumComponents=2;
        twocomp=true;
        infilename2=strdup(vm["infile2"].as<std::string>().c_str());
    }

    firstpass=vm["Firstpass"].as<bool>();

    std::ofstream compfile("components.param");
    if (compfile.is_open()){
        if (vm.count("infile2"))
            compfile << "2";
        else
            compfile << "1";
        compfile.close();
    }

    return 0;
}