keep_en_cst
This commit is contained in:
		
							
								
								
									
										17
									
								
								src/main.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								src/main.c
									
									
									
									
									
								
							@@ -50,6 +50,7 @@ typedef struct nstrophy_parameters {
 | 
			
		||||
  unsigned int driving;
 | 
			
		||||
  unsigned int init;
 | 
			
		||||
  unsigned int algorithm;
 | 
			
		||||
  bool keep_en_cst;
 | 
			
		||||
  FILE* initfile;
 | 
			
		||||
  FILE* drivingfile;
 | 
			
		||||
} nstrophy_parameters;
 | 
			
		||||
@@ -178,16 +179,16 @@ int main (
 | 
			
		||||
 | 
			
		||||
  // run command
 | 
			
		||||
  if (command==COMMAND_UK){
 | 
			
		||||
    uk(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.final_time, parameters.nu, parameters.delta, parameters.L, parameters.adaptive_tolerance, parameters.adaptive_factor, parameters.max_delta, parameters.adaptive_norm, u0, g, parameters.irreversible, parameters.algorithm, parameters.print_freq, parameters.starting_time, nthreads, savefile);
 | 
			
		||||
    uk(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.final_time, parameters.nu, parameters.delta, parameters.L, parameters.adaptive_tolerance, parameters.adaptive_factor, parameters.max_delta, parameters.adaptive_norm, u0, g, parameters.irreversible, parameters.keep_en_cst, parameters.init_en, parameters.algorithm, parameters.print_freq, parameters.starting_time, nthreads, savefile);
 | 
			
		||||
  }
 | 
			
		||||
  else if(command==COMMAND_ENSTROPHY){
 | 
			
		||||
    // register signal handler to handle aborts
 | 
			
		||||
    signal(SIGINT, sig_handler);
 | 
			
		||||
    signal(SIGTERM, sig_handler);
 | 
			
		||||
    enstrophy(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.final_time, parameters.nu, parameters.delta, parameters.L, parameters.adaptive_tolerance, parameters.adaptive_factor, parameters.max_delta, parameters.adaptive_norm, u0, g, parameters.irreversible, parameters.algorithm, parameters.print_freq, parameters.starting_time, nthreads, savefile, utfile, (char*)argv[0], param_str, savefile_str, utfile_str);
 | 
			
		||||
    enstrophy(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.final_time, parameters.nu, parameters.delta, parameters.L, parameters.adaptive_tolerance, parameters.adaptive_factor, parameters.max_delta, parameters.adaptive_norm, u0, g, parameters.irreversible, parameters.keep_en_cst, parameters.init_en, parameters.algorithm, parameters.print_freq, parameters.starting_time, nthreads, savefile, utfile, (char*)argv[0], param_str, savefile_str, utfile_str);
 | 
			
		||||
  }
 | 
			
		||||
  else if(command==COMMAND_QUIET){
 | 
			
		||||
    quiet(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.final_time, parameters.nu, parameters.delta, parameters.L, parameters.adaptive_tolerance, parameters.adaptive_factor, parameters.max_delta, parameters.adaptive_norm, parameters.starting_time, u0, g, parameters.irreversible, parameters.algorithm, nthreads, savefile);
 | 
			
		||||
    quiet(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.final_time, parameters.nu, parameters.delta, parameters.L, parameters.adaptive_tolerance, parameters.adaptive_factor, parameters.max_delta, parameters.adaptive_norm, parameters.starting_time, u0, g, parameters.irreversible, parameters.keep_en_cst, parameters.init_en, parameters.algorithm, nthreads, savefile);
 | 
			
		||||
  }
 | 
			
		||||
  else if(command==0){
 | 
			
		||||
    fprintf(stderr, "error: no command specified\n");
 | 
			
		||||
@@ -448,6 +449,7 @@ int read_params(
 | 
			
		||||
  parameters->init=INIT_GAUSSIAN;
 | 
			
		||||
  parameters->initfile=NULL;
 | 
			
		||||
  parameters->algorithm=ALGORITHM_RK4;
 | 
			
		||||
  parameters->keep_en_cst=false;
 | 
			
		||||
 | 
			
		||||
  if (param_str!=NULL){
 | 
			
		||||
    // init
 | 
			
		||||
@@ -756,6 +758,15 @@ int set_parameter(
 | 
			
		||||
      return(-1);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else if (strcmp(lhs,"keep_en_cst")==0){
 | 
			
		||||
    int tmp;
 | 
			
		||||
    ret=sscanf(rhs,"%d",&tmp);
 | 
			
		||||
    if(ret!=1 || (tmp!=0 && tmp!=1)){
 | 
			
		||||
      fprintf(stderr, "error: parameter 'keep_en_cst' should be 0 or 1\n       got '%s'\n",rhs);
 | 
			
		||||
      return(-1);
 | 
			
		||||
    }
 | 
			
		||||
    parameters->keep_en_cst=(tmp==1);
 | 
			
		||||
  }
 | 
			
		||||
  else{
 | 
			
		||||
    fprintf(stderr, "error: unrecognized parameter '%s'\n",lhs);
 | 
			
		||||
    return(-1);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user