24 #ifndef COM_DAFER45_TBTK_PARALLELEPIPED_ARRAY_STATE
25 #define COM_DAFER45_TBTK_PARALLELEPIPED_ARRAY_STATE
27 #include "TBTK/ArrayState.h"
28 #include "TBTK/Field.h"
29 #include "TBTK/ParallelepipedCell.h"
33 class ParallelepipedArrayState :
public ArrayState,
public Field<std::complex<double>, double>{
36 ParallelepipedArrayState(
37 const std::vector<std::vector<double>> &basisVectors,
38 std::initializer_list<unsigned int> numMeshPoints
42 virtual ~ParallelepipedArrayState();
45 virtual ParallelepipedArrayState* clone()
const;
48 virtual std::complex<double> getOverlap(
const AbstractState &bra)
const;
51 virtual std::complex<double> getMatrixElement(
52 const AbstractState &bra,
53 const AbstractOperator &o = DefaultOperator()
58 std::complex<double> amplitude,
59 std::initializer_list<double> coordinate
63 const std::complex<double>& getAmplitude(
64 std::initializer_list<double> coordinate
68 const std::complex<double>& getAmplitude(
69 const std::vector<double> &coordinate
73 virtual std::complex<double> operator()(std::initializer_list<double> argument)
const;
76 virtual const std::vector<double>& getCoordinates()
const;
79 virtual double getExtent()
const;
83 ParallelepipedCell parallelepiped;