Commit c909569c authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Fixes for QuaSiMo unit tests



Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent 18b0636b
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -30,8 +30,7 @@ int main(int argc, char **argv) {
      "(-0.120200490713,-0)  0^ 1^ 0 1 + (-0.120200490713,-0)  1^ 0^ 1 0 + "
      "(0.7080240981,0)");

  FermionOperator H_vqe;
  H_vqe.fromString(str);
  Operator H_vqe("fermion", str);
  auto problemModel = QuaSiMo::ModelFactory::createModel(&H_vqe);
  auto optimizer = createOptimizer("nlopt", {{"nlopt-optimizer", "l-bfgs"}});
  const int nElectrons = 2;
+2 −2
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ ModelFactory::createModel(ModelType type, const HeterogeneousMap &params) {
        qcor::error("Unknown observable type: " + observable_type);
      }

      auto observable = new qcor::Operator;
      auto observable = new qcor::Operator("pauli", "0.0");
      if (observable_type == "average_magnetization") {
        for (int i = 0; i < hs_model->num_spins; ++i) {
          (*observable) += ((1.0 / hs_model->num_spins) * Z(i));
@@ -96,7 +96,7 @@ ModelFactory::createModel(ModelType type, const HeterogeneousMap &params) {
    assert(model_observable);
    model.observable = model_observable;
    QuaSiMo::TdObservable H = [&](double t) {
      qcor::Operator tdOp;
      qcor::Operator tdOp("pauli", "0.0");
      for (int i = 0; i < hs_model->num_spins - 1; ++i) {
        if (hs_model->Jx != 0.0) {
          tdOp += ((hs_model->Jx / hs_model->H_BAR) * (X(i) * X(i + 1)));
+6 −4
Original line number Diff line number Diff line
@@ -29,10 +29,12 @@ AdaptVqeWorkflow::execute(const QuantumSimulationModel &model) {
  
  // Some extra adapt params comming from the model.
  auto accelerator = xacc::internal_compiler::get_qpu();
  xacc::HeterogeneousMap extra_params{{"observable", xacc::as_shared_ptr(model.observable)},
  xacc::HeterogeneousMap extra_params{
      {"observable", std::dynamic_pointer_cast<xacc::Observable>(
                         model.observable->get_as_opaque())},
      {"sub-algorithm", "vqe"},
      {"accelerator", accelerator},
                                      {"optimizer", optimizer}};
      {"optimizer", (*optimizer)->xacc_opt}};

  // If the model contains an ansatz:
  if (model.user_defined_ansatz) {