#include #include #include #include "cctk.h" #include "cctk_parameters.h" #include "Ell_DBstructure.h" /* At Startup, EllBase registers the elliptic equation classes for which it provides solvers. Other routines, which may come up with new classes, can registers the classes in their own thorns. */ void Ell_RegisterBaseEqTypes(cGH *GH) { DECLARE_CCTK_PARAMETERS void Ell_RegisterEq(void (*function),const char *); void Ell_LinConfMetricRegistry(void (*function),const char *); void Ell_LinMetricRegistry(void (*function),const char *); void Ell_LinFlatRegistry(void (*function),const char *); void Ell_BrBrConfMetricRegistry(void (*function),const char *); void Ell_PolyConfMetricRegistry(void (*function),const char *); int err; Ell_RegisterEq(Ell_LinConfMetricRegistry,"Ell_LinConfMetric"); Ell_RegisterEq(Ell_BrBrConfMetricRegistry,"Ell_BrBrConfMetric"); Ell_RegisterEq(Ell_PolyConfMetricRegistry,"Ell_PolyConfMetric"); Ell_RegisterEq(Ell_LinMetricRegistry,"Ell_LinMetric"); Ell_RegisterEq(Ell_LinFlatRegistry,"Ell_LinFlat"); /* Register boundary SOR can handle */ err = err = Ell_CreateKey(CCTK_VARIABLE_STRING,"EllLinFlat::Bnd"); err = Ell_CreateKey(CCTK_VARIABLE_STRING,"EllLinConfMetric::Bnd"); err = Ell_CreateKey(CCTK_VARIABLE_STRING,"EllLinMetric::Bnd"); /* Register the variables needed to use these boundaries */ err = Ell_CreateKey(CCTK_VARIABLE_REAL, "EllLinConfMetric::Bnd::Robin::inf"); err = Ell_CreateKey(CCTK_VARIABLE_INT, "EllLinConfMetric::Bnd::Robin::falloff"); err = Ell_CreateKey(CCTK_VARIABLE_REAL, "EllLinConfMetric::Bnd::Const::V0"); /* Register the variables needed to use these boundaries */ err = Ell_CreateKey(CCTK_VARIABLE_REAL, "EllLinMetric::Bnd::Robin::inf"); err = Ell_CreateKey(CCTK_VARIABLE_INT, "EllLinMetric::Bnd::Robin::falloff"); err = Ell_CreateKey(CCTK_VARIABLE_REAL, "EllLinMetric::Bnd::Const::V0"); /* Register the variables needed to use these boundaries */ err = Ell_CreateKey(CCTK_VARIABLE_REAL, "EllLinFlat::Bnd::Robin::inf"); err = Ell_CreateKey(CCTK_VARIABLE_INT, "EllLinFlat::Bnd::Robin::falloff"); err = Ell_CreateKey(CCTK_VARIABLE_REAL, "EllLinFlat::Bnd::Const::V0"); }