ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
run_sim.cpp File Reference
#include <boost/filesystem/fstream.hpp>
#include <string>
#include "mps_evolve/simulation.hpp"
#include "dmrg/sim/symmetry_factory.h"
#include "libpscan/run_sim.hpp"

Go to the source code of this file.

Functions

void run_sim (const boost::filesystem::path &infile, const boost::filesystem::path &outfile, bool write_xml, double time_limit)
 

Function Documentation

void run_sim ( const boost::filesystem::path &  infile,
const boost::filesystem::path &  outfile,
bool  write_xml,
double  time_limit 
)

Definition at line 34 of file run_sim.cpp.

36 {
37  maquis::cout.precision(10);
38 
39  /// Load parameters
40  DmrgParameters parms;
41  {
42  boost::filesystem::ifstream param_file(infile);
43  if (!param_file)
44  throw std::runtime_error(std::string("Could not open parameter file ") + infile.string() +".");
45  alps::Parameters p; p.extract_from_xml(param_file);
46  parms = DmrgParameters(p);
47  }
48 
49  /// Match parameters of ALPS DMRG
50  if (parms.defined("MAXSTATES")) parms.set("max_bond_dimension", int(parms["MAXSTATES"]));
51  if (parms.defined("TRUNCATION_ERROR")) parms.set("truncation_final", double(parms["TRUNCATION_ERROR"]));
52 
53  if (parms.defined("DT")) parms.set("dt", double(parms["DT"]));
54  if (parms.defined("SWEEPS")) parms.set("nsweeps", int(parms["SWEEPS"]));
55  if (parms.defined("timesteps")) parms.set("nsweeps", int(parms["timesteps"]));
56  if (parms.defined("TIMESTEPS")) parms.set("nsweeps", int(parms["TIMESTEPS"]));
57  if (parms.defined("img_timesteps")) parms.set("nsweeps_img", int(parms["img_timesteps"]));
58  if (parms.defined("IMG_TIMESTEPS")) parms.set("nsweeps_img", int(parms["IMG_TIMESTEPS"]));
59 
60  parms.set("chkpfile", (outfile.parent_path() / outfile.stem()).string() + ".chkp");
61  parms.set("resultfile", (outfile.parent_path() / outfile.stem()).string() + ".h5");
62  parms.set("run_seconds", time_limit);
63 
64 
65  /// Start simulation
66  simulation_traits::shared_ptr sim = dmrg::symmetry_factory<simulation_traits>(parms);
67  sim->run(parms, write_xml);
68 }
virtual void run()=0
Definition: sim.h:69
void set(std::string const &key, T const &value)
boost::shared_ptr< simulation_base > shared_ptr
Definition: simulation.hpp:46