diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 41 |
1 files changed, 27 insertions, 14 deletions
@@ -32,6 +32,8 @@ int read_args(int argc, const char* argv[], char** params, unsigned int* driving int read_params(char* param_str, nstrophy_parameters* parameters); int set_parameter(char* lhs, char* rhs, nstrophy_parameters* parameters, bool* setN1, bool* setN2); +// set driving force +_Complex double* set_driving(unsigned int driving, nstrophy_parameters parameters); // set initial condition _Complex double* set_init(unsigned int init, nstrophy_parameters parameters); @@ -53,11 +55,11 @@ int main ( ){ char* param_str=NULL; nstrophy_parameters parameters; - _Complex double (*g)(int,int); int ret; unsigned int driving,command,init; unsigned int nthreads=1; _Complex double* u0; + _Complex double *g; command=0; driving=0; @@ -76,19 +78,7 @@ int main ( } // set driving force - switch(driving){ - case DRIVING_ZERO: - g=g_zero; - break; - case DRIVING_TEST: - g=g_test; - break; - - default: - g=g_zero; - break; - } - + g=set_driving(driving, parameters); // set initial condition u0=set_init(init, parameters); @@ -110,6 +100,7 @@ int main ( print_usage(); } + free(g); free(u0); return(0); @@ -441,6 +432,28 @@ int set_parameter( return(0); } +// set driving force +_Complex double* set_driving( + unsigned int driving, + nstrophy_parameters parameters +){ + _Complex double* g=calloc(sizeof(_Complex double),(2*parameters.K1+1)*(2*parameters.K2+1)); + + switch(driving){ + case DRIVING_ZERO: + g_zero(g, parameters.K1, parameters.K2); + break; + case DRIVING_TEST: + g_test(g, parameters.K1, parameters.K2); + break; + + default: + g_test(g, parameters.K1, parameters.K2); + break; + } + return g; +} + // set initial condition _Complex double* set_init( unsigned int init, |