Exemplo n.º 1
0
void Twopdm_container::save_npdms(const int& i, const int& j)
{
#ifndef SERIAL
  boost::mpi::communicator world;
  world.barrier();
#endif
  Timer timer;
  if ( store_full_spin_array_ ) {
    accumulate_npdm();
    save_npdm_binary(i, j);
    save_npdm_text(i, j);
  }
  if ( store_full_spatial_array_ ) {
    if(dmrginp.spinAdapted())
      accumulate_spatial_npdm();
    else
      calculate_spatial_npdm();
    save_spatial_npdm_binary(i, j);
    save_spatial_npdm_text(i, j);
  }

#ifndef SERIAL
  world.barrier();
#endif
  ecpu = timer.elapsedcputime();ewall=timer.elapsedwalltime();
  p3out << "2PDM save full array time " << ewall << " " << ecpu << endl;
}
Exemplo n.º 2
0
void Onepdm_container::save_npdms(const int& i, const int& j)
{
#ifndef SERIAL
  boost::mpi::communicator world;
  world.barrier();
#endif
  Timer timer;
  accumulate_npdm();
  save_npdm_binary(i, j);
  save_npdm_text(i, j);
  accumulate_spatial_npdm();
  save_spatial_npdm_binary(i, j);
  save_spatial_npdm_text(i, j);
#ifndef SERIAL
  world.barrier();
#endif
  std::cout << "1PDM save full array time " << timer.elapsedwalltime() << " " << timer.elapsedcputime() << endl;
}
Exemplo n.º 3
0
void Onepdm_container::save_npdms(const int& i, const int& j, int integralIndex)
{
#ifndef SERIAL
  boost::mpi::communicator world;
  calc.barrier();
#endif
  Timer timer;
  accumulate_npdm();
  save_npdm_binary(i, j);
  save_npdm_text(i, j);
  if(dmrginp.spinAdapted())
    accumulate_spatial_npdm();
  else
    calculate_spatial_npdm();
  save_spatial_npdm_binary(i, j);
  save_spatial_npdm_text(i, j);
#ifndef SERIAL
  calc.barrier();
#endif
  double cputime = timer.elapsedcputime();
  p3out << "1PDM save full array time " << timer.elapsedwalltime() << " " << cputime << endl;
}