diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d32491f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +plt_dat +data \ No newline at end of file diff --git a/hydrogen.h b/hydrogen.h new file mode 100644 index 0000000..c73632f --- /dev/null +++ b/hydrogen.h @@ -0,0 +1,48 @@ +#include +#include + +double potential(double *r, const int l) { + double pot; + + pot = 0.0; + for (int i = 0; i < l; ++i) { + pot += r[i] * r[i]; + } + + if (pot > 0.0) { + return -1.0 / sqrt(pot); + } + return -1; + +} + +double psi(double a, double *r, const int l) { + double psival, rnorm; + + psival = 0.0; + rnorm = 0.0; + for (int i = 0; i < l; ++i) { + rnorm += r[i]*r[i]; + } + rnorm = sqrt(rnorm); + + psival = exp(-a * rnorm); + + return psival; +} + +double kinetic(double a, double *r, const int l) { + double rnorm; + + for (int i = 0; i < l; ++i) { + rnorm += r[i]*r[i]; + } + rnorm = sqrt(rnorm); + + return a * (1 / rnorm - 0.5 * a); + +} + +double e_loc(double a, double *r, const int l) { + return kinetic(a, r, l) + potential(r, l); +} diff --git a/plot_hydrogen.c b/plot_hydrogen.c new file mode 100644 index 0000000..074b8bc --- /dev/null +++ b/plot_hydrogen.c @@ -0,0 +1,27 @@ +#include "hydrogen.h" + +int main() { + const double a[6] = {0.1, 0.2, 0.5, 1., 1.5, 2.}; + const int sizex = 50; + double x[sizex], dx; + + dx = 10.0 / (sizex - 1); + for (int i = 0; i < sizex; ++i) { + x[i] = -5.0 + (i - 1) * dx; + } + + FILE * fil; + + fil = fopen("./data", "w+"); + + for (int i; i < 6; ++i) { + for (int j = 0; j < sizex; ++j) { + fprintf(fil, "%lf %lf\n", x[j], e_loc(a[i], &x[j], 1)); + } + fprintf(fil, "\n\n"); + } + + fclose(fil); + + return 0; +}