Second derivative of the Energy - Format wannierberri output #306
Replies: 3 comments
-
|
dear Jorge @cardenas97 your definition of wannier-berri/wannierberri/formula/covariant.py Lines 68 to 74 in 3ee1fb0 So I am not sure why you need another definition. You are right, you may define your tabulator the way you did, or even without defining a new class just create an object in your script like mobility_tabulator = wannierberri.calculators.tabulate.Tabulator(wannierberri.formula.covariant.InvMass)Further you can use this tabulator in a usual way, following tutorial and packing all tabulators into the TabulatorAll object. The internal units of wannierberri are based on eV and Angstroms, therefore, unless explicit factors are used, the units of mobility will be eV*Ang^2 In general there is no need to define new calculators/tabulators/formulae inside the wannierberri files, if they are for personal use. Just work with the regular version, and define them in your script. Only when you want to share them with community, you may add the, inside the code and make a PR. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for your message. I implemented it differently since I was having difficulty understanding how to use the formulas from the tabulator. I'll proceed in this manner next time. Regarding my other question: Is it possible for WannierBerri to print the output in a format suitable for Matlab or Python, such as (kx, ky, kz, mobility/energy/berry curvature/etc)? This would allow me to implement additional features, like high-symmetry points or other options, which are currently not possible in FermiSurfer. |
Beta Was this translation helpful? Give feedback.
-
As demonstrated in the tutorial you may get all the tabulated data as a numpy array, smth like tabulators = { "Energy": wberri.calculators.tabulate.Energy(),
"mobility" : mobility_tabulator }
tab_all_grid = wberri.calculators.TabulatorAll( tabulators, mode = "grid" )
result=wberri.run(system, grid=grid, calculators = {"tabulate" : tab_all_grid} ...)
grid_result = result.results["tabulate"]
E = grid_result.get_data(quantity='Energy', iband=(10,11) )
mob = grid_result.get_data(quantity='mobility', iband=(10,11), component="xx")And then you may write it to a format you like. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I am currently attempting to project mobility onto the Fermi surface. My idea is to obtain the second derivative of the energy with WannierBerri, but I have not been successful thus far. Upon inspecting the branch, it seems that it is already implemented with the formula 'InvMass,' if I am not mistaken.
I've implemented it into the file "tabulate.py" as follows:
class mobility(Tabulator):
"Using the inverse mass function from covariant.py"
def init(self, **kwargs):
super().init(frml.mob, **kwargs)
class mob(Matrix_GenDer_ln):
r""" :math:
\overline{V}^{b:d}"""def init(self, data_K):
super().init(data_K.covariant('Ham', commader=1), data_K.covariant('Ham', commader=2), data_K.Dcov)
self.transformTR = transform_ident
self.transformInv = transform_ident
However, I am not sure if my approximation is correct. Also, I would like to know the units.
Furthermore, is there any way to print the outputs (as for FermiSurfer) in other formats, such as FPLO, Matlab, among others?
Thank you in advance.
Beta Was this translation helpful? Give feedback.
All reactions