diff options
author | Ian Jauslin <ian@jauslin.org> | 2022-05-26 15:16:44 -0400 |
---|---|---|
committer | Ian Jauslin <ian@jauslin.org> | 2022-05-26 15:16:44 -0400 |
commit | aa66aadb7451fe3f82f4c05e2fe860084e1e644f (patch) | |
tree | 1763e00e1294407661ba1b8e9f58b9043666b304 /src/main.c | |
parent | d4254c6b8e6d4a94a5448e771d8a0620f266cf05 (diff) |
Driving force as vector instead of function
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, |