aboutsummaryrefslogtreecommitdiff
path: root/src/Startup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Startup.c')
-rw-r--r--src/Startup.c147
1 files changed, 129 insertions, 18 deletions
diff --git a/src/Startup.c b/src/Startup.c
index 6ec32df..722f4bb 100644
--- a/src/Startup.c
+++ b/src/Startup.c
@@ -11,26 +11,32 @@
#include <stdlib.h>
#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+#include "util_Table.h"
+
+#include "CoordBase.h"
#include "Symmetry.h"
/* the rcs ID and its dummy function to use it */
static const char *rcsid = "$Header$";
-CCTK_FILEVERSION(CactusBase_CartGrid3D_Startup_c)
+CCTK_FILEVERSION(CactusBase_CartGrid3D_Startup_c);
/********************************************************************
- ******************** External Routines ************************
+ ******************** External Prototypes **********************
********************************************************************/
void SymmetryStartup (void);
-int RegisterCartGrid3DCoords (void);
-
+int RegisterCartGrid3DCoords (CCTK_ARGUMENTS);
/********************************************************************
- ******************** Internal Routines ************************
+ ******************** Internal Prototypes **********************
********************************************************************/
static void *SetupGH (tFleshConfig *config, int convlevel, cGH *GH);
-
+/********************************************************************
+ ******************** External Routines ************************
+ ********************************************************************/
/*@@
@routine SymmetryStartup
@date Mon Mar 15 15:49:16 1999
@@ -41,6 +47,10 @@ static void *SetupGH (tFleshConfig *config, int convlevel, cGH *GH);
@enddesc
@calls CCTK_RegisterGHExtension
CCTK_RegisterGHExtensionSetupGH
+ @history
+ @endhistory
+
+ @returntype void
@@*/
void SymmetryStartup (void)
{
@@ -53,8 +63,10 @@ void SymmetryStartup (void)
@routine RegisterCartGrid3DCoords
@date
@author Gabrielle Allen
- @desc
- Routine registers the coordinates provided by CartGrid3D
+ @desc
+ Routine registers the coordinates provided by
+ CartGrid3D, using both the new and old APIs. The old
+ CCTK_ API is deprecated.
@enddesc
@calls CCTK_CoordRegisterSystem
CCTK_CoordRegisterData
@@ -64,37 +76,136 @@ void SymmetryStartup (void)
0 for success, or negative in case of errors
@endreturndesc
@@*/
-int RegisterCartGrid3DCoords (void)
+int RegisterCartGrid3DCoords (CCTK_ARGUMENTS)
{
- int nerrors;
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ int ierr, coord_system_handle, retval;
+ retval = 0;
+
+ /* Register coordinate systems */
+ ierr = Coord_SystemRegister(cctkGH, 3, "cart3d");
+ ierr += Coord_SystemRegister(cctkGH, 2, "cart2d");
+ ierr += Coord_SystemRegister(cctkGH, 1, "cart1d");
+ if (ierr < 0)
+ {
+ CCTK_WARN(0, "Error registering cartnd coordinate systems");
+ retval = ierr;
+ }
+ else
+ {
+
+ /* Register coordinates for cart3d */
+ coord_system_handle = Coord_SystemHandle(cctkGH, "cart3d");
+ if (coord_system_handle<0)
+ {
+ CCTK_VWarn(0,__LINE__,__FILE__,CCTK_THORNSTRING,
+ "Error obtaining system handle for cart3d");
+ }
+ ierr = Coord_CoordRegister(cctkGH, coord_system_handle, 1, "x");
+ ierr += Coord_CoordRegister(cctkGH, coord_system_handle, 2, "y");
+ ierr += Coord_CoordRegister(cctkGH, coord_system_handle, 3, "z");
+ if (ierr < 0)
+ {
+ CCTK_WARN(0, "Error registering cart3d coordinates");
+ retval += ierr;
+ }
+
+ /* Fill out rest of coordinate system table for cart3d */
+ ierr = Util_TableSetString(coord_system_handle, "uniform", "TYPE");
+ if (ierr < 0)
+ {
+ CCTK_WARN(1, "Error registering cart3d type");
+ retval += ierr;
+ }
+
+ /* Register coordinates for cart2d */
+ coord_system_handle = Coord_SystemHandle(cctkGH, "cart2d");
+ if (coord_system_handle<0)
+ {
+ CCTK_VWarn(0,__LINE__,__FILE__,CCTK_THORNSTRING,
+ "Error obtaining system handle for cart2d");
+ }
+ ierr = Coord_CoordRegister(cctkGH, coord_system_handle, 1, "x");
+ ierr += Coord_CoordRegister(cctkGH, coord_system_handle, 2, "y");
+ if (ierr < 0)
+ {
+ CCTK_WARN(0, "Error registering cart2d coordinates");
+ retval += ierr;
+ }
+
+ /* Fill out rest of coordinate system table for cart2d */
+ ierr = Util_TableSetString(coord_system_handle, "uniform", "TYPE");
+ if (ierr < 0)
+ {
+ CCTK_WARN(1, "Error registering cart2d type");
+ retval += ierr;
+ }
+
+ /* Register coordinate for cart1d */
+ coord_system_handle = Coord_SystemHandle(cctkGH, "cart1d");
+ if (coord_system_handle<0)
+ {
+ CCTK_VWarn(0,__LINE__,__FILE__,CCTK_THORNSTRING,
+ "Error obtaining system handle for cart1d");
+ }
+ ierr = Coord_CoordRegister(cctkGH, coord_system_handle, 1, "x");
+ if (ierr < 0)
+ {
+ CCTK_WARN(0, "Error registering cart1d coordinate");
+ retval += ierr;
+ }
+
+ /* Fill out rest of coordinate system table for cart1d */
+ ierr = Util_TableSetString(coord_system_handle, "uniform", "TYPE");
+ if (ierr < 0)
+ {
+ CCTK_WARN(1, "Error registering cart1d type");
+ retval += ierr;
+ }
+
+ /* Register cartnd as the default coordinate systems */
+ if (register_default_coordinate_systems)
+ {
+ ierr = Coord_SetDefaultSystem(cctkGH, "cart3d");
+ ierr += Coord_SetDefaultSystem(cctkGH, "cart2d");
+ ierr += Coord_SetDefaultSystem(cctkGH, "cart1d");
+ if (ierr < 0)
+ {
+ CCTK_WARN(1, "Error registering cartnd as default coordinate systems");
+ retval += ierr;
+ }
+ }
+ }
- nerrors = 0;
- CCTK_CoordRegisterSystem (3, "cart3d");
- CCTK_CoordRegisterSystem (3, "spher3d");
+ /* Register coordinates under the old API */
+ retval += CCTK_CoordRegisterSystem(3,"cart3d");
+ retval += CCTK_CoordRegisterSystem(3,"spher3d");
if (CCTK_CoordRegisterData (1, "grid::x", "x", "cart3d") < 0)
{
CCTK_WARN (1, "Problem with registering coordinate x");
- nerrors--;
+ retval--;
}
if (CCTK_CoordRegisterData (2, "grid::y", "y", "cart3d") < 0)
{
CCTK_WARN (1, "Problem with registering coordinate y");
- nerrors--;
+ retval--;
}
if (CCTK_CoordRegisterData (3, "grid::z", "z", "cart3d") < 0)
{
CCTK_WARN (1, "Problem with registering coordinate z");
- nerrors--;
+ retval--;
}
if (CCTK_CoordRegisterData (1, "grid::r", "r", "spher3d") < 0)
{
CCTK_WARN (1, "Problem with registering coordinate r");
- nerrors--;
+ retval--;
}
- return (nerrors);
+ return retval;
}