potentialbase.cpp
来自「An object-oriented C++ implementation of」· C++ 代码 · 共 82 行
CPP
82 行
#include "../davidson/potentialbase.h"
void PotentialBase::SaveToFiles(char katalog[], const GridParam &gp) const
{ char file[255]; strcpy(file,katalog); strncat(file,"v.dat",5); ofstream vout(file); vout<<"# Type= "<<GetTypV()<<endl; switch (gp.GetDim()) { case 1 : SaveCor1D(gp, vout); break; case 2 : SaveCor2D(gp, vout); break; case 3 : SaveCor3D(gp, vout); break; }}void PotentialBase::SaveCor1D(const GridParam &gp, ofstream &vout) const{ vout<<"# nx = "<<gp.GetNx()<<" range = ["<<gp.GetXmax()<<"]"<<endl; vout<<"# x V(x)"<<endl; for (ntyp jj=1; jj<=gp.GetNx(); jj++){ ftyp x = gp.GetXmin()+(jj-1)*gp.GetDx(); vout<<x<<" "<<this->operator()(x)<<endl; }}void PotentialBase::SaveCor2D(const GridParam &gp, ofstream &vout) const{ vout<<"# nx = "<<gp.GetNx()<<" ny = "<<gp.GetNy() <<" range = ["<<gp.GetXmax()<<","<<gp.GetYmax()<<"]"<<endl; vout<<"# x y V(x,y)"<<endl; for (ntyp kk=1; kk<=gp.GetNy(); kk++) { ftyp y = gp.GetYmin()+(kk-1)*gp.GetDy(); for (ntyp jj=1; jj<=gp.GetNx(); jj++){ ftyp x = gp.GetXmin()+(jj-1)*gp.GetDx(); vout<<x<<" "<<y<<" "<<this->operator()(x,y)<<endl; } }}void PotentialBase::SaveCor3D(const GridParam &gp, ofstream &vout) const{ vout<<"# nx = "<<gp.GetNx()<<" ny = "<<gp.GetNy()<<" nz = "<<gp.GetNz() <<" range = ["<<gp.GetXmax()<<","<<gp.GetYmax()<<"," <<gp.GetZmax()<<"]"<<endl; vout<<"# x y z V(x,y,z)"<<endl; for (ntyp l=1; l<=gp.GetNz(); l++){ ftyp z = gp.GetZmin()+(l-1)*gp.GetDz(); for (ntyp k=1; k<=gp.GetNy(); k++){ ftyp y = gp.GetYmin()+(k-1)*gp.GetDy(); for (ntyp j=1; j<=gp.GetNx(); j++){ ftyp x = gp.GetXmin()+(j-1)*gp.GetDx(); vout<<x<<" "<<y<<" "<<z<<" " <<this->operator()(x,y,z)<<endl; } } }}
ntyp PotentialBase::GetTypV() const
{ if (typV==-1) throw "The data member typV was not defined"; else return typV;}
ntyp PotentialBase::Theta(const ftyp &x) const
{ return x>=0?1:0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?