Cactus 4.0
Reference Manual
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