From 23e61c143aca53a4d5f17343cb204d364351032b Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Mon, 24 Apr 2023 12:06:35 -0400 Subject: New option for init: file_txt for plain txt input --- src/init.c | 13 ++++++++++++- src/init.h | 3 ++- src/main.c | 16 +++++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/init.c b/src/init.c index 12646ea..e4b6065 100644 --- a/src/init.c +++ b/src/init.c @@ -82,7 +82,18 @@ int init_gaussian ( } // Initialize from file -int init_file ( +// txt input +int init_file_txt ( + _Complex double* u0, + int K1, + int K2, + FILE* initfile +){ + read_u(u0, K1, K2, initfile); + return 0; +} +// binary input +int init_file_bin ( _Complex double* u0, int K1, int K2, diff --git a/src/init.h b/src/init.h index ef59677..387ccc3 100644 --- a/src/init.h +++ b/src/init.h @@ -11,6 +11,7 @@ int init_random(_Complex double* u0, double init_en, int K1, int K2, double L, i int init_gaussian(_Complex double* u0, double init_en, int K1, int K2, double L, bool irreversible); // Initialize from file -int init_file (_Complex double* u0, int K1, int K2, FILE* initfile); +int init_file_txt (_Complex double* u0, int K1, int K2, FILE* initfile); +int init_file_bin (_Complex double* u0, int K1, int K2, FILE* initfile); #endif diff --git a/src/main.c b/src/main.c index 14ea072..54a2c6a 100644 --- a/src/main.c +++ b/src/main.c @@ -64,6 +64,7 @@ void sig_handler (int signo); #define INIT_RANDOM 1 #define INIT_GAUSSIAN 2 #define INIT_FILE 3 +#define INIT_FILE_TXT 4 // global variable to handle interrupts @@ -214,6 +215,9 @@ int print_params( case INIT_FILE: fprintf(file,", init=file:%s", initfile_str); break; + case INIT_FILE_TXT: + fprintf(file,", init=file_txt:%s", initfile_str); + break; default: fprintf(file,", init=gaussian"); break; @@ -566,6 +570,12 @@ int set_parameter( *initfile_str=calloc(sizeof(char), strlen(rhs)-5+1); strcpy(*initfile_str, rhs+5); } + // matches any argument that starts with 'file_txt:' + else if (strncmp(rhs,"file_txt:",9)==0){ + parameters->init=INIT_FILE_TXT; + *initfile_str=calloc(sizeof(char), strlen(rhs)-9+1); + strcpy(*initfile_str, rhs+9); + } else{ fprintf(stderr, "error: unrecognized initial condition '%s'\n",rhs); return(-1); @@ -616,7 +626,11 @@ _Complex double* set_init( break; case INIT_FILE: - init_file(u0, parameters.K1, parameters.K2, parameters.initfile); + init_file_bin(u0, parameters.K1, parameters.K2, parameters.initfile); + break; + + case INIT_FILE_TXT: + init_file_txt(u0, parameters.K1, parameters.K2, parameters.initfile); break; default: -- cgit v1.2.3-54-g00ecf