Mentions légales du service

Skip to content
Snippets Groups Projects
Commit e1c43c5d authored by FELŠÖCI Marek's avatar FELŠÖCI Marek
Browse files

Allow for running multiple tests in a row

parent d0538338
No related branches found
No related tags found
No related merge requests found
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#include "hmat/hmat.h" #include "hmat/hmat.h"
#include "util.h" #include "util.h"
extern char * batch_file;
extern hmat_interface_t * interface; extern hmat_interface_t * interface;
extern double epsilon; extern double epsilon;
...@@ -58,6 +60,7 @@ int displayArray(char *s, void *f, int m, int n) ; ...@@ -58,6 +60,7 @@ int displayArray(char *s, void *f, int m, int n) ;
int testHMAT(double * relative_error); int testHMAT(double * relative_error);
double* createCylinder(void) ; double* createCylinder(void) ;
int printHelp() ; int printHelp() ;
int run_one();
void prepare_hmat(int, int, int, int, int*, int*, int*, int*, void*, hmat_block_info_t *); void prepare_hmat(int, int, int, int, int*, int*, int*, int*, void*, hmat_block_info_t *);
void advanced_compute_hmat(struct hmat_block_compute_context_t*); void advanced_compute_hmat(struct hmat_block_compute_context_t*);
void update_progress(hmat_progress_t * ctx); void update_progress(hmat_progress_t * ctx);
......
#include "main.h" #include "main.h"
char * batch_file = NULL;
hmat_interface_t * interface = NULL; hmat_interface_t * interface = NULL;
double epsilon = 1e-3; double epsilon = 1e-3;
hmat_progress_t progress; hmat_progress_t progress;
...@@ -13,14 +14,8 @@ void update_progress(hmat_progress_t * ctx) { ...@@ -13,14 +14,8 @@ void update_progress(hmat_progress_t * ctx) {
Mpf_progressBar(ctx->current, ctx->max); Mpf_progressBar(ctx->current, ctx->max);
} }
/*! \brief Main routine int run_one() {
\return 0 for success
*/
int main(int argc, char **argv) {
int ierr; int ierr;
printf("[minisolver] minisolver version = %s\n", PACKAGE_VERSION);
printf("[minisolver] hmat version = %s\n", HMAT_VERSION);
printf("[minisolver] hmat initialization ... "); printf("[minisolver] hmat initialization ... ");
interface = calloc(1, sizeof(hmat_interface_t)); CHKPTRQ(interface); interface = calloc(1, sizeof(hmat_interface_t)); CHKPTRQ(interface);
...@@ -30,27 +25,9 @@ int main(int argc, char **argv) { ...@@ -30,27 +25,9 @@ int main(int argc, char **argv) {
interface->init(); interface->init();
progress.update = update_progress; progress.update = update_progress;
printf("done\n"); printf("done\n");
if (MpfArgGetInt(&argc, argv, 1, "--size", &nbPts)) {
printf("[minisolver] system size = %d\n", nbPts) ;
}
char * compression = NULL;
if (MpfArgGetString( &argc, argv, 1, "--compression" , &compression)) {
if(strncmp(compression, "medium", 6) == 0) {
epsilon = 1e-6;
} else if(strncmp(compression, "high", 4) == 0) {
epsilon = 1e-10;
} else if(strncmp(compression, "disabled", 6) == 0) {
epsilon = 1e-16;
}
} else {
compression = strncpy(compression, "low", 3); CHKPTRQ(compression);
}
printf("[minisolver] compression = %s\n", compression);
printf("[minisolver] epsilon = %.0e\n", epsilon);
printf("[minisolver] preparing test ... "); printf("[minisolver] preparing test ... ");
resetCylinder();
ierr=initCylinder(); CHKERRQ(ierr); ierr=initCylinder(); CHKERRQ(ierr);
/* Wavelength */ /* Wavelength */
...@@ -80,7 +57,6 @@ int main(int argc, char **argv) { ...@@ -80,7 +57,6 @@ int main(int argc, char **argv) {
MpfFree(rhs); MpfFree(rhs);
rhs = NULL; rhs = NULL;
} }
free(compression);
printf("done\n"); printf("done\n");
printf("[minisolver] hmat finalization ... "); printf("[minisolver] hmat finalization ... ");
...@@ -90,3 +66,47 @@ int main(int argc, char **argv) { ...@@ -90,3 +66,47 @@ int main(int argc, char **argv) {
return 0; return 0;
} }
/*! \brief Main routine
\return 0 for success
*/
int main(int argc, char **argv) {
int ierr;
printf("[minisolver] minisolver version = %s\n", PACKAGE_VERSION);
printf("[minisolver] hmat version = %s\n", HMAT_VERSION);
if(MpfArgGetString(&argc, argv, 1, "--batch", &batch_file)) {
printf("[minisolver] batch file = %s\n", batch_file);
printf("Test 1\n");
ierr = run_one(); CHKERRQ(ierr);
printf("Test 2\n");
ierr = run_one(); CHKERRQ(ierr);
return 0;
}
if (MpfArgGetInt(&argc, argv, 1, "--size", &nbPts)) {
printf("[minisolver] system size = %d\n", nbPts) ;
}
char * compression = NULL;
if (MpfArgGetString( &argc, argv, 1, "--compression" , &compression)) {
if(strncmp(compression, "medium", 6) == 0) {
epsilon = 1e-6;
} else if(strncmp(compression, "high", 4) == 0) {
epsilon = 1e-10;
} else if(strncmp(compression, "disabled", 6) == 0) {
epsilon = 1e-16;
}
} else {
compression = strncpy(compression, "low", 3); CHKPTRQ(compression);
}
printf("[minisolver] compression = %s\n", compression);
printf("[minisolver] epsilon = %.0e\n", epsilon);
free(compression);
ierr = run_one(); CHKERRQ(ierr);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment