add L parameter
This commit is contained in:
30
src/main.c
30
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){
|
||||
|
||||
Reference in New Issue
Block a user