Skip to content

sigvebs/MCTDHF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCTDHF

An implementation of the Multiconfigurational Time Dependent Hartree-Fock method(MCTDHF) for solving time-dependent many-body problems in quantum mechanics. To compile the following libraries are needed:

  • Armadillo
  • Libconfig
  • Lapack
  • Blas
  • FFTW

To compile run "qmake CONFIG+=default' and then 'make'. To run the program execute 'MCTDHF PATH-CONFIG' where 'PATH-CONFIG' is the path to a configuration file.

An example config file:

#-------------------------------
# Example of configuration file
# for the MCTDHF program
#-------------------------------
systemSettings:
{
    version = "---";
    cleanFiles = true;
    plotResult = true;
    doTimeIntegration = false;

    saveToFileInterval = 100;
    filePath = "../DATA/";
};

system:
{
    shells      = 2;
    nParticles  = 2;
    dim         = 1;

    # 0 = Cartesian
    coordinateType = 0;

    conserveSpin    = false;
    spinValue       = 0;
};

spatialDiscretization:
{
    latticeRange = 10.0;
    nGrid = 8;

    # Differential operator:
    # 0 = "Finite Difference 1d"
    # 1 = "Finite Difference Five Point 1d"
    # 2 = "Spectral Method 1d"
    differentialOperator = 2;
};

ComplexTimeIntegration:
{
    # 0 = "Crank-Nicolson"
    # 1 = "Runge-Kutta 4"
    # 2 = "Runge-Kutta-Fehlberg"
    integrator = 1;
    dt = 0.005;
    N = 5000;

    rungeKuttaFehlberg:
    {
        epsilon = 0.00001;
    };
};

timeIntegration:
{
    # 0 = "Runge-Kutta 4"
    # 1 = "Runge-Kutta-Fehlberg"
    integrator = 1;
    dt = 0.01;
    N = 500;

    rungeKuttaFehlberg:
    {
        epsilon = 0.00001;
    };
};

interactionPotential:
{
    interactionType = 1;

    # "0"       "-epsilon|x-y|^2"
    interactionPotential:
    {
        epsilon = 0.2;
    };

    # "1"       " lambda/sqrt((x-y)^2 + a^2)"
    shieldedCoulombInteraction:
    {
        lambda = 1.0;
        a = 0.25; # Shielding parameter
    };
};

meanFieldIntegrator:
{
    # 0 = "Trapezodial"
    # 1 = "Low rank approximation"
    integratorType = 0;

    lowRankApproximation:
    {
        constEnd = 1.;
        constValue = 0.35;
        endValue = 1.0;
        epsilon = 1.0;
    };
};

wavefunction:
{
    # 0 = "Harmonic Oscillator"
    # 1 = "Hydrogen Like"
    basisType = 0;
};

oneBodyPotential:
{
    potential = [0];
    timeDepPotential = [2];

    # "0"       " 0.5*w^2x^2 "
    harmonicOscillatorBinding:
    {
         w = 0.25; # Strength of the confining potential.
    };

    # "1"       " Z/sqrt((x-y)^2 + b^2) "
    coulombInteractionNucleus:
    {
        Z = 2.0; # charge of the nucleus
        b = 0.7408; # Shielding paramter
    };

    # "2"       " x e0 sin(w t) "
    simpleLaser:
    {
        w = 8.0;  # Frequency of laser - measured in w from "harmonicOscillatorBinding"
        e0 = 1.0;  # Amplitude of laser
    };

    # "3"       " 1/(2d^2)(x - 0.5d)^2(x + 0.5d)^2"
    anharmonicDoubleWell:
    {
        d = 8.0;
    };
};

About

Program for simulating time evolution in quantum systems using the MCTDHF method.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published