| Commit message (Collapse) | Author | Age |
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3438 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Array parameters are specified by a [number] after the parameter name, where
number must be an integer. In your parameter file you can specify them
with something like
foo::bar[9] = 99
(note it is C numbering, starting at 0).
In your source code they appear as arrays, bar() in Fortran, starting at 1,
and bar[] in C, starting at 0.
Accumulator parameters are parameters whose value is built up from the value
of other parameters. The other parameters don't need to be known about by
the thorn providing the parameter.
The syntax is:
base parameters are defined like
REAL foo "The foo parameter" accumulator=(<expression>)
{
(1:500 :: "Anything greater than 1 and less than or equal to 500"
} 72
and parameters which modify this one's value would be like
REAL foobar "The foo parameter" accumulator-base=foo::bar
{
22:65 :: "Sensible number"
} 42
<expression> is an arbitrary arithmetical expression involving the old
value of the parameter,refered to as 'x', and the parameter which is
modifying it, refered to as 'y'. E.g. x+y, x+(1/y) x*y, x+y^2, x/y,...
The expression should commute when applied twice, i.e. for expression
L(x,y), we should have
L(L(a,b),c) = L(L(a,c),b)
(This allows people to use x/y as an expression which would end up as
a/b/c = a/c/b .)
To add a value to an accumulator parameter from another implementation, you need
to USE or EXTEND that parameter first.
As a more complete example, to provide a parameter which is the sum of the
squares of other parameters, you can say
REAL squares "Sum of squares" accumulator=(x+y^2)
{
0: :: "Any non-negative number"
} 0
Then, someone in another thorn can add to your squares by saying
USES REAL squares
REAL mynumber "My number" accumulator-base=foo::squares
{
0 : 45 :: "Some numbers"
} 3
Then, when these thorns are activated, the value of foo::squares will be 9
(0 + 3^2).
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2830 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1297 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
Added @version lines to various header files.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1170 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1129 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
| |
from ParameterBindings.h to cctk_ParameterFunctions.h.
Thanks, Tom.
Thomas
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1118 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1117 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
LOGICAL will still work for now
Hopefully this will remove the confusion in Fortran with "logicals"
having integer values
git-svn-id: http://svn.cactuscode.org/flesh/trunk@977 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
Now a non-active thorn's extensions to parameters shouldn't be valid,
range checking is now done, even for strings, which must conform to
a regular expression.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@859 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@771 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@701 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
the return codes from GetParameters.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@344 17b73243-c579-4c4c-a9d2-2d5706c11dac
|