Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 06:48

    mfherbst on potmix-slim

    And back (compare)

  • 05:45

    mfherbst on potmix-slim

    Sign (compare)

  • May 12 21:59

    mfherbst on potmix-slim

    Only 3 tries (compare)

  • May 12 21:02

    mfherbst on potmix-slim

    Tweak (compare)

  • May 12 17:42

    mfherbst on potmix-slim

    Choose 1.0 (compare)

  • May 12 13:04

    mfherbst on potmix-slim

    Greater equal Export DIIS off (compare)

  • May 12 11:23

    mfherbst on master

    Update publication list (compare)

  • May 12 07:57

    gkemlin on estimators

    save (compare)

  • May 11 22:25

    mfherbst on gh-pages

    build based on 85384a3 (compare)

  • May 11 22:06

    mfherbst on master

    Update CITATION.bib (compare)

  • May 10 13:58

    gkemlin on analytic

    Remove remaining from_fourier (… Nowarn (#430) Merge branch 'master' into anal… and 1 more (compare)

  • May 09 13:23
    antoine-levitt opened #431
  • May 07 09:38

    gkemlin on estimators

    Refactor damping out of mixing … Remove remaining from_fourier (… Nowarn (#430) and 2 more (compare)

  • May 06 11:24

    gkemlin on analytic

    double float bug testing analytics (compare)

  • May 04 16:24
    umbriquse synchronize #399
  • May 04 10:38

    mfherbst on potmix-slim

    comments Keep DIIS going for longer DIIS test mode and 1 more (compare)

  • Apr 30 16:04

    mfherbst on nowarn

    (compare)

  • Apr 30 16:04

    mfherbst on master

    Nowarn (#430) (compare)

  • Apr 30 16:04
    mfherbst closed #430
  • Apr 30 16:04
    mfherbst closed #429
Louis Ponet
@louisponet
oh I see, that I didn't do before
Antoine Levitt
@antoine-levitt
well to be fair spglib's error handling is "oh that didn't work"
Louis Ponet
@louisponet
the error stuff
Antoine Levitt
@antoine-levitt
so not that useful to have
Michael F. Herbst
@mfherbst
by the way: I thought about relocating libsymspg to JuliaMolSim as well. unkcpz said he was pretty busy at the moment, so he was happy to have me take over maintaining Libxc. So if you want to get involved, maybe he would be happy to transfer libsymspg.jl as well?
Yes the error messages are not that helpful, but I fear you might have to properly set / reset the error codes for stuff to work smoothly ... the great low-level world of C ...
Louis Ponet
@louisponet
my god, for the life of me I cannot get spg_get_symmetry to give me the correct symmetries XD
Antoine Levitt
@antoine-levitt
yeah, join the club
Louis Ponet
@louisponet
I'm trying the Si unit cell, gives me 16 symops
Antoine Levitt
@antoine-levitt
I've spent a lot of time on spglib stuff...
Louis Ponet
@louisponet
rotations seem fine, but translations are all 0's
Antoine Levitt
@antoine-levitt
that's good no?
Louis Ponet
@louisponet
but aside from that it's supposed to give me 48
Antoine Levitt
@antoine-levitt
hm yeah DFTK gives me 48 with some translations in there
Louis Ponet
@louisponet
right, and from the 16, the third one only works with a partial translation
what the hell is going on... I also cross-checked with QE and it's giving me also 48
Antoine Levitt
@antoine-levitt
usual suspect is row-major vs column-major but that shouldn't matter for silicon
are your atomic coordinates properly in relative coordinates?
Louis Ponet
@louisponet
yea, one particularly disturbing thing is that if I put in a 2x3 position matrix, it's the same result as a 3x2 position matrix...
yea [-0.125 -0.125 -0.125; 0.125 0.125 0.125]
Antoine Levitt
@antoine-levitt
try with just one atom
well then it might be a column vs row thing no?
Louis Ponet
@louisponet
I tried both and nothing helps :p
pff I'll struggle on I guess
Antoine Levitt
@antoine-levitt
even with one atom at 0 it doesn't work properly?
Louis Ponet
@louisponet
then I get 48
if I put the atoms at 0 and 0.5, I get 96
with nonzero translations, weird
Louis Ponet
@louisponet
I'm dumb, transposes don't do anything to the memory layout unless collected.... seems to work now!
Michael F. Herbst
@mfherbst
By the way: Be careful about the ordering. spglib uses a different convention for the ordering of the lattice vectors and cell objects in C++ and python, see https://spglib.github.io/spglib/python-spglib.html#crystal-structure-cell
Louis Ponet
@louisponet
yea, column vs row right? In DFTK I think it's also column?
Antoine Levitt
@antoine-levitt
Yes like in Julia
Louis Ponet
@louisponet
I think I've got spglib work, except for the error messages part
Antoine Levitt
@antoine-levitt
Awesome! Error handling for spglib is not so important...
Michael F. Herbst
@mfherbst
Yes thanks for the PR! Awesome work. I made a few review comments ... I hope I'm not being too picky on you!
Louis Ponet
@louisponet
I've fixed them, running tests now!
There was one thing I was wondering about, in general I always tend to add types to the arguments in my code (didn't do it now because it seems in DFTK in general that's not done), because it kind of helps me to understand what a function expects me to throw in. Is this a deliberate choice not to do that in DFTK?
Michael F. Herbst
@mfherbst
yes it is. The less types you put the more flexible is your interface
Louis Ponet
@louisponet
yea, I agree on that, but wouldn't it make sense to the add the widest type allowed rather than basically ::Any?
Michael F. Herbst
@mfherbst
so if you (or someone else) implements an interface which deliberately or by accident resembles let's say an Array interface or a matrix or something like that that the code will just work
well but doing nothing is equivalent to ::Any
Ah sorry ... misunderstood
well no because the point is that you want to decouple the brain of the developer as much as possible from the brain of the user
Louis Ponet
@louisponet
this is for example one of the issues I have very often working with python code, I look at a function and it's arguments, and I have no clue what it expects of me
then I need to go through the function body to understand what it's doing
Michael F. Herbst
@mfherbst
just because you think that should be an AbstractArray does not mean that I as the user intend to use it with an AbstractArray. But if the code still works with my user defined type than it's really annoying if the type annotation prevents it
well ideally the function and argument name makes it clear
or the documentation
but in DFTK we also follow the philosophy that our code should be an open book
so we actually expect and encourage people to read the code in order to understand what is going on