23 #ifndef COM_DAFER45_TBTK_HOPPING_AMPLITUDE 24 #define COM_DAFER45_TBTK_HOPPING_AMPLITUDE 30 #include <initializer_list> 91 std::complex<double> amplitude,
131 const std::string &serialization,
161 std::tuple<HoppingAmplitude, HoppingAmplitude>
operator+(
210 std::ostream &stream,
232 std::complex<double> amplitude;
247 if(amplitudeCallback){
248 return amplitudeCallback->getHoppingAmplitude(
273 if(amplitudeCallback ==
nullptr)
281 if(amplitudeCallback !=
nullptr){
282 return *amplitudeCallback;
286 "HoppingAmpliude::getAmplitudeCallback()",
287 "Tried to access AmplitudeCallback from a" 288 <<
" HoppingAmplitude without an AmplitudeCallback.",
295 std::stringstream stream;
296 stream <<
"HoppingAmplitude:\n";
297 if(amplitudeCallback ==
nullptr){
298 stream <<
"\tIs callback dependent: False\n";
299 stream <<
"\tAmplitude: " << amplitude <<
"\n";
302 stream <<
"\tIs callback dependent: True\n";
303 stream <<
"\tAmplitude: " 304 << amplitudeCallback->getHoppingAmplitude(
309 stream <<
"\tTo-Index: " << toIndex <<
"\n";
310 stream <<
"\tFrom-Index: " << fromIndex;
316 std::ostream &stream,
319 stream << hoppingAmplitude.
toString();
328 + fromIndex.getSizeInBytes()
329 + toIndex.getSizeInBytes();
bool getIsCallbackDependent() const
Definition: HoppingAmplitude.h:272
const AmplitudeCallback & getAmplitudeCallback() const
Definition: HoppingAmplitude.h:280
const Index & getFromIndex() const
Definition: HoppingAmplitude.h:268
std::tuple< HoppingAmplitude, HoppingAmplitude > operator+(const HermitianConjugate hc)
Definition: HoppingAmplitude.h:258
virtual std::complex< double > getHoppingAmplitude(const Index &to, const Index &from) const =0
const Index & getToIndex() const
Definition: HoppingAmplitude.h:264
Definition: HoppingAmplitude.h:57
std::complex< double > getAmplitude() const
Definition: HoppingAmplitude.h:246
HoppingAmplitude getHermitianConjugate() const
std::string serialize(Serializable::Mode mode) const
friend std::ostream & operator<<(std::ostream &stream, const HoppingAmplitude &hoppingAmplitude)
Definition: HoppingAmplitude.h:315
std::string toString() const
Definition: HoppingAmplitude.h:294
Hopping amplitude from state 'from' to state 'to'.
Definition: HoppingAmplitude.h:53
Physical index.
Definition: Index.h:44
unsigned int getSizeInBytes() const
Definition: HoppingAmplitude.h:324
HermitianConjugate
Enum used to indicate the Hermitian conjugate.
Definition: HoppingAmplitude.h:37
Mode
Definition: Serializable.h:47
Abstract base class for serializable objects.