Menu

#124 Operator cleanups

0.2.4
done
nobody
None
nobody
2019-03-09
2018-04-02
Ulf Lorenz
No

Some things that could/should be done:

  • Would it be possible to get rid of the SchroedingerOperator? Ideally, you would never wrap a primitive explicitly in a SchroedingerOperator, instead there is some implicit type conversion. Then, the complex operators could be named Liouvillian, and there is less confusion on the user's side.
  • Propagators could get a single constructor that takes an OperatorMatrix. If the OperatorMatrix allows implicit conversion from a std::shared_ptr<linearoperator>, one could get rid of the explicit constructor for that type.</linearoperator>

No simple way to get rid of the SchroedingerOperator, and there are sometimes differences between using a LinearOperator and an OperatorMatrix.
Instead, I went for some renamings to make the use of the individual classes clearer. In particular:

  • OperatorPrimitive => Operator
  • LinearOperator => Expression
  • OperatorMatrix => EquationSystem
  • SchroedingerOperator => SchroedingerEquation

Related

Blog: 2019/03/naming-the-components-of-equations

Discussion

  • Ulf Lorenz

    Ulf Lorenz - 2018-12-24
    • Milestone: Backlog --> 0.2.4
     
  • Ulf Lorenz

    Ulf Lorenz - 2019-02-17
    • status: open --> assigned
    • assigned_to: Ulf Lorenz
     
  • Ulf Lorenz

    Ulf Lorenz - 2019-03-09
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -2,3 +2,13 @@
    
     * Would it be possible to get rid of the SchroedingerOperator? Ideally, you would never wrap a primitive explicitly in a SchroedingerOperator, instead there is some implicit type conversion. Then, the complex operators could be named Liouvillian, and there is less confusion on the user's side.
     * Propagators could get a single constructor that takes an OperatorMatrix. If the OperatorMatrix allows implicit conversion from a std::shared_ptr<LinearOperator>, one could get rid of the explicit constructor for that type.
    +
    +----
    +
    +No simple way to get rid of the SchroedingerOperator, and there are sometimes differences between using a LinearOperator and an OperatorMatrix.
    +Instead, I went for some renamings to make the use of the individual classes clearer. In particular:
    +
    +* OperatorPrimitive => Operator
    +* LinearOperator => Expression
    +* OperatorMatrix => EquationSystem
    +* SchroedingerOperator => SchroedingerEquation
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2019-03-09
    • status: assigned --> done
    • assigned_to: Ulf Lorenz --> nobody
     

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.