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
  • Strict 2D or 1D mode

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

Strict 2D or 1D mode

This page needs update

In the W-SLDA toolkit it is possible to simulate "strict 2d" cases without any restriction for the z-direction. This can be done by simply choosing the size of the simulation box as NxNy1. In oder to do that one needs to modifiy the predefines.h:

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

Setting the Correct Fermi Momentum

In the toolkit the default Fermi momentum is defined for the 3d case. If you are using strict 2d or 1d cases it is highly suggested to set the value of the Fermi momentum in the input file as referencekF.
The Fermi momentum for the 2d case:

  • k_F = \sqrt{2\pi n}

The Fermi momentum for the 1d case:

  • k_F = \frac{\pi n}{2}

where n is the total density (spin up + spin down) of the gas.

Choosing the Functional

The SLDA (and consequently ASLDA) functional has a self-energy term which is designed for 3d case. For the strcit 2d case we suggest to use the BDG functional. This can be done by choosing the BDG flag in the predefines.h file and requires the scattering length (aBdG) to be defined in the input file.

An alternative way to calculate the pairing interaction is to set a fixed coupling constant. This can be done by modifiying the pairing potential:

void modify_potentials(int it, wslda_density h_densities, wslda_potential h_potentials, double *params, size_t extra_data_size, void *extra_data)
{
    // DETERMINE LOCAL SIZES OF ARRAYS (CODE DIMENSIONALITY DEPENDENT)
    int lNX=h_densities.nx, lNY=h_densities.ny, lNZ=h_densities.nz; // local sizes
    int ix, iy, iz, ixyz;

    // params0 -> effective coupling strength

        ixyz=0;
        for(ix=0; ix<lNX; ix++) for(iy=0; iy<lNY; iy++) for(iz=0; iz<lNZ; iz++)
        {
        h_potentials.delta[ixyz] = -1.0*params[0]*h_densities.nu[ixyz];
        ...
        ixyz++;
        }
}

Here params[0] is the effective coupling constant which has to be set in the input file:

# -------------------  PARAMS -----------------------
params0         -2.30   # g_eff

By changing the value of this parameter one can set the magnitude of the pairing field to a desired value.

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