aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog30
-rw-r--r--README32
-rw-r--r--Tools/CodeGen/CalculationFunction.m4
-rw-r--r--Tools/CodeGen/KrancThorns.m65
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
diff --git a/README b/README
index b1ebad1..363c436 100644
--- a/README
+++ b/README
@@ -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"};