Loading examples/quasimo/AdaptVqeWorkflow.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -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; Loading lib/quasimo/base/qcor_qsim.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ ModelFactory::createModel(ModelType type, const HeterogeneousMap ¶ms) { 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)); Loading @@ -96,7 +96,7 @@ ModelFactory::createModel(ModelType type, const HeterogeneousMap ¶ms) { 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))); Loading lib/quasimo/impls/workflow/adapt.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading
examples/quasimo/AdaptVqeWorkflow.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -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; Loading
lib/quasimo/base/qcor_qsim.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ ModelFactory::createModel(ModelType type, const HeterogeneousMap ¶ms) { 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)); Loading @@ -96,7 +96,7 @@ ModelFactory::createModel(ModelType type, const HeterogeneousMap ¶ms) { 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))); Loading
lib/quasimo/impls/workflow/adapt.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading