Cactus 4.0
Reference Manual

PIC


Preface

This document will eventually be a complete reference manual for the Cactus Code. However, it is currently under development, so please be patient if you can’t find what you need. Please report omissions, errors, or suggestions to and of our contact addresses below, and we will try and fix them as soon as possible.

Overview of documentation

This guide covers the following topics

Part A: CCTK_* Function Reference.

Here all the CCTK_*() Cactus flesh functions which are available to thorn writers are described.

Part B: Util_* Function Reference.

Here all the Util_*() Cactus flesh functions which are available to thorn writers are described.

Part C: Appendices.

These contain a description of the Cactus Configuration Language, a glossary, and other odds and ends, such as how to use GNATS or TAGS.

Other topics to be discussed in separate documents include:

Users’ Guide

This gives a general overview of the Cactus Computational Tool Kit, including overall design/architecture, how to get/configure/compile/run it, and general discussions of the how to program in Cactus.

Relativity Thorn Guide

This will contain details about the arrangements and thorns making up the Cactus Relativity Tool Kit, one of the major motivators, and still the driving force, for the Cactus Code.

Flesh Maintainers Guide

This will contain all the gruesome details about the inner workings of Cactus, for all those who want or need to expand or maintain the core of Cactus.

Typographical Conventions

Typewriter

Is currently used for everything you type, for program names, and code extracts.

< ... >

Indicates a compulsory argument.

[ ... ]

Indicates an optional argument.

|

Indicates an exclusive or.

How to Contact Us

Please let us know of any errors or omissions in this guide, as well as suggestions for future editions. These can be reported via our bug tracking system at http://www.cactuscode.org, or via email to cactusmaint@cactuscode.org. Alternatively, write to us at

The Cactus Team
Center for Computation & Technology
216 Johnston Hall
Louisiana State University
Baton Rouge, LA 70803
USA

Acknowledgements

Hearty thanks to all those who have helped with documentation for the Cactus Code. Special thanks to those who struggled with the earliest sparse versions of this guide and sent in mistakes and suggestions, in particular John Baker, Carsten Gundlach, Ginny Hudak-David, Sai Iyer, Paul Lamping, Nancy Tran and Ed Seidel.

A  CCTK_* Functions Reference
A1 Functions Alphabetically
A2 Full Description of Functions
 CCTK_Abort
 CCTK_ActivatingThorn
 CCTK_ActiveTimeLevels
 CCTK_ArrayGroupSize
 CCTK_ArrayGroupSizeI
 CCTK_Barrier
 CCTK_ClockRegister
 CCTK_Cmplx
 CCTK_CmplxAbs
 CCTK_CmplxAdd
 CCTK_CmplxConjg
 CCTK_CmplxCos
 CCTK_CmplxDiv
 CCTK_CmplxExp
 CCTK_CmplxImag
 CCTK_CmplxLog
 CCTK_CmplxMul
 CCTK_CmplxReal
 CCTK_CmplxSin
 CCTK_CmplxSqrt
 CCTK_CmplxSub
 CCTK_CompileDate
 CCTK_CompileDateTime
 CCTK_CompileTime
 CCTK_CompiledImplementation
 CCTK_CompiledThorn
 CCTK_CoordDir
 CCTK_CoordIndex
 CCTK_CoordRange
 CCTK_CoordRegisterData
 CCTK_CoordRegisterRange
 CCTK_CoordRegisterSystem
 CCTK_CoordSystemDim
 CCTK_CoordSystemHandle
 CCTK_CoordSystemName
 CCTK_CreateDirectory
 CCTK_DecomposeName
 CCTK_DisableGroupComm
 CCTK_DisableGroupCommI
 CCTK_DisableGroupStorage
 CCTK_DisableGroupStorageI
 CCTK_EnableGroupComm
 CCTK_EnableGroupCommI
 CCTK_EnableGroupStorage
 CCTK_EnableGroupStorageI
 CCTK_Equals
 CCTK_Exit
 CCTK_FirstVarIndex
 CCTK_FirstVarIndexI
 CCTK_FortranString
 CCTK_FullName
 CCTK_GetClockName
 CCTK_GetClockResolution
 CCTK_GetClockSeconds
 CCTK_GetClockValue
 CCTK_GetClockValueI
 CCTK_GHExtension
 CCTK_GHExtensionHandle
 CCTK_GridArrayReductionOperator
 CCTK_GroupbboxGI, CCTK_GroupbboxGN
 CCTK_GroupbboxVI, CCTK_GroupbboxVN
 CCTK_GroupData
 CCTK_GroupDimFromVarI
 CCTK_GroupDimI
 CCTK_GroupDynamicData
 CCTK_GroupGhostsizesI
 CCTK_GroupgshGI, CCTK_GroupgshGN
 CCTK_GroupgshVI, CCTK_GroupgshVN
 CCTK_GroupIndex
 CCTK_GroupIndexFromVar
 CCTK_GroupIndexFromVarI
 CCTK_GrouplbndGI, CCTK_GrouplbndGN
 CCTK_GrouplbndVI, CCTK_GrouplbndVN
 CCTK_GrouplshGI, CCTK_GrouplshGN
 CCTK_GrouplshVI, CCTK_GrouplshVN
 CCTK_GroupName
 CCTK_GroupNameFromVarI
 CCTK_GroupnghostzonesGI, CCTK_GroupnghostzonesGN
 CCTK_GroupnghostzonesVI, CCTK_GroupnghostzonesVN
 CCTK_GroupSizesI
 CCTK_GroupStorageDecrease
 CCTK_GroupStorageIncrease
 CCTK_GroupTagsTable
 CCTK_GroupTagsTableI
 CCTK_GroupTypeFromVarI
 CCTK_GroupTypeI
 CCTK_GroupubndGI, CCTK_GroupubndGN
 CCTK_GroupubndVI, CCTK_GroupubndVN
 CCTK_ImpFromVarI
 CCTK_ImplementationRequires
 CCTK_ImplementationThorn
 CCTK_ImpThornList
 CCTK_INFO
 CCTK_InfoCallbackRegister
 CCTK_InterpGridArrays
 CCTK_InterpHandle
 CCTK_InterpLocalUniform
 CCTK_InterpRegisterOpLocalUniform
 CCTK_IsFunctionAliased
 CCTK_IsImplementationActive
 CCTK_IsImplementationCompiled
 CCTK_IsThornActive
 CCTK_IsThornCompiled
 CCTK_LocalArrayReduceOperator
 CCTK_LocalArrayReduceOperatorImplementation
 CCTK_LocalArrayReductionHandle
 CCTK_MaxDim
 CCTK_MaxGFDim
 CCTK_MaxTimeLevels
 CCTK_MaxTimeLevelsGI
 CCTK_MaxTimeLevelsGN
 CCTK_MaxTimeLevelsVI
 CCTK_MaxTimeLevelsVN
 CCTK_MyProc
 CCTK_nProcs
 CCTK_NullPointer
 CCTK_NumCompiledImplementations
 CCTK_NumCompiledThorns
 CCTK_NumGridArrayReductionOperators
 CCTK_NumGroups
 CCTK_NumIOMethods
 CCTK_NumLocalArrayReduceOperators
 CCTK_NumReductionArraysGloballyOperators
 CCTK_NumTimeLevels
 CCTK_NumTimerClocks
 CCTK_NumVars
 CCTK_NumVarsInGroup
 CCTK_NumVarsInGroupI
 CCTK_OutputGH
 CCTK_OutputVar
 CCTK_OutputVarAs
 CCTK_OutputVarAsByMethod
 CCTK_OutputVarByMethod
 CCTK_ParallelInit
 CCTK_ParameterData
 CCTK_ParameterGet
 CCTK_ParameterLevel
 CCTK_ParameterQueryTimesSet
 CCTK_ParameterSet
 CCTK_ParameterSetNotifyRegister
 CCTK_ParameterSetNotifyUnregister
 CCTK_ParameterValString
 CCTK_ParameterWalk
 CCTK_PARAMWARN
 CCTK_PointerTo
 CCTK_PrintGroup
 CCTK_PrintString
 CCTK_PrintVar
 CCTK_QueryGroupStorage
 CCTK_QueryGroupStorageB
 CCTK_QueryGroupStorageI
 CCTK_ReduceArraysGlobally
 CCTK_ReduceGridArrays
 CCTK_ReduceLocalArrays
 CCTK_ReductionHandle
 CCTK_RegisterBanner
 CCTK_RegisterGHExtension
 CCTK_RegisterGHExtensionInitGH
 CCTK_RegisterGHExtensionScheduleTraverseGH
 CCTK_RegisterGHExtensionSetupGH
 CCTK_RegisterGridArrayReductionOperator
 CCTK_RegisterIOMethod
 CCTK_RegisterIOMethodOutputGH
 CCTK_RegisterIOMethodOutputVarAs
 CCTK_RegisterIOMethodTimeToOutput
 CCTK_RegisterIOMethodTriggerOutput
 CCTK_RegisterLocalArrayReductionOperator
 CCTK_RegisterReduceArraysGloballyOperator
 CCTK_RegisterReductionOperator
 CCTK_SchedulePrintTimes
 CCTK_SchedulePrintTimesToFile
 CCTK_SetupGH
 CCTK_SyncGroup
 CCTK_SyncGroupI
 CCTK_SyncGroupsI
 CCTK_TerminateNext
 CCTK_TerminationReached
 CCTK_ThornImplementation
 CCTK_Timer
 CCTK_TimerCreate
 CCTK_TimerCreateData
 CCTK_TimerCreateI
 CCTK_TimerDestroy
 CCTK_TimerDestroyData
 CCTK_TimerDestroyI
 CCTK_TimerI
 CCTK_TimerReset
 CCTK_TimerResetI
 CCTK_TimerStart
 CCTK_TimerStartI
 CCTK_TimerStop
 CCTK_TimerStopI
 CCTK_VarDataPtr
 CCTK_VarDataPtrB
 CCTK_VarDataPtrI
 CCTK_VarIndex
 CCTK_VarName
 CCTK_VarTypeI
 CCTK_VarTypeSize
 CCTK_VInfo
 CCTK_VWarn
 CCTK_WARN
 CCTK_WarnCallbackRegister
B  Util_* Functions Reference
B1 Functions Alphabetically
 B1.1 Miscellaneous Functions
 B1.2 String Functions
 B1.3 Table Functions
B2 Full Descriptions of Miscellaneous Functions
 Util_CurrentDate
 Util_CurrentDateTime
 Util_CurrentTime
 Util_snprintf
 Util_vsnprintf
B3 Full Descriptions of String Functions
 Util_StrCmpi
 Util_Strdup
 Util_Strlcat
 Util_Strlcpy
 Util_StrSep
B4 Full Descriptions of Table Functions
 Util_TableClone
 Util_TableCreate
 Util_TableCreateFromString
 Util_TableDeleteKey
 Util_TableDestroy
 Util_TableGet*
 Util_TableGet*Array
 Util_TableGetGeneric
 Util_TableGetGenericArray
 Util_TableGetString
 Util_TableItAdvance
 Util_TableItClone
 Util_TableItCreate
 Util_TableItDestroy
 Util_TableItQueryIsNonNull
 Util_TableItQueryIsNull
 Util_TableItQueryKeyValueInfo
 Util_TableItQueryTableHandle
 Util_TableItResetToStart
 Util_TableItSetToKey
 Util_TableItSetToNull
 Util_TableQueryFlags
 Util_TableQueryValueInfo
 Util_TableQueryMaxKeyLength
 Util_TableQueryNKeys
 Util_TableSet*
 Util_TableSet*Array
 Util_TableSetFromString
 Util_TableSetGeneric
 Util_TableSetGenericArray
 Util_TableSetString
C  Appendices
C1 Glossary
C2 Configuration File Syntax
 C2.1 General Concepts
 C2.2 interface.ccl
 C2.3 param.ccl
 C2.4 schedule.ccl
 C2.5 configuration.ccl
C3 Utility Routines
 C3.1 Introduction
 C3.2 Key/Value Tables
C4 Schedule Bins
C5 Flesh Parameters
 C5.1 Private Parameters
 C5.2 Restricted Parameters
C6 Using TRAC
C7 Using SVN
 C7.1 Essential SVN Commands
C8 Using Tags
 C8.1 Tags with Emacs
 C8.2 Tags with vi