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
  • Convergence control

Convergence control · Changes

Page history
Update Convergence control authored Dec 14, 2020 by Gabriel Wlazłowski's avatar Gabriel Wlazłowski
Hide whitespace changes
Inline Side-by-side
Convergence-control.md
View page @ 2bf59ffa
......@@ -39,10 +39,30 @@ E_pairext: NEW= 0 OLD= 0 DIFF= 0 CONVS
```
# Number of iterations
TODO
The algorithm iterates until one of the following criteria is met:
1. convergence is achieved (see the section above);
2. number of iteration exceeded maximal allowed number of iteration specified in *input* file
```bash
maxiters 200 # maximum number of iterations, default=10000
```
# Imposing constraints to speed up convergence
TODO
Providing additional information about properties of the expected solution (based on physical arguments) may speed-up converging significantly.
```bash
spinsymmetry 1 # set to 1 if you want to impose Na=Nb, default: 0
nocurrents 1 # set to 1 if you want to impose ja=jb=0
# (solution has no currents), default: 0
```
# Mixing types
TODO
\ No newline at end of file
The self-consistent algorithm tracks the behavior of solutions as a function if the iteration number and utilizes this information to create a new prediction for the solution. In the samples scheme (called *linear mixing*) this process is realized via the formula:
```c
for(ixyz = 0; ixyz < SOLDIM; ixyz++)
h_solution[ixyz] = md.linearmixing * h_solution[ixyz] + (1.0-md.linearmixing) * h_solution_old[ixyz];
```
Here there is subtle issue: what should be treated as the solution vector: [densities of potentials](Physical quantities)? In principle, this should not matter, but in practice, it turns out that converges properties depend on this choice. For this reason W-SLDA toolkit provided a tag in the *input* file that can be used to select meaning of the *solution* vector:
```bash
mixingtype p # 'd' - mix densities, 'p' - mix potentials (default)
```
Our tests show that typically the algorithm converges faster when *potentials* are used for the mixing procedure. However, we found (rare) cases where mixing of *densities* provides better efficiency.
\ No newline at end of file
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