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

#include "output_sk.h"

#include "source_base/tool_quit.h"

namespace ModuleIO
{

template 
Output_Sk::Output_Sk(hamilt::Hamilt* p_hamilt, Parallel_Orbitals* ParaV, int nspin, int nks)
    : p_hamilt_(p_hamilt), ParaV_(ParaV), nspin_(nspin), nks_(nks)
{
}

template 
double* Output_Sk::get_Sk(int ik)
{
    if (ik < 0 || ik >= this->nks_)
    {
        ModuleBase::WARNING_QUIT("Output_Sk::get_sk", "ik out of range");
    }
    return dynamic_cast(this->p_hamilt_)->getSk();
}

template 
std::complex* Output_Sk::get_Sk(int ik)
{
    if (ik < 0 || ik >= this->nks_)
    {
        ModuleBase::WARNING_QUIT("Output_Sk::get_sk", "ik out of range");
    }
    if (this->nspin_ == 4)
    {
        dynamic_cast(this->p_hamilt_)
            ->updateSk(ik, 1);
        return dynamic_cast(this->p_hamilt_)->getSk();
    }
    else
    {
        dynamic_cast(this->p_hamilt_)->updateSk(ik, 1);
        return dynamic_cast(this->p_hamilt_)->getSk();
    }
    return nullptr;
}

template class Output_Sk;
template class Output_Sk;

} // namespace ModuleIO

Web Proxy Viewer  |  New URL  |  Original Page