Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jan 18 08:23
    mfherbst synchronize #558
  • Jan 18 08:23

    mfherbst on atomsbase

    Small fixup (compare)

  • Jan 17 18:24

    mfherbst on gh-pages

    build based on 79058fe (compare)

  • Jan 17 18:00

    mfherbst on gh-pages

    build based on 79058fe (compare)

  • Jan 17 17:58

    mfherbst on v0.4.4

    (compare)

  • Jan 17 17:57
    JuliaTagBot commented #358
  • Jan 17 17:39

    mfherbst on master

    Bump version: 0.4.3 → 0.4.4 (compare)

  • Jan 17 15:58

    mfherbst on gh-pages

    build based on d271dc2 (compare)

  • Jan 17 15:40
    mfherbst commented #557
  • Jan 17 15:39

    mfherbst on master

    Implement Marzari-Vanderbilt-De… (compare)

  • Jan 17 15:39
    mfherbst closed #557
  • Jan 17 15:39
    mfherbst auto_merge_disabled #557
  • Jan 17 14:48

    mfherbst on master

    new example using AD to compute… (compare)

  • Jan 17 14:48
    mfherbst closed #561
  • Jan 17 14:36
    mfherbst auto_merge_enabled #557
  • Jan 17 14:36
    mfherbst synchronize #557
  • Jan 17 14:36
    mfherbst commented #557
  • Jan 17 14:30
    azadoks synchronize #557
  • Jan 17 14:29
    azadoks synchronize #557
  • Jan 17 14:17
    mfherbst commented #557
Louis Ponet
@louisponet
yes indeed
Michael F. Herbst
@mfherbst
so ideally the lowest julia layer before calling into c completely abstracts that and as a result does not care whether it is an Int32 or an Int64
Louis Ponet
@louisponet
so to me it feels like the real julian way would be something like having one lowest level function that only allows in the Int32 arrays,
and a same named function for other types that converts first then calls that lowest one
Michael F. Herbst
@mfherbst
yes or you just have one function without types annotated and explicitly convert to the c-type before doing the ccall
if the conversion fails it will bail out either way
Louis Ponet
@louisponet
while the pythonesk way would take in anything and try to convert to the right stuff inside the function, do you know what I mean ? Often in python code I see a lot of if/else figuring out what people called the function with and then converting to what you want to use inside it
Michael F. Herbst
@mfherbst
yes
you mean the if isinstance ... stuff
Louis Ponet
@louisponet
exactly
Michael F. Herbst
@mfherbst
yes exactly that's what Julia tries to avoid by being generic in the interface and by multiple dispatch where you need to be specific
well you can really replace tries by succeeds :smile:
Louis Ponet
@louisponet
hehe yes
One question with respect to the tests
if I would get the wrong balanced reciprocal mesh, would the tests fail?
Michael F. Herbst
@mfherbst
what do you mean by "balanced reciprocal mesh" the monkhorst-pack mesh?
Louis Ponet
@louisponet
yes
inside bzmesh_ir_wedge
Michael F. Herbst
@mfherbst
hopefully
I mean this whole symmetry business is a bit tricky and we've had edge cases before, which were not covered
we test that you get the same results with and without symmetry for a couple of cases
so if you did something major wrong in the symmetry deduction and in getting the irreducible mesh that we would detect that, yes
but subtle things could remain
Louis Ponet
@louisponet
okay, because I remember before I did the right thing, it would not fail but give a lot of the info messages that some reducable kpoints could not be generated from spglib
Michael F. Herbst
@mfherbst
yes indeed
we explicitly check spglib gives us the correct symmetries
Louis Ponet
@louisponet
I see
Michael F. Herbst
@mfherbst
and simply discard the ones which are wrong
so in this case probably many woud be discarded causing the warning
Louis Ponet
@louisponet
right
Michael F. Herbst
@mfherbst
that's a bit of a safe guard because spglib actually sometimes returns garbage
Louis Ponet
@louisponet
oh really
haha that's so bad
Michael F. Herbst
@mfherbst
one should be fair ... only if you give it something unusal
Louis Ponet
@louisponet
ah I see
Michael F. Herbst
@mfherbst
but the point of dftk is to be able to play with unusal stuff
so we want our code not to bail out in this case
hence the safeguard
Louis Ponet
@louisponet
I see
Michael F. Herbst
@mfherbst
by the way ... one example: spglib/spglib#101
so basically if you hit spglib with a non-standardised cell anything could happen
Louis Ponet
@louisponet
I see
that's where the get_standardized_unit_cell function comes into play I guess
Michael F. Herbst
@mfherbst
well kind of. It applies some standardisation, which hopefully gives you a nicer lattice to digest
but the problem is that it changes the lattice
so that might not always what you want
because it actually changes your system
Louis Ponet
@louisponet
Yea I remember running into that stuff when I was trying to cut out pymatgen for the generation of high symmetry kpoint paths in my code
I mean the whole "standardized" cell business
Michael F. Herbst
@mfherbst
yes