Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • wslda wslda
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • wtools
  • wsldawslda
  • Wiki
  • Broyden algorithm

Last edited by Gabriel Wlazłowski May 25, 2021
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Broyden algorithm

Broyden algorithm - general info

Broyden algorithm is implemented according prescription provided in the paper:
A. Baran, A. Bulgac, M. M. Forbes, G. Hagen, W. Nazarewicz, N. Schunck, and M. V. Stoitsov, Broyden’s method in nuclear structure calculations, Phys. Rev. C 78, 014318 (2008), (see here for preprint)

st-wslda codes support two types of updating schemes of densities:

  • linear mixing, according to formulas (3),
  • Broyden mixing, according to prescription given in sec III.B.

Controlling Broyden algorithm

In order to activate the Broyden mixing user must activate following flag in the input file:

broyden                 1        # activate broyden mixing, default=0 (linear mixing)

There are two parameters that control mixing parameter (alpha parameter)

linearmixing            0.5      # mixing parameter (alpha) for linear mixing, default=0.5
broydenmixing           0.75     # mixing parameter (alpha) for Broyden mixing, default=0.75

We separate these two parameters as in general they may be different. The remaining parameters controlling the Broyden algorithm are:

Mbroyden                5       # number of previous iterations used by Broyden, default=5 

startbroyden            5       # iteration number (it) for which Broyden should be activated,
                                # for it<startbroyden algorithm proceeds with linear mixing 
                                # and used linearmixing value for mixing
                                # NOTE: for it in [startbroyden, startbroyden+Mbroyden] the algorithm
                                #       still continue with linear mixing, and it stores only data
                                # Broyden starts to operate for iteration it = startbroyden+Mbroyden+1
                                # and used broydenmixing value for mixing
                                # default=0
stopbroyden             100     # Broyden is deactivated for iteration it=stopbroyden
                                # starting from iteration it = stopbroyden+1 the algorithm again proceeds
                                # with linear mixing and used linearmixing value for mixing
                                # default=999999
# Recommendation: Use  startbroyden and stopbroyden only if Broyden fails to converge. 
#                 According experience of our collaborators, there are cases (physical problems)
#                 where activating Broyden only for some number of iteration provides the best performance 

# For advanced users 
omega0broyden           0.01    # weight omega_0, see eqn. (6) 
omeganbroyden           1.0     # weight omega_n, see eqn. (6) 
omegakbroyden           1.0     # weight omega_k, see eqn. (6) 
# No significant dependence was found between Broyden performance and values of weights. Default values are recommended

Contribution

The Broyden algorithm was implemented by:

  • Wojciech Pudełko, Warsaw University of Technology,
    Implementation of Broyden algorithm (engineer thesis, 2020)
Clone repository
  • API version
  • Automatic interpolations
  • Auxiliary tools
  • Browsing the code
  • Broyden algorithm
  • C and CUDA
  • Campaign of calculations
  • Checking correctness of settings
  • Chemical potentials control
  • Code & Results quality
  • Common failures of static codes
  • Common failures of time dependent codes
  • Computation domain
  • Configuring GPU machine
  • Constraining densities and potentials
View All Pages