cpart.h 1.81 KB
Newer Older
jclamber's avatar
jclamber committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
// ============================================================================
// Copyright Jean-Charles LAMBERT - 2007-2012                                       
// e-mail:   Jean-Charles.Lambert@oamp.fr                                      
// address:  Dynamique des galaxies                                            
//           Laboratoire d'Astrophysique de Marseille                          
//           Pole de l'Etoile, site de Chateau-Gombert                         
//           38, rue Frederic Joliot-Curie                                     
//           13388 Marseille cedex 13 France                                   
//           CNRS U.M.R 7326                                                   
// ============================================================================

/* 
	@author Jean-Charles Lambert <Jean-Charles.Lambert@oamp.fr>
 */

#ifndef CPART_H
#define CPART_H

#include <string>
#include <assert.h>
#include <fstream>
#include <iostream>
#include <vector>
#include "cfortio.h"
#include "snapshotramses.h"

namespace uns {
class CParticles;
}

namespace ramses {

class CPart {
public:
  CPart(const std::string,const bool _v=true);
  ~CPart();
  void setBoundary(float x[6]) {
    xmin=x[0];
    xmax=x[1];
    ymin=x[2];
    ymax=x[3];
    zmin=x[4];
    zmax=x[5];
    
  }
  bool isValid();
  int loadData(uns::CParticles * particles,
               const unsigned int req_bits, const unsigned int comp_bits);
  int getNbody(int * dm, int * stars)    { 
    *dm    = ndm_box;
    *stars = nstar_box; 
    return nselect;
  }
    
private:
  bool verbose,valid;
  std::string infile,indir;
  int nselect;
  int npart,nstar,ncpu,ndim,nbody,ndm;
  int ndm_box, nstar_box;
  std::string s_run_index;

  float xmin,xmax,ymin,ymax,zmin,zmax;

  CFortIO part;
  int readHeader();
};
} // namespace ramses
#endif