diff options
Diffstat (limited to 'src/Startup.c')
-rw-r--r-- | src/Startup.c | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/src/Startup.c b/src/Startup.c index dfe7d5f..19a75bd 100644 --- a/src/Startup.c +++ b/src/Startup.c @@ -15,21 +15,21 @@ static const char *rcsid = "$Header$"; CCTK_FILEVERSION(CactusElliptic_EllSOR_Startup_c) void EllSOR_Register(CCTK_ARGUMENTS); -void sor_confmetric(cGH *GH, +void SORConfMetric(cGH *GH, int *MetricPsiI, int FieldI, int MI, int NI, CCTK_REAL *AbsTol, CCTK_REAL *RelTol); -void sor_flat(cGH *GH, - int FieldI, - int MI, - int NI, - CCTK_REAL *AbsTol, - CCTK_REAL *RelTol); - -/* routine registers the SOR solver "sor_confmetric" under the name "sor" +void SORFlat(cGH *GH, + int FieldI, + int MI, + int NI, + CCTK_REAL *AbsTol, + CCTK_REAL *RelTol); + +/* routine registers the SOR solver "SORConfMetric" under the name "sor" with the Elliptic Class "LinConfMetric". */ @@ -39,20 +39,20 @@ void EllSOR_Register(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS DECLARE_CCTK_PARAMETERS - int err; /* Register the solver with the elliptic classes */ - err = Ell_RegisterSolver(sor_confmetric,"sor","Ell_LinConfMetric"); + err = Ell_RegisterSolver(SORConfMetric,"sor","Ell_LinConfMetric"); if (!err==ELL_SUCCESS) { - CCTK_WARN(0,"Failed to register sor for Ell_LinConfMetric"); + CCTK_WARN(0,"EllSOR_Register: Failed to register sor for Ell_LinConfMetric"); } - err = Ell_RegisterSolver(sor_flat,"sor","Ell_LinFlat"); + + err = Ell_RegisterSolver(SORFlat,"sor","Ell_LinFlat"); if (!err==ELL_SUCCESS) { - CCTK_WARN(0,"Failed to register sor for Ell_LinFlat"); + CCTK_WARN(0,"EllSOR_Register: Failed to register sor for Ell_LinFlat"); } /* These "keys" have to be same in other elliptic solver and in @@ -62,6 +62,22 @@ void EllSOR_Register(CCTK_ARGUMENTS) err = Ell_CreateKey(CCTK_VARIABLE_STRING,"EllLinFlat::Bnd::Robin"); err = Ell_CreateKey(CCTK_VARIABLE_STRING,"EllLinFlat::Bnd::Const"); - + /* Create a key to be associated with the maximum number of iterations + allowed. */ + err = Ell_CreateKey(CCTK_VARIABLE_INT, "Ell::SORmaxit"); + if (err != ELL_SUCCESS) + { + CCTK_WARN(0, "EllSOR_Register: " + "Failed to create integer key Ell::SORmaxit"); + } + + /* Create a key to be associated with the type of acceleration to be + used. */ + err = Ell_CreateKey(CCTK_VARIABLE_STRING, "Ell::SORaccel"); + if (err != ELL_SUCCESS) + { + CCTK_WARN(0, "EllSOR_Register: " + "Failed to create integer key Ell::SORaccel"); + } } |