Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jauslin <ian@jauslin.org>2022-05-25 11:12:02 -0400
committerIan Jauslin <ian@jauslin.org>2022-05-25 11:12:02 -0400
commita55065f4745f5f340eb6dffbd88fe2fb05a40625 (patch)
tree62b362f965037469d574cc9a35d9064e91ec8d5e /src/main.c
parentd37d6104e01897491412e2949db327e905d6b53a (diff)
add L parameter
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c30
1 files changed, 20 insertions, 10 deletions
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){