| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3029 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
and for I/O method registration.
You will also need to update the I/O thorns which I will commit changes to now.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2452 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2159 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1854 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1851 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tidied include files a bit, removing a few cctk.h's, so I've introduced a few more warnings to fix
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1550 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
called at the bottm of a schedule traverse, and changed the flesh to
use the new calls. rfrTraverse is now obsolete and will be removed
soon.
Drivers may now call
int CCTK_RegisterGHExtensionScheduleTraverseGH(int handle,
int (*func)(cGH *, const char *))
to register a ScheduleTraverse function. This is precisely
equivalent to the deprecated CCTK_RegisterGHExtensionrfrTraverseGH
except the registered function now takes a string and not a
constant.
The registered function should then fill out the cGH as per normal,
and call
int CCTK_ScheduleTraverse(const char *where,
void *GH,
int (*CallFunction)(void *, cFunctionData *, void *))
with the string and GH passed in, and either NULL or a function
which takes a function pointer, a cFunctionData data structure, and a cGH.
This function, in turn, may call
int CCTK_CallFunction(void *function,
cFunctionData *fdata,
void *data)
with these arguments, or may call the function in some other way if it
desires.
This allows a driver to loop over all sub-grids at a particular level
filling out the cGH at this level of the schedule tree rather than at
the top, which was the only option available before. Unigrid
drivers should probably still fill out at the top and pass NULL down
as it's more efficient to fill out the cGH only once, but AMR or
multi-block/patch drivers can now use this mechanism.
The old CCTK_rfrTraverse routine has similarly been replaced by
int CCTK_Traverse(cGH *GH, const char *where)
which loops over all GH extensions calling their registered
ScheduleTraverseGH routines.
Tom
NB these names may change at the next naming meeting, but the
functionality should remain.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1317 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1297 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1282 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1265 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IMPORTANT: if you don't have a src/schedule directory, please
do an "update -d" or your code won't compile!
You can now create schedule groups and schedule items (other groups
or functions) IN a group. You may then schedule a group AT a
particular CCTK entry point, or inside another group.
There is a new keyword WHILE in the schedule specification. The
argument(s) to this are the full names of integer scalars, and the
item which is scheduled WHILE will be executed while this integer, or
these integers, are non-zero. Note that currently there is little
checking of the type of these scalars, 'though this will be coming
soon.
BEFORE, AFTER, or WHILE can take a list of arguments of the form
(a,b,c) to stop you having to do something like
BEFORE a BEFORE b BEFORE c
So the full format of a schedule statement is
SCHEDULE [GROUP] <name> <AT entrypoint | IN group> [BEFORE|AFTER <item | (item...)>] [WHILE <integer gridscalar>]
{
[LANG: <language>]
[COMM: <group(s)>]
[STORAGE: <groups(s)]
[TRIGGERS: <groups(s)]
} "<description>"
Note that even for a group you need to provide
{
} "<description>"
'though that may be relaxed soon.
Also TRIGGERS are now on a group basis, not on a variable basis.
So, for example, to test this I had
--------------------------------------
SCHEDULE TEST1_InitialData AT INITIAL
{
LANG: Fortran
} "Initialise"
SCHEDULE TEST1_InitialData AT EVOL
{
LANG: Fortran
} "Initialise"
SCHEDULE TEST1_Evolve IN testit
{
LANG: Fortran
} "Evolution routine"
SCHEDULE GROUP testit WHILE test1::foo_int_scalar AT EVOL AFTER TEST1_InitialData
{
} "Test a group within a group. "
---------------------------------------
where the initialisation routine set test1::foo_int_scalar to 4 and
the evolution routine decremented it. The group "testit" is redundant here
as only one thing is scheduled in it, the WHILE and AFTER could have gone
directly onto the scheduling of TEST1_Evolve.
Apart from the checking of the while stuff, the perl does a fair amount of
checking that groups exist. It doesn't yet check that a group you
are scheduling at or in exists, and neither does the C, so please check the
screen output of the final schedule tree. Checks for this an for
unreachable groups will go in, but perhaps not in the next week.
There's also some tidying up which needs to go in, but this stuff
passes all the tests that the unmodified code does.
I have also tried to make the output of the CST a bit more useful, 'though
now it's a wee bit long-winded.
Please send me comments if you want more output of various things, or would
like the current output, or how the WHILE stuff works, changed.
Tom
IMPORTANT: if you don't have a src/schedule directory, please
do an "update -d" or your code won't compile!
git-svn-id: http://svn.cactuscode.org/flesh/trunk@966 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@830 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
Internal functions are CCTKi_
Utility functions are Util_
git-svn-id: http://svn.cactuscode.org/flesh/trunk@777 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now the defaults for overloaded functions are setup before anything else, and
the the Overloading functions count the number of times they are called
and don't allow the thing to be overloaded more than twice - once for the
default, and once for people actually wanting to overload it.
Redirection now works - output is put into files like CCTK_Proc<x> where x is the
process number.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@773 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@86 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@59 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@16 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@11 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
git-svn-id: http://svn.cactuscode.org/flesh/trunk@7 17b73243-c579-4c4c-a9d2-2d5706c11dac
|