diff options
-rw-r--r-- | Changelog | 30 | ||||
-rw-r--r-- | README | 32 | ||||
-rw-r--r-- | Tools/CodeGen/CalculationFunction.m | 4 | ||||
-rw-r--r-- | Tools/CodeGen/KrancThorns.m | 65 |
4 files changed, 91 insertions, 40 deletions
diff --git a/Changelog b/Changelog new file mode 100644 index 0000000..e9b5582 --- /dev/null +++ b/Changelog @@ -0,0 +1,30 @@ +1.0.1-cvs +========= + +- Changed the default name for a function in an evaluator thorn to + contain the thorn name. Helps to avoid conflicts with other thorns. + +- Fixed bug whereby the name of the calculation in an evaluator thorn + was not used for the function name. + +- Added "InheritedImplementations" option to all the Kranc thorns. + +- Updated README for Cactus beta14 + +- Check the value of SetTimes for CreateSetterThorn, throw an error if + the value is not allowed (otherwise, a typo in the option fails to + create a schedule entry without any warning or error). + +- Removed (historical) dependency on "Format" package + +- Added symbols for "pow" and "exp" that used to be provided by the + Format package + +- Removed "External" directory from the paths of the examples + +- Deleted obsolete global parameters from GenericFD (stencil widths) + +1.0.0 (06-Apr-2004) +=================== + +- Initial release @@ -74,9 +74,9 @@ cvs -d :pserver:cvs_anon@cvs.cactuscode.org:/cactusdevcvs login Enter the password "anon". Check out the Cactus "flesh" from CVS. This command will check out -the beta 13 version. +the beta 14 version. - cvs -d :pserver:cvs_anon@cvs.cactuscode.org:/cactusdevcvs co -r Cactus_4_0_Beta_13 Cactus + cvs -d :pserver:cvs_anon@cvs.cactuscode.org:/cactusdevcvs co -r Cactus_4_0_Beta_14 Cactus Change into the Cactus directory: @@ -98,13 +98,17 @@ Run the program used for checking out public thorns: gmake checkout -Enter "tl" to download thorns based on a thorn list. Choose MKG.th. -Press enter to have a quiet checkout. Press q to quit the checkout -program. +Enter "arr" to download thorns by arrangement, choose default option to +download all arrangements. Press q to quit the checkout program. + +For consistency with the Cactus 4.0 Beta14 release, you need to +checkout the MoL thorns separately. Enter the Cactus/arrangements directory +and issue the command + + cvs -d :pserver:cvs_anon@cvs.cactuscode.org:/cactusdevcvs co -r Cactus_4_0_Beta_14 AlphaThorns/MoL Verify that the thorns have been downloaded into the Cactus/arrangements -directory. Any that could not be found will be skipped by the "gmake -checkout" program. These should just be the GenericFD and MKG* thorns. +directory. Linking the extra thorns into your Cactus installation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -188,6 +192,14 @@ Link the AEIThorns arrangement into your Cactus/arrangements directory: ln -s ~/Cactus/AEIThorns ~/Cactus/arrangements/AEIThorns +You also have to add the following thorns to the thornlist KrancADM.th: + +AEIThorns/Exact +CactusEinstein/ADMCoupling +CactusEinstein/CoordGauge +CactusEinstein/StaticConformal + + NB: You will need a Fortran 90 compiler to compile the Exact thorn, and several of the standard Cactus thorns needed for Einstein's equations. We recommend the Intel Fortran Compiler, version 8 as of @@ -201,9 +213,11 @@ Sascha Husa, Christiane Lechner Max Planck Institute for Gravitational Physics / Albert Einstein Institute Am Muehlenberg 1 - 14476 Golm + 14476 Potsdam Germany + http://numrel.aei.mpg.de + Ian Hinder @@ -212,3 +226,5 @@ Ian Hinder Highfield SO17 1BJ UK + + http://www.maths.soton.ac.uk/ diff --git a/Tools/CodeGen/CalculationFunction.m b/Tools/CodeGen/CalculationFunction.m index 9e678ff..42f4a0b 100644 --- a/Tools/CodeGen/CalculationFunction.m +++ b/Tools/CodeGen/CalculationFunction.m @@ -25,11 +25,11 @@ BeginPackage["sym`"]; {GridFunctions, Shorthands, Equations, t, DeclarationIncludes, LoopPreIncludes, GroupImplementations} -{INV, SQR, CUB, QAD, dot} +{INV, SQR, CUB, QAD, dot, pow, exp} EndPackage[]; -BeginPackage["CalculationFunction`", {"CodeGen`", "Format`", "sym`", "MapLookup`", "KrancGroups`"}]; +BeginPackage["CalculationFunction`", {"CodeGen`", "sym`", "MapLookup`", "KrancGroups`"}]; (* This is the only externally callable function *) CreateCalculationFunction::usage = ""; diff --git a/Tools/CodeGen/KrancThorns.m b/Tools/CodeGen/KrancThorns.m index 6412eda..235cce2 100644 --- a/Tools/CodeGen/KrancThorns.m +++ b/Tools/CodeGen/KrancThorns.m @@ -41,7 +41,7 @@ SystemNameDefault, SystemParentDirectory, ThornArrangement, ThornGroups, ThornImplementation, ThornName, ThornParameters, ThornType, Timelevels, TranslatorInCalculation, TranslatorOutCalculation, Type, UsedParameters, Value, Variables, -VariableType, Visibility, WhereTrigger}; +VariableType, Visibility, WhereTrigger, InheritedImplementations}; (* used in interface to AEI Black Hole Excision Thorns *) {ExcisionGFs, exnormx, exnormy, exnormz}; @@ -50,7 +50,7 @@ EndPackage[]; BeginPackage["KrancThorns`", - {"CodeGen`", "sym`", "Format`", "Thorn`", "MapLookup`", "KrancGroups`"}]; + {"CodeGen`", "sym`", "Thorn`", "MapLookup`", "KrancGroups`"}]; CodeGen`SetSourceLanguage["C"]; @@ -324,8 +324,8 @@ If[createExcisionCode, AppendTo[sourceFiles, molexcisionName <> ".F90"] ]; (* INTERFACE *) -inheritedImplementations = {baseImplementation, "Grid", "Boundary", "SpaceMask", - "GenericFD"}; +inheritedImplementations = Join[{baseImplementation, "Grid", "Boundary", "SpaceMask", + "GenericFD"}, lookupDefault[opts, InheritedImplementations, {}]]; includeFiles = {"Boundary.h", "Symmetry.h", "GenericFD.h"}; @@ -598,19 +598,20 @@ baseImplementation = systemName <> "Base"; setTime = lookup[opts, SetTime]; -debug = lookup[opts, DeBug]; +debug = lookup[opts, DeBug]; If[debug, Print["Debugging switched on"], Print["Debugging switched off"] ]; -allowedSetTimes = {"initial_only", "poststep_only", "initial_and_poststep"}; -If[!MemberQ[allowedSetTimes, setTime], - Module[{}, - Print["Unknown value for option SetTime: ", SetTime]; - Throw["Allowed values for option SetTime are: \"initial_only\", \"poststep -_only\" and \"initial_and_poststep\""]]]; + allowedSetTimes = {"initial_only", "poststep_only", "initial_and_poststep"}; + + If[!MemberQ[allowedSetTimes, setTime], + Module[{}, + Print["Unknown value for option SetTime: ", SetTime]; + Throw["Allowed values for option SetTime are: \"initial_only\", \"poststep_only\" and \"initial_and_poststep\""]]]; + baseParamsTrueQ = Length@realBaseParameters + Length@intBaseParameters > 0; @@ -658,7 +659,8 @@ after = If[mapContains[namedCalc, After], "" ]; (* INTERFACE *) -inheritedImplementations = {baseImplementation, "Grid", "GenericFD"}; +inheritedImplementations = Join[{baseImplementation, "Grid", "GenericFD"}, + lookupDefault[opts, InheritedImplementations, {}]]; includeFiles = {"GenericFD.h"}; @@ -888,7 +890,7 @@ ThornList = {{ThornName -> "GenericFD", ThornArrangement -> "KrancNumericalTools EvaluateParameters = {}; - +(* This is the name for the source file *) calcrhsName = thornName <> "_Eval"; precompheaderName = "precomputations.h"; @@ -898,13 +900,24 @@ newparams = {}; (* INTERFACE *) -inheritedImplementations = {baseImplementation, "Grid", "GenericFD"}; +inheritedImplementations = Join[{baseImplementation, "Grid", "GenericFD"}, + lookupDefault[opts, InheritedImplementations, {}]]; includeFiles = {"GenericFD.h"}; interface = CreateInterface[implementation, inheritedImplementations, includeFiles, newGroupInterfaceStructures]; +(* RHS CALCULATION *) + +augmentEvaluationDefinition[{gName_, calc_}] := + {gName, + augmentCalculation[calc, thornName <> "_" <> unqualifiedGroupName[gName] <> "_Eval", + implementation, groups, allParameters]}; + +augmentedEvaluationDefinitions = + Map[augmentEvaluationDefinition, evaluationDefinitions]; + (* SCHEDULE *) @@ -912,15 +925,15 @@ interface = CreateInterface[implementation, inheritedImplementations, scheduledGroups = {}; -newGroupScheduleStructure[name_] := - {Name -> unqualifiedGroupName[name] <> "_Eval", +newGroupScheduleStructure[{groupName_, calc_}] := + {Name -> lookup[calc, Name], SchedulePoint -> "at ANALYSIS", Language -> CodeGen`SOURCELANGUAGE, - TriggerGroups -> {name}, - StorageGroups -> {{Group -> name, Timelevels -> 1}}, + TriggerGroups -> {groupName}, + StorageGroups -> {{Group -> groupName, Timelevels -> 1}}, Comment -> "evaluate GFs"}; -scheduledFunctions = Map[newGroupScheduleStructure, evaluatedGroupNames]; +scheduledFunctions = Map[newGroupScheduleStructure, augmentedEvaluationDefinitions]; Print["TriggerGroups: ", evaluatedGroupNames]; @@ -953,15 +966,6 @@ startup = CreateStartupFile[thornName, thornName <> ": evaluate grid functions"] -(* RHS CALCULATION *) - -augmentEvaluationDefinition[{gName_, calc_}] := - {gName, - augmentCalculation[calc, unqualifiedGroupName[gName] <> "_Eval", - implementation, groups, allParameters]}; - -augmentedEvaluationDefinitions = - Map[augmentEvaluationDefinition, evaluationDefinitions]; evalCalcs = Map[Last, augmentedEvaluationDefinitions]; @@ -1132,7 +1136,7 @@ rhsBlock = Map[completePrimitiveGroupStruct[groupFromName[#, allGroups]] &, rhsG groupStructures = Join[evolvedBlock, primitiveBlock, rhsBlock]; -inheritedImplementations = {"Grid"}; +inheritedImplementations = Join[{"Grid"},lookupDefault[opts, InheritedImplementations, {}]]; includeFiles = {}; interface = CreateInterface[implementation, inheritedImplementations, @@ -1359,7 +1363,8 @@ precompheaderName = "precomputations.h"; (* INTERFACE *) -inheritedImplementations = {baseImplementation, "Grid", "GenericFD", "ADMBase"}; +inheritedImplementations = Join[{baseImplementation, "Grid", "GenericFD", "ADMBase"}, + lookupDefault[opts, InheritedImplementations, {}]]; includeFiles = {"GenericFD.h"}; |