⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 patom.cpp

📁 An object-oriented C++ implementation of Davidson method for finding a few selected extreme eigenpai
💻 CPP
字号:

#include "../davidson/pAtom.h"
#include <math.h>

PotentialAtom::PotentialAtom(const ftyp &a, const ftyp &V0):
			 PotentialBase()
{
	typV=2;
	PotentialAtom::a=a;
    PotentialAtom::V0=V0;
}

ftyp PotentialAtom::VCoulomb(const ftyp &x) const
{    if (fabs(x)<0.000000001) return -V0*1000000000;    return -V0/fabs(x);}ftyp PotentialAtom::VCoulomb(const ftyp &x, const ftyp &y) const{    ftyp r2 = x*x+y*y;    if (r2<0.0000000001) return -V0*100000;    return -V0/sqrt(r2);}ftyp PotentialAtom::VCoulomb(const ftyp &x, const ftyp &y, const ftyp &z) const{    ftyp r2 = x*x+y*y+z*z;    if (r2<0.0000000001) return -V0*100000;    return -V0/sqrt(r2);}ftyp PotentialAtom::operator()(const ftyp &x) const{    if (a) return -V0/sqrt(a*a+x*x);    return VCoulomb(x);}ftyp PotentialAtom::operator()(const ftyp &x, const ftyp &y) const{    if (a) return -V0/sqrt(a*a+x*x+y*y);    return VCoulomb(x,y);}ftyp PotentialAtom::operator()(const ftyp &x, const ftyp &y, const ftyp &z) const{    if (a) return -V0/sqrt(a*a+x*x+y*y+z*z);    return VCoulomb(x,y,z);}

void PotentialAtom::SetAV0(const ftyp &a, const ftyp &V0)
{    PotentialAtom::a  = a;    PotentialAtom::V0 = V0;}ftyp PotentialAtom::GetV0() const{	return V0;}ftyp PotentialAtom::GetA() const{	return a;}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -