Alternative omega input

Former-commit-id: 989c292b09077cec1acd590e5b4ca914352925d2
This commit is contained in:
Marek Nečada 2018-09-19 09:42:44 +03:00
parent 1cbaf2d993
commit fa1cee6c17
1 changed files with 19 additions and 8 deletions

View File

@ -1,3 +1,4 @@
// c99 -o ew_altin -DALTIN -Wall -I ../.. -O2 -ggdb -DLATTICESUMS32 hexlattice_ewald.c ../translations.c ../ewald.c ../ewaldsf.c ../gaunt.c ../lattices2d.c -lgsl -lm -lblas
// c99 -o ew -Wall -I ../.. -O2 -ggdb -DLATTICESUMS32 hexlattice_ewald.c ../translations.c ../ewald.c ../ewaldsf.c ../gaunt.c ../lattices2d.c -lgsl -lm -lblas // c99 -o ew -Wall -I ../.. -O2 -ggdb -DLATTICESUMS32 hexlattice_ewald.c ../translations.c ../ewald.c ../ewaldsf.c ../gaunt.c ../lattices2d.c -lgsl -lm -lblas
#include <stdio.h> #include <stdio.h>
#include <math.h> #include <math.h>
@ -28,16 +29,21 @@ int main (int argc, char **argv) {
const double LATTICE_A = s3*LATTICE_H; const double LATTICE_A = s3*LATTICE_H;
const double INVLATTICE_A = 4*M_PI / s3 / LATTICE_A; const double INVLATTICE_A = 4*M_PI / s3 / LATTICE_A;
char *omegafile = argv[1]; if (argc < 3) abort();
// char *kfile = argv[2]; // not used // char *kfile = argv[2]; // not used
char *outfile = argv[3]; char *outfile = argv[2];
char *errfile = NULL; char *errfile = NULL;
if (argc > 4) if (argc > 3)
errfile = argv[4]; errfile = argv[3];
//char *outlongfile = argv[4];
//char *outshortfile = argv[5];
double scuffomegas[MAXOMEGACOUNT];
cart2_t klist[MAXKCOUNT]; cart2_t klist[MAXKCOUNT];
#ifdef ALTIN // omega is provided on command line
char *omegastr = argv[1];
const double scuffomega = strtod(omegastr, NULL);
#else
char *omegafile = argv[1];
double scuffomegas[MAXOMEGACOUNT];
FILE *f = fopen(omegafile, "r"); FILE *f = fopen(omegafile, "r");
size_t omegacount = 0; size_t omegacount = 0;
while (fscanf(f, "%lf", scuffomegas + omegacount) == 1){ while (fscanf(f, "%lf", scuffomegas + omegacount) == 1){
@ -45,6 +51,7 @@ int main (int argc, char **argv) {
++omegacount; ++omegacount;
} }
fclose(f); fclose(f);
#endif
/*f = fopen(kfile, "r"); /*f = fopen(kfile, "r");
int kcount = 100; int kcount = 100;
while (fscanf(f, "%lf %lf", &(klist[kcount].x), &(klist[kcount].y)) == 2) { while (fscanf(f, "%lf %lf", &(klist[kcount].x), &(klist[kcount].y)) == 2) {
@ -93,8 +100,12 @@ int main (int argc, char **argv) {
if (errfile) if (errfile)
err = fopen(errfile, "w"); err = fopen(errfile, "w");
#ifndef ALTIN
for (size_t omegai = 0; omegai < omegacount; ++omegai) { for (size_t omegai = 0; omegai < omegacount; ++omegai) {
const double scuffomega = scuffomegas[omegai]; const double scuffomega = scuffomegas[omegai];
#else
{
#endif
const double omega = scuffomega * SCUFF_OMEGAUNIT; const double omega = scuffomega * SCUFF_OMEGAUNIT;
const double EeV = omega * hbar / eV; const double EeV = omega * hbar / eV;
const double k0_vac = omega / c0; const double k0_vac = omega / c0;