[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pplab/abacus-develop/develop/source/source_esolver/esolver.cpp [Back]  [Original]

#include "esolver.h"

#include "esolver_ks_pw.h"
#include "esolver_sdft_pw.h"
#include "source_base/module_device/device.h"
#include "source_io/module_parameter/parameter.h"
#ifdef __LCAO
#include "esolver_dm2rho.h"
#include "esolver_gets.h"
#include "esolver_ks_lcao.h"
#include "esolver_ks_lcao_tddft.h"
#include "esolver_ks_lcaopw.h"
#include "source_lcao/module_lr/esolver_lrtd_lcao.h"
extern "C"
{
#include "source_base/module_external/blacs_connector.h"
}
#endif
#include "esolver_dp.h"
#include "esolver_lj.h"
#include "esolver_of.h"
#include "source_io/module_parameter/md_parameter.h"

#include 

namespace ModuleESolver
{

std::string determine_type()
{
    std::string esolver_type = "none";
    if (PARAM.inp.basis_type == "pw")
    {
        if (PARAM.inp.esolver_type == "sdft")
        {
            esolver_type = "sdft_pw";
        }
        else if (PARAM.inp.esolver_type == "ofdft")
        {
            esolver_type = "ofdft";
        }
        else if (PARAM.inp.esolver_type == "ksdft")
        {
            esolver_type = "ksdft_pw";
        }
    }
    else if (PARAM.inp.basis_type == "lcao_in_pw")
    {
#ifdef __LCAO
        if (PARAM.inp.esolver_type == "sdft")
        {
            esolver_type = "sdft_pw";
        }
        else if (PARAM.inp.esolver_type == "ksdft")
        {
            esolver_type = "ksdft_lip";
        }
#else
        ModuleBase::WARNING_QUIT("ESolver", "Calculation involving numerical orbitals must be compiled with __LCAO");
#endif
    }
    else if (PARAM.inp.basis_type == "lcao")
    {
#ifdef __LCAO
        if (PARAM.inp.esolver_type == "tddft")
        {
            esolver_type = "ksdft_lcao_tddft";
        }
        else if (PARAM.inp.esolver_type == "ksdft")
        {
            esolver_type = "ksdft_lcao";
        }
        else if (PARAM.inp.esolver_type == "ks-lr")
        {
            esolver_type = "ksdft_lr_lcao";
        }
        else if (PARAM.inp.esolver_type == "lr")
        {
            esolver_type = "lr_lcao";
        }
#else
        ModuleBase::WARNING_QUIT("ESolver", "Calculation involving numerical orbitals must be compiled with __LCAO");
#endif
    }

    if (PARAM.inp.esolver_type == "lj")
    {
        esolver_type = "lj_pot";
    }
    else if (PARAM.inp.esolver_type == "dp")
    {
        esolver_type = "dp_pot";
    }
    else if (esolver_type == "none")
    {
        ModuleBase::WARNING_QUIT("ESolver", "No such esolver_type combined with basis_type");
    }

    GlobalV::ofs_running 

Web Proxy Viewer  |  New URL  |  Original Page