Cytnx v0.9.1
Loading...
Searching...
No Matches
Physics.hpp
Go to the documentation of this file.
1#ifndef _Physics_H_
2#define _Physics_H_
3#include "Type.hpp"
4#include "Device.hpp"
5#include "cytnx_error.hpp"
6#include "Tensor.hpp"
7#include "UniTensor.hpp"
8#include <vector>
9#include <initializer_list>
10#include <string>
11namespace cytnx {
12 namespace physics {
14
25 Tensor spin(const cytnx_double &S, const std::string &Comp, const int &device = Device.cpu);
26
28 Tensor spin(const cytnx_double &S, const char &Comp, const int &device = Device.cpu);
30
32
42 Tensor pauli(const std::string &Comp, const int &device = Device.cpu);
43
45 Tensor pauli(const char &Comp, const int &device = Device.cpu);
47
48
49#define kBoltz cytnx_double(1.380649e-23) // J/K
50#define hPlanck cytnx_double(6.62607015e-34) // J-s
51#define hBar cytnx_double(1.05457181e-34) // J-s
52
53 } // namespace physics
54} // namespace cytnx
55
56namespace cytnx{
57 namespace operators{
58
59 UniTensor Sz_shalf(const int &device = Device.cpu, const bool &conserve_qns=false);
60 UniTensor Sp_shalf(const int &device = Device.cpu, const bool &conserve_qns=false, const std::string &aux_dir="r");
61 UniTensor Sn_shalf(const int &device = Device.cpu, const bool &conserve_qns=false, const std::string &aux_dir="r");
62
63
64
65
66 }
67}
68
69
71namespace cytnx {
72 namespace qgates {
73 UniTensor pauli_x(const int &device = Device.cpu);
74 UniTensor pauli_y(const int &device = Device.cpu);
75 UniTensor pauli_z(const int &device = Device.cpu);
76 UniTensor hadamard(const int &device = Device.cpu);
77 UniTensor phase_shift(const cytnx_double &phase, const int &device = Device.cpu);
78 UniTensor swap(const int &device = Device.cpu);
79 UniTensor sqrt_swap(const int &device = Device.cpu);
80 UniTensor toffoli(const int &device = Device.cpu);
81 UniTensor cntl_gate_2q(const UniTensor &gate_1q);
82
83 } // namespace qgate
84
85
86} // namespace cytnx
88
89#endif
an tensor (multi-dimensional array)
Definition Tensor.hpp:345
An Enhanced tensor specifically designed for physical Tensor network simulation.
Definition UniTensor.hpp:2449
UniTensor Sn_shalf(const int &device=Device.cpu, const bool &conserve_qns=false, const std::string &aux_dir="r")
Definition Physics.cpp:185
UniTensor Sp_shalf(const int &device=Device.cpu, const bool &conserve_qns=false, const std::string &aux_dir="r")
Definition Physics.cpp:163
UniTensor Sz_shalf(const int &device=Device.cpu, const bool &conserve_qns=false)
Definition Physics.cpp:151
Tensor pauli(const std::string &Comp, const int &device=Device.cpu)
create Pauli matrix.
Definition Physics.cpp:58
Tensor spin(const cytnx_double &S, const std::string &Comp, const int &device=Device.cpu)
create Spin-S representation matrix.
Definition Physics.cpp:13
UniTensor sqrt_swap(const int &device)
Definition Physics.cpp:115
UniTensor pauli_z(const int &device)
Definition Physics.cpp:92
UniTensor hadamard(const int &device)
Definition Physics.cpp:96
UniTensor cntl_gate_2q(const UniTensor &gate_1q)
Definition Physics.cpp:132
UniTensor pauli_y(const int &device)
Definition Physics.cpp:88
UniTensor phase_shift(const cytnx_double &phase, const int &device)
Definition Physics.cpp:102
UniTensor pauli_x(const int &device)
Definition Physics.cpp:84
UniTensor swap(const int &device)
Definition Physics.cpp:108
UniTensor toffoli(const int &device)
Definition Physics.cpp:124
Definition Accessor.hpp:12
Device_class Device
data on which devices.
Definition Device.cpp:140
double cytnx_double
Definition Type.hpp:43