From 0bf223bcb90f154a0e471af7638b25755b246c5f Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Wed, 5 Apr 2023 20:33:38 -0400 Subject: Reversible equation --- src/main.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 853f172..f60a38e 100644 --- a/src/main.c +++ b/src/main.c @@ -14,6 +14,7 @@ // structure to store parameters, to make it easier to pass parameters to CLI functions typedef struct nstrophy_parameters { + bool irreversible; int K1; int K2; int N1; @@ -120,13 +121,13 @@ int main ( // run command if (command==COMMAND_UK){ - uk(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.print_freq, parameters.starting_time, nthreads, savefile); + uk(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.irreversible, parameters.print_freq, parameters.starting_time, nthreads, savefile); } else if(command==COMMAND_EEA){ - eea(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.print_freq, parameters.starting_time, nthreads, savefile); + eea(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.irreversible, parameters.print_freq, parameters.starting_time, nthreads, savefile); } else if(command==COMMAND_QUIET){ - quiet(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, nthreads, savefile); + quiet(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.irreversible, nthreads, savefile); } else if(command==0){ fprintf(stderr, "error: no command specified\n"); @@ -337,6 +338,7 @@ int read_params( bool lhs=true; // defaults + parameters->irreversible=true; parameters->K1=16; parameters->K2=parameters->K1; //delta=2^-13 @@ -428,7 +430,19 @@ int set_parameter( ){ int ret; - if (strcmp(lhs,"K1")==0){ + if (strcmp(lhs,"equation")==0){ + if (strcmp(rhs,"irreversible")==0){ + parameters->irreversible=true; + } + else if (strcmp(rhs,"reversible")==0){ + parameters->irreversible=false; + } + else { + fprintf(stderr, "error: 'equation' should be 'irreversible' or 'reversible'\n got '%s'\n",rhs); + return(-1); + } + } + else if (strcmp(lhs,"K1")==0){ ret=sscanf(rhs,"%d",&(parameters->K1)); if(ret!=1){ fprintf(stderr, "error: parameter 'K1' should be an integer\n got '%s'\n",rhs); -- cgit v1.2.3-54-g00ecf