67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
#include "data_func.h"
|
|
|
|
void cylinder_a(double* Range,double* Para,string filename)
|
|
{
|
|
double xmin,xmax,dx;
|
|
double D,r,S,density;
|
|
double g;
|
|
|
|
xmin = *Range; dx = *(Range+1); xmax = *(Range+2);
|
|
S = *Para; D = *(Para+1); r = *(Para+2); density = *(Para+3);
|
|
const char* savename = filename.c_str();
|
|
|
|
int Num = (xmax-xmin)/dx+1;
|
|
xmax = xmin + (Num-1)*dx;
|
|
|
|
ofstream outfile(savename);
|
|
for (int i=0;i<Num;i++)
|
|
{
|
|
g=2*G*D*density*pi*r*r/((xmin+i*dx-S)*(xmin+i*dx-S)+D*D);
|
|
outfile<<xmin+i*dx<<" "<<setprecision(16)<<g<<endl;
|
|
}
|
|
outfile.close();
|
|
}
|
|
|
|
void cylinder_h(double* Range,double* Para,string filename)
|
|
{
|
|
double xmin,xmax,dx;
|
|
double D,r,S,density;
|
|
double g;
|
|
|
|
xmin = *Range; dx = *(Range+1); xmax = *(Range+2);
|
|
S = *Para; D = *(Para+1); r = *(Para+2); density = *(Para+3);
|
|
const char* savename = filename.c_str();
|
|
|
|
int Num = (xmax-xmin)/dx+1;
|
|
xmax = xmin + (Num-1)*dx;
|
|
|
|
ofstream outfile(savename);
|
|
for (int i=0;i<Num;i++)
|
|
{
|
|
g=-4*G*density*pi*r*r*D*(xmin+i*dx-S)/pow(((xmin+i*dx-S)*(xmin+i*dx-S)+D*D),2);
|
|
outfile<<xmin+i*dx<<" "<<setprecision(16)<<g*1e+4<<endl;
|
|
}
|
|
outfile.close();
|
|
}
|
|
|
|
void cylinder_v(double* Range,double* Para,string filename)
|
|
{
|
|
double xmin,xmax,dx;
|
|
double D,r,S,density;
|
|
double g;
|
|
|
|
xmin = *Range; dx = *(Range+1); xmax = *(Range+2);
|
|
S = *Para; D = *(Para+1); r = *(Para+2); density = *(Para+3);
|
|
const char* savename = filename.c_str();
|
|
|
|
int Num = (xmax-xmin)/dx+1;
|
|
xmax = xmin + (Num-1)*dx;
|
|
|
|
ofstream outfile(savename);
|
|
for (int i=0;i<Num;i++)
|
|
{
|
|
g=2*G*density*pi*r*r*(D*D-(xmin+i*dx-S)*(xmin+i*dx-S))/pow((xmin+i*dx-S)*(xmin+i*dx-S)+D*D,2);
|
|
outfile<<xmin+i*dx<<" "<<setprecision(16)<<g*1e+4<<endl;
|
|
}
|
|
outfile.close();
|
|
} |