Closed HugoStrand closed 1 year ago
Hi Hugo, I had replied to your post via email a couple of days ago, but apparently the reply got lost somewhere... So here it is, if it still useful:
I think gf_mesh
The two constructors
gf_mesh(bravaislattice const& bl, matrix
gf_mesh(brillouinzone const& bz, matrix
are "mirrors" of each other. In both cases, the periodization matrix holds the coordinates of the vectors describing the periodic boundary conditions in units of the "unit vectors" of the mesh, be it in real or reciprocal space.
In real space, the meaning of the periodization_matrix is clear: For instance, if you want to describe a 10x10x10 cubic lattice with "usual" PBC (collinear PBC vectors), the bravais_lattice bl has unit vectors of coordinates (1,0,0), (0,1,0), (0,0,1), and the periodization matrix is the array([[10,0,0],[0,10,0],[0,0,10]]).
In reciprocal space: the corresponding gf_mesh
The philosophy behind these classes can be found e.g in doi:10.3929/ethz-a-010657714, pp 23 sq. I can also give you more details directly.
As for the FT in a general Betts cluster, it is not as straightforward as for the particular cases one usually looks at (collinear PBC). In the collinear-PBC case, the FFTW as currently implemented already works. The subtleties of the general case are described p26 of the above ref., and are not yet implemented. I also have more details if needed.
Does it answer your question?
Thomas
You can now use the functions make_adjoint_mesh(..)
in both Python and C++ to achieve this goal.
Dear All,
I am trying to use Fourier transform to go back and forth between momentum and real space representations of lattice Green's functions. However, I have not found a generic way of making 'gf_meshe's that in one space that is directly compatible with a given Green's function in the other space.
I think i would make sense to have
gf_mesh<...>
constructors for both types taking the other type.Would this be possible to do and make sense?
Best, Hugo