Menu

#111 Clean up / Redo StateBuilder

0.3
done
nobody
None
nobody
2019-05-29
2017-11-10
Ulf Lorenz
No
What and Why

There are several problems with the StateBuilder class or initial wave function generation in general. On one hand, the StateBuilder class has no real coherent state that has to be kept. This strongly suggests that we want to have either multiple classes or only a set of simple functions.

Also, density operators are not first-class citizens, but instead constructed from wavefunctions. This may make sense, but maybe not.

Acceptance criteria
  • extract the function buildProductWavefunction() into a standalone function or separate object
    remove the parameter normalize if it is unused.
  • extract the function buildDirectProduct() into a standalone function or separate object
  • do something with the transformDensityFromBasis function
  • add functionality: create a unit density
  • add functionality: create a correlated gaussian wave function

  • extracted the two functions
  • removed the transformDensityFromBasis function, this will be superseeded by [#155] soon enough
  • added unit density
  • did not add correlated Gaussian functions; you can already create them now with some overhead, and the use case for building a state from multiple Gaussians is sufficiently unclear

Related

Tickets: #155

Discussion

  • Ulf Lorenz

    Ulf Lorenz - 2019-03-21
    • summary: Some cleanup of StateBuilder --> Clean up / Redo StateBuilder
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,5 +1,5 @@
    -StateBuilder is a fairly complex machinery nowadays, and some of the features are hard to use. Should it be split up, e.g., into a WaveFunctionBuilder and a DensityBuilder?
    +There are several problems with the StateBuilder class or initial wave function generation in general.
    
    -Add coherent functions to allow easily usable complex setups (correlated Gaussians?).
    -
    -Also, it could become a factory, although the construction of initial states is sufficiently common to justify an own package.
    +* StateBuilder itself is a complicated class without a coherent interface. There is no structure
    +* There is no generic functionality to build complex, multidimensional wave functions from one-dimensional wave functions or other multi-dimensional wave functions. Also, density operators are not really first-class citizens, but constructed from wave functions.
    +* Several (multidimensional) use-cases are missing: unit operators, random wave functions, correlated Gaussians
    
    • Milestone: Backlog --> 0.2.5
     
  • Ulf Lorenz

    Ulf Lorenz - 2019-05-01
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,5 +1,15 @@
    -There are several problems with the StateBuilder class or initial wave function generation in general.
    +#####What and Why#####
    
    -* StateBuilder itself is a complicated class without a coherent interface. There is no structure
    -* There is no generic functionality to build complex, multidimensional wave functions from one-dimensional wave functions or other multi-dimensional wave functions. Also, density operators are not really first-class citizens, but constructed from wave functions.
    -* Several (multidimensional) use-cases are missing: unit operators, random wave functions, correlated Gaussians
    +There are several problems with the StateBuilder class or initial wave function generation in general. On one hand, the StateBuilder class has no real coherent state that has to be kept. This strongly suggests that we want to have either multiple classes or only a set of simple functions.
    +
    +Also, density operators are not first-class citizens, but instead constructed from wavefunctions. This may make sense, but maybe not.
    +
    +
    +#####Acceptance criteria#####
    +
    +* extract the function buildProductWavefunction() into a standalone function or separate object
    +    remove the parameter normalize if it is unused.
    +* extract the function buildDirectProduct() into a standalone function or separate object
    +* do something with the transformDensityFromBasis function
    +* add functionality: create a unit density
    +* add functionality: create a correlated gaussian wave function
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2019-05-13
    • status: open --> assigned
    • assigned_to: Ulf Lorenz
     
  • Ulf Lorenz

    Ulf Lorenz - 2019-05-29
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -13,3 +13,11 @@
     * do something with the transformDensityFromBasis function
     * add functionality: create a unit density
     * add functionality: create a correlated gaussian wave function
    +
    +
    +----
    +
    +* extracted the two functions
    +* removed the transformDensityFromBasis function, this will be superseeded by [#155] soon enough
    +* added unit density
    +* did _not_ add correlated Gaussian functions; you can already create them now with some overhead, and the use case for building a state from multiple Gaussians is sufficiently unclear
    
    • status: assigned --> done
    • assigned_to: Ulf Lorenz --> nobody
     

    Related

    Tickets: #155


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.