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

Automatic interpolations

VERSION>=22.02.2021

  • Introduction
  • Automatic interpolations
  • Changing the volume
  • Disable mixing in the first iteration

Introduction

The number of self-consistent iterations till convergence strongly depends on the quality of the starting point: the closer the initial state to the solution, the fewer iterations there are to converge. W-SLDA Toolkit implements a mechanism supporting the derivation of good-quality initial states. Namely, one can use a lattice of lower resolution to generate an approximation of the solution and next interpolate to a larger/target lattice and use it as a starting point. The idea is presented in 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 the input lattice and target lattice. However, if this criterion is not satisfied, the code will make an attempt to load the checkpoint data, squeeze/stretch it accordingly, and then interpolate to the new lattice. Note that the 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 a dependence on quantities that are cut-off dependent, it is recommended to disable mixing in the first iteration.

Clone repository

Content of Documentation
Official webpage
W-BSK Toolkit