Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jun 22 06:18
    mfherbst synchronize #450
  • Jun 22 06:18

    mfherbst on potmix-slim

    Fix (compare)

  • Jun 21 21:37
    umbriquse commented #373
  • Jun 21 11:24
    mfherbst synchronize #450
  • Jun 21 11:24

    mfherbst on potmix-slim

    Broadcast successful (compare)

  • Jun 21 11:11
    antoine-levitt commented #443
  • Jun 21 10:41
    niklasschmitz commented #443
  • Jun 21 07:48
    louisponet commented #434
  • Jun 21 07:02
    mfherbst synchronize #450
  • Jun 21 07:02

    mfherbst on potmix-slim

    Introduce explicit broadcasts (compare)

  • Jun 21 06:32
    mfherbst synchronize #450
  • Jun 21 06:32

    mfherbst on potmix-slim

    potential mixing Suggestion Mixing and 18 more (compare)

  • Jun 21 05:38

    mfherbst on gh-pages

    build based on 0476563 (compare)

  • Jun 21 05:22

    mfherbst on gh-pages

    build based on 0476563 (compare)

  • Jun 21 05:21

    mfherbst on v0.3.3

    (compare)

  • Jun 21 05:21
    JuliaTagBot commented #358
  • Jun 21 05:08

    mfherbst on master

    Bump version: 0.3.2 → 0.3.3 (compare)

  • Jun 21 05:04
    mfherbst converted_to_draft #455
  • Jun 20 20:21

    mfherbst on gh-pages

    build based on a8c42c3 (compare)

  • Jun 20 20:03

    mfherbst on quickfix

    (compare)

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
also we follow conventions in the argument names (or we try to)
so that it is clear just from the argument name what sort of thing is expected
Louis Ponet
@louisponet
on the first point I'd say that then the user probably should be subtyping AbstractArray anyway
Michael F. Herbst
@mfherbst
not neccessarily
Louis Ponet
@louisponet
hmm yea I mean I can see both sides
Michael F. Herbst
@mfherbst
in my opinion what makes julia more flexible than C++ or python is exactly that the interfaces are not set in stone
rather they are conventions
and if I just want to quickly try something quick and dirty
I do not want to spend 30min to look up and satisfy the interface