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 + -
显示快捷键?