From a55065f4745f5f340eb6dffbd88fe2fb05a40625 Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Wed, 25 May 2022 11:12:02 -0400 Subject: add L parameter --- src/main.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 27bfb7a..3d8867e 100644 --- a/src/main.c +++ b/src/main.c @@ -14,8 +14,8 @@ int print_usage(); // read command line arguments int read_args(int argc, const char* argv[], char** params, unsigned int* driving_force, unsigned int* command, unsigned int* nthreads); -int read_params(char* params, int* K1, int* K2, int* N1, int* N2, unsigned int* nsteps, double* nu, double* delta, unsigned int* print_freq); -int set_parameter(char* lhs, char* rhs, int* K1, int* K2, int* N1, int* N2, unsigned int* nsteps, double* nu, double* delta, unsigned int* print_freq, bool* setN1, bool* setN2); +int read_params(char* params, int* K1, int* K2, int* N1, int* N2, unsigned int* nsteps, double* nu, double* delta, double* L, unsigned int* print_freq); +int set_parameter(char* lhs, char* rhs, int* K1, int* K2, int* N1, int* N2, unsigned int* nsteps, double* nu, double* delta, double* L, unsigned int* print_freq, bool* setN1, bool* setN2); #define COMMAND_UK 1 @@ -35,7 +35,7 @@ int main ( int K1,K2; int N1,N2; unsigned int nsteps; - double nu,delta; + double nu,delta,L; _Complex double (*g)(int,int); int ret; unsigned int driving,command; @@ -51,7 +51,7 @@ int main ( return(-1); } // read params - ret=read_params(params, &K1, &K2, &N1, &N2, &nsteps, &nu, &delta, &print_freq); + ret=read_params(params, &K1, &K2, &N1, &N2, &nsteps, &nu, &delta, &L, &print_freq); if(ret<0){ return(-1); } @@ -71,16 +71,16 @@ int main ( // run command if (command==COMMAND_UK){ - uk(K1, K2, N1, N2, nsteps, nu, delta, g, print_freq, nthreads); + uk(K1, K2, N1, N2, nsteps, nu, delta, L, g, print_freq, nthreads); } else if (command==COMMAND_ENERGY){ - energy(K1, K2, N1, N2, nsteps, nu, delta, g, print_freq, nthreads); + energy(K1, K2, N1, N2, nsteps, nu, delta, L, g, print_freq, nthreads); } else if(command==COMMAND_ENSTROPHY){ - energy(K1, K2, N1, N2, nsteps, nu, delta, g, print_freq, nthreads); + energy(K1, K2, N1, N2, nsteps, nu, delta, L, g, print_freq, nthreads); } else if(command==COMMAND_QUIET){ - quiet(K1, K2, N1, N2, nsteps, nu, delta, g, nthreads); + quiet(K1, K2, N1, N2, nsteps, nu, delta, L, g, nthreads); } else if(command==0){ fprintf(stderr, "error: no command specified\n"); @@ -201,6 +201,7 @@ int read_params( unsigned int* nsteps, double* nu, double* delta, + double* L, unsigned int* print_freq ){ int ret; @@ -222,6 +223,7 @@ int read_params( *delta=0.0001220703125; //nu=2^-11 *nu=0.00048828125; + *L=2*M_PI; *nsteps=10000000; *print_freq=1000; @@ -244,7 +246,7 @@ int read_params( break; case ';': //set parameter - ret=set_parameter(buffer_lhs,buffer_rhs,K1,K2,N1,N2,nsteps,nu,delta,print_freq,&setN1,&setN2); + ret=set_parameter(buffer_lhs,buffer_rhs,K1,K2,N1,N2,nsteps,nu,delta,L,print_freq,&setN1,&setN2); if(ret<0){ return ret; } @@ -271,7 +273,7 @@ int read_params( // set last param if (*params!='\0'){ - ret=set_parameter(buffer_lhs,buffer_rhs,K1,K2,N1,N2,nsteps,nu,delta,print_freq,&setN1,&setN2); + ret=set_parameter(buffer_lhs,buffer_rhs,K1,K2,N1,N2,nsteps,nu,delta,L,print_freq,&setN1,&setN2); if(ret<0){ return ret; } @@ -305,6 +307,7 @@ int set_parameter( unsigned int* nsteps, double* nu, double* delta, + double* L, unsigned int* print_freq, bool* setN1, bool* setN2 @@ -380,6 +383,13 @@ int set_parameter( return(-1); } } + else if (strcmp(lhs,"L")==0){ + ret=sscanf(rhs,"%lf",L); + if(ret!=1){ + fprintf(stderr, "error: parameter 'L' should be a double\n got '%s'\n",rhs); + return(-1); + } + } else if (strcmp(lhs,"print_freq")==0){ ret=sscanf(rhs,"%u",print_freq); if(ret!=1){ -- cgit v1.2.3-54-g00ecf