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
  • Automatic interpolations

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

Automatic interpolations

VERSION>=22.02.2021

Introduction

The number of self-consistent iterations till convergence strongly depends on the quality of starting point: the closer the initial state to the solution - the fewer iterations to converge. W-SLDA Toolkit implements a mechanism supporting the derivation of good quality initial states. Namely, one can use lattice of lower resolution to generate an approximation of the solution and next interpolate to larger/target lattice and use it as starting point. The idea is presented on the figure below. The same mechanism can be used for testing the stability of results with respect to the lattice resolution.

automatic-interpolation

Automatic interpolations

Step 1: Generate solution with initial lattice. For example:
predefines.h

/**
 * Define lattice size and lattice spacing
 * */
#define NX 32
#define NY 32
#define NZ 32

#define DX (32./NX)
#define DY (32./NY)
#define DZ (32./NZ)

input.txt

outprefix               l-32    
checkpoint              1       # do checkpoints after each iteration

Step 2: Run the code compiled for the lattice with larger resolution:
predefines.h

/**
 * Define lattice size and lattice spacing
 * */
#define NX 40
#define NY 40
#define NZ 40

#define DX (32./NX)
#define DY (32./NY)
#define DZ (32./NZ)

input.txt

inittype                5       # 5 - start from st-wslda checkpoint, inprefix points to folder with checkpoint binary file
outprefix               l-40    
inprefix                l-32    # start with solution from smaller lattice 
checkpoint              1       # do checkpoints after each iteration

Once running the code you should see this type of message on stdout:

# INSPECTING CHECKPOINT FILE `l-32/checkpoint.dat`
# CHECKPOINT FOR 3D LATTICE: [NX,NY,NZ]=[32,32,32], [DX,DY,DZ]=[1.000,1.000,1.000], [LX,LY,LZ]=[32.000,32.000,32.000]
# !!! --- WARNING --- WARNING --- WARNING --- WARNING --- WARNING --- WARNING --- !!!
#        Resolution of the lattice has changed!
#        The code will interpolate given checkpoint data to the new resolution.
# !!! --- ------- --- ------- --- ------- --- ------- --- ------- --- ------- --- !!!
# LOADING CHECKPOINT FILE `l-32/checkpoint.dat`
# CONVERTING CHECKPOINT WITH RESOLUTION [DX,DY,DZ]=[1.000,1.000,1.000] TO NEW RESOLUTION [0.800,0.800,0.800]

Changing the volume

Automatic interpolations were designed to work correctly if the spatial extent has not changed. It means that [LX,LY,LZ] is the same for input lattice and target lattice. However, if this criterion is not satisfied, the code will make attempt to load the checkpoint data, squeeze/stretch it accordingly, and then interpolate to the new lattice. Note that result of this operation may be unpredictable. The code will provide the following warning:

# !!! --- WARNING --- WARNING --- WARNING --- WARNING --- WARNING --- WARNING --- !!!
#        Checkpoint files is incompatible with code settings!
#        The code will upload the data however the result of this operation may be unpredictable!
#        Make sure you understand what you are doing!
# !!! --- ------- --- ------- --- ------- --- ------- --- ------- --- ------- --- !!!

Disable mixing in the first iteration

For advanced functionals that have dependence on quantities that are cut-off dependent it is recommended to disable mixing in the first iteration.

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