Ian Jauslin
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Jauslin <ian.jauslin@rutgers.edu>2023-04-24 12:06:35 -0400
committerIan Jauslin <ian.jauslin@rutgers.edu>2023-04-24 12:06:35 -0400
commit23e61c143aca53a4d5f17343cb204d364351032b (patch)
tree545f9e026d34954b4c24e1e922b862399864a823 /src
parentcbcb39ff19c441a770671e151218330d1ac7bc91 (diff)
New option for init: file_txt for plain txt input
Diffstat (limited to 'src')
-rw-r--r--src/init.c13
-rw-r--r--src/init.h3
-rw-r--r--src/main.c16
3 files changed, 29 insertions, 3 deletions
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: