summaryrefslogtreecommitdiff
path: root/doc/FAQ
Commit message (Collapse)AuthorAge
* Remove stand-alone ThornGuide make targeteschnett2012-05-08
| | | | | | | | | Remove the make target that builds the stand-alone, global Thorn Guide. The configuration-specific ThornGuides and the individul ThornDocs remain. git-svn-id: http://svn.cactuscode.org/flesh/trunk@4815 17b73243-c579-4c4c-a9d2-2d5706c11dac
* document VERBOSE=yes (and that SILENT=no is now depreciated)knarf2011-10-04
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@4741 17b73243-c579-4c4c-a9d2-2d5706c11dac
* test commitknarf2010-06-02
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@4619 17b73243-c579-4c4c-a9d2-2d5706c11dac
* remove CVS headerknarf2010-06-02
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@4618 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Updating to extra items from web pagesgallen2009-01-27
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@4524 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Update contact address from AEI to LSUschnetter2008-03-20
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@4474 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Update FAQ entry about compiling Fortran thorns in the correct order.schnetter2006-06-13
| | | | | | | | | Tell people to use capabilities instead of make.configuration.defn. Update FAQ entry about detecting MPI in make.configuration.defn. git-svn-id: http://svn.cactuscode.org/flesh/trunk@4320 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Added D12: Cactus with MPI on a single processor says:tradke2004-05-01
| | | | | | | "Unable to open parameter file ..." git-svn-id: http://svn.cactuscode.org/flesh/trunk@3681 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Changed CPP to FPP in appropriate placesallen2004-03-22
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3594 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Change CPP to FPP to match the new variable nameschnetter2004-01-20
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3540 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Fix some spelling errorsschnetter2004-01-16
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3509 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Added the missing answer for question C31 (which is now C37)allen2003-12-31
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3482 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Added explanation of parameter values not changing after a callallen2003-12-23
| | | | | | | to CCTK_ParameterSet git-svn-id: http://svn.cactuscode.org/flesh/trunk@3479 17b73243-c579-4c4c-a9d2-2d5706c11dac
* > C36 (Linux) Compiling Cactus with Redhat 8 or 9 with Intel compilers my buildallen2003-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > fails in CactusBase/IOUtil because configure failed to find <sys/stat.h> > > Intel supports their compilers only for RedHat 7.x, and gives no guarantees > for their compilers to work properly with newer releases. On RH 8/9.x there > is a problem with the include order of system header files with the new > glibc (you should see this in your configuration's config.log file) and > some other header needs to be included before <sys/stat.h>. The same > problem occurs with Debian Sarge. > One way to fix this is to ask your sys admin to edit the corresponding > Intel header file, or wait until Intel provides a patch. As a starting > point, here is a diff which worked for one user ... > > --- /opt/intel/compiler70/ia32/substitute_headers/sys/stat.h~ 2003-05-09 20:45:49.000000000 +0200 > +++ /opt/intel/compiler70/ia32/substitute_headers/sys/stat.h 2003-09-23 23:26:42.000000000 +0200 > @@ -27,10 +27,17 @@ > > #include <bits/types.h> /* For __mode_t and __dev_t. */ > > -#ifdef __USE_XOPEN > -# define __need_time_t > -# include <time.h> /* For time_t. */ > +#if defined __USE_XOPEN || defined __USE_MISC > +# ifdef __USE_XOPEN > +# define __need_time_t > +# endif > +# ifdef __USE_MISC > +# define __need_timespec > +# endif > +# include <time.h> /* For time_t resp. timespec. */ > +#endif > > +#ifdef __USE_XOPEN > /* The Single Unix specification says that some more types are > available here. */ > # ifndef __dev_t_defined > git-svn-id: http://svn.cactuscode.org/flesh/trunk@3468 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Describe a problem and solution when the configure stage gets theschnetter2003-11-12
| | | | | | | Fortran name mangling wrong. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3457 17b73243-c579-4c4c-a9d2-2d5706c11dac
* C35 I started building a Cactus configuration and it asked me ifallen2003-09-27
| | | | | | | | | | | | I wanted to edit the thornlist, I pressed 'y' and then 'enter' but nothing happened? Cactus uses the program defined by the standard EDITOR environment variable as an editor at this point, check that this variable is defined and is actually a working editor. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3412 17b73243-c579-4c4c-a9d2-2d5706c11dac
* E18 Is there a way to synchronize individual grid variables in a group?allen2003-09-21
| | | | | | | | | | | | | | | | | | | | | Not at the moment. This was a design decision partly to be able to support "compact" groups of variables in the future (that is, groups where the group members at any grid point are stored contiguously in memory ... compared to the "normal" way we have now where each group member is stored as a different array). With compact groups synchronizing single members would be more computationally expensive. Currently the infrastructure is mainly built around the concept of groups of variables, and changing this would involve changes to the driver interface. E19 Is there a way to synchronize just one time level of a grid variable? Right now only one time level is sychronized, that is the "current" level. Other time levels cannot be synchronized and are assumed to be fixed or read only. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3403 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Add entryschnetter2003-08-18
| | | | | | | | | C34 How can I make sure that one file is compiled before another? For example to make sure that an F90 module file "module.F90" is available for other file "using.F90". git-svn-id: http://svn.cactuscode.org/flesh/trunk@3379 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Insert line breaks to make all lines shorter than 80 characters.schnetter2003-07-26
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3351 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Reformatted the last addition.allen2003-07-24
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3350 17b73243-c579-4c4c-a9d2-2d5706c11dac
* > B5 Tell me how I can get thorns?allen2003-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | > > The best way is to use CVS, all the Cactus thorns and most other > public community thorns are distributed this way. > > - If you already have the Cactus flesh installed and want to > install a standard Cactus thorn just type > > gmake checkout > > for a list of thorns you can then download > > - If you have a thornlist annotated with CVS information get > hold of the GetCactus script, e.g. > > wget http://www.cactuscode.org/Download/GetCactus > > and use this with your thornlist, if you already have the flesh > installed it will just checkout the thorns (the script needs to be > run in the directory above your checked out Cactus at the moment) > > GetCactus <thornlist> > git-svn-id: http://svn.cactuscode.org/flesh/trunk@3303 17b73243-c579-4c4c-a9d2-2d5706c11dac
* > C33 I'm working on a machine where a compiler problem means that Iallen2003-07-18
| | | | | | | | | | | | | | | | | | | | > need to compile a particular thorn with a lower optimisation level. > Is there an easy way to do this? > > Yes, if you want to change the optimisation for one thorn, you can > add to the make.code.defn in the thorn, e.g. > > C_OPTIMISE_FLAGS = <new flags> > CXX_OPTIMISE_FLAGS = <new flags> > F77_OPTIMISE_FLAGS = <new flags> > F90_OPTIMISE_FLAGS = <new flags> > > These flags will then only apply for the particular thorn. These flags > will be machine/compiler specific, so you only want to add them for > the problematic machine. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3302 17b73243-c579-4c4c-a9d2-2d5706c11dac
* E16 I write my thorns with C, do you have any general advice?allen2003-03-24
| | | | | | | | | | | | | | | | | | | Yes, hopefully this list will grow, but for now - don't use C++ comments (//) in C code this will cause difficulties on some platforms E17 Why is it that when I schedule more than one routine in the same thorn at ANALYSIS only the first routine is executed and the second one is ignored? Are you triggering on different variables with the two routines? If not, it doesn't matter which thorns they come from, only the first scheduled routine will be called. This is part of the special design of the ANALYSIS bin. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3190 17b73243-c579-4c4c-a9d2-2d5706c11dac
* C13 Compiling files in Cactus seems to involve three steps, preprocessing,allen2003-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compiling, and then postprocessing. What are they doing? Cactus specific preprocessing is performed for most source files, for example to expand c-preprocessor macros (e.g. DECLARE_CCTK_PARAMETERS) in .F, .F90 and .F77 files or to set correct names for calling Fortran functions in C files. At the end of the preprocessing stage the resulting source file is placed into the configs/<config>/build/<thorn> directory and if ready to be passed to the compiler. Once a file has been preprocessed, the resulting source file is compiled, with the working directory set to configs/<config>/scratch (which ensures, for example, that all F90 modules can be found by the compiler). After the file is compiled, some architectures may require postprocessing of the object files, for example,some machines don't allow the use of a "-o" flag for naming the resulting object file, in which case part of postprocessing would involve renaming and moving the file. C32 What is the Cactus c-preprocessor (Cactus cpp) ? Part of the pre-processing step for Fortran files involves the use of the C-preprocessor. On some architectures the native CPP does not correctly handle spaces in source files, and thus corrupts the resulting file. On other machines there is no native way to generate dependency information for files. In an attempt to solve these problems we have written a replacement of CPP in perl, which you may use if you configure with CPP='$${PERL} $${CCTK_HOME}/lib/sbin/cpp.pl' or in an options file without the quotes CPP=$${PERL} $${CCTK_HOME}/lib/sbin/cpp.pl The Cactus preprocessor is still being developed and improved, known problems include - only currently supports #ifdef, #if defined for a single token and not operations involving more than one token connected by && and ||, etc - problems with macros whose overall expansion contains the original macro name The Cactus make system does not use the standalone CPP to preprocess C source files, as the first step of a C compilation involves the use of a CPP (normally internal). In any case we do not recommend the use of this perl CPP to process C files, partly due to the above problems, and partly as the preprocessor does not pre-define certain symbols which the native preprocessor would.. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3179 17b73243-c579-4c4c-a9d2-2d5706c11dac
* E14 I write my thorns with Fortran, do you have any general advice.allen2003-03-17
| | | | | | | | | | | | | | | | | Yes. Read the section "Fortran Thorn Writers" in the Users Guide, and follow these general recommendations - use IMPLICIT NONE in your Cactus subroutines and functions, this will help in finding errors at compile time. E15 In my Fortran thorn the value of a Cactus integer parameter is totally wrong when I print it, but when I print it from C it is fine. Check that you remembered to add DECLARE_CCTK_PARAMETERS to the declaration area of the subroutine. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3175 17b73243-c579-4c4c-a9d2-2d5706c11dac
* E13 I want to write the value of a KEYWORD parameter in Fortran code toallen2003-03-11
| | | | | | | | | | | | | | a file, but nothing I try works. Cactus KEYWORD and STRING parameters are not stored as Fortran strings (they are pointers to C strings) so you need to convert them first. Use the routine CCTK_FortranString to copy them to a locally defined Fortran string, then you can manipulate them as usual. If you just want to print the value to the standard output there is also the routine CCTK_PrintString. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3169 17b73243-c579-4c4c-a9d2-2d5706c11dac
* F9 The documentation says that Cactus parameters are read-only, but Iallen2003-03-04
| | | | | | | | | | | | can trivially change the value of a parameter in the Fortran source code of my thorn. Although changing parameters in Fortran is possible (we haven't thought of an easy way to enforce read-only parameters) it is not supported and should not be done! git-svn-id: http://svn.cactuscode.org/flesh/trunk@3158 17b73243-c579-4c4c-a9d2-2d5706c11dac
* G2 I have a configuration with over ten thorns, but when I make theallen2003-02-19
| | | | | | | | | | | ThornGuide I only see the first few of them. It could be that the documentation in one of the thorns is not following the Cactus ThornGuide coding convention, for example see the file doc/ThornGuide/template.tex. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3149 17b73243-c579-4c4c-a9d2-2d5706c11dac
* H2 I would like to use checkpointing for a thorn which has complex gridallen2003-02-13
| | | | | | | | | | | | | | arrays. I tried to use the IOFlexIO thorn and received the error: Unsupported CCTK variable datatype 10. Is there a way to checkpoint complex variables? Yes there is: use IOHDF5 instead of IOFlexIO. The FlexIO library doesn't support a native complex datatype, and we decided not to add extra logic complex numbers in IOFlexIO. HDF5 does not have this limitation, it natively supports all Cactus datatypes. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3143 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Give and explanation and fix for the problem described in Cactus/1386:tradke2003-02-11
| | | | | | | Preprocessing DECLARE_CCTK_ARGUMENTS doesn't honour #if blocks. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3132 17b73243-c579-4c4c-a9d2-2d5706c11dac
* C31 I just want to check that one thorn compiles correctly, can I testallen2003-02-07
| | | | | | | | | | | | this without compiling all the thorns which come before it? make <config>-build BUILDLIST="<list of thorns>" builds thorns in the order they appear in the list. (Note, this does not link any thorn libraries together). git-svn-id: http://svn.cactuscode.org/flesh/trunk@3126 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Entry from Jonathan Thornburgallen2003-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E12 I'm getting wierd syntax errors in Fortran code, with an extra garbage character (often $ or &) stuck in the middle of a CCTK_INFO() or CCTK_WARN() or CCTK_EQUALS() call after it has been processed. You have probably used Fortran (either 77 or 90) line continuation in a macro call c example of broken Fortran code fragment if (CCTK_EQUALS(test,"on")) then test_state = 1 else if (CCTK_EQUALS(test, $ "off")) then test_state = 3 end if The $ is in column 6 is the Fortran 77 standard way of doing a line continuation. This doesn't work, because CCTK_EQUALS() is a macro, and macros use C lexical conventions (regardless of what language your code is written in). To continue a line in a macro, use the same technique you would in C, i.e. put a backslash ( \ ) at the end of the line to be continued (note there must *not* be any whitespace after the \ !!). For example, the above code should be written c example of valid Fortran code fragment if (CCTK_EQUALS(test,"on")) then test_state = 1 else if (CCTK_EQUALS(test, \ "off")) then test_state = 0 end if git-svn-id: http://svn.cactuscode.org/flesh/trunk@3125 17b73243-c579-4c4c-a9d2-2d5706c11dac
* E11 The functions CCTK_Exit and CCTK_Abort require cctkGH as an argument.allen2003-02-01
| | | | | | | | | | | | | | | | How can I call these functions deep inside my thorns where this pointer is not available? These routines are overloaded by a driver, and the reason for passing in a cctkGH is to allow the driver to tidy up before exiting. If the particular driver you are using allows a NULL pointer to be passed you can pass this instead of the cctkGH pointer. (The worst that will happen should be a segfault if the driver cannot handle NULL). Alternatively, you need to include a mechanism to obtain the cctkGH deep inside your thorns code. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3120 17b73243-c579-4c4c-a9d2-2d5706c11dac
* I1 The size of array parameters is specified by a integer number in theallen2003-01-27
| | | | | | | | | | param.ccl file. Why can't a parameter itself be used here? The size of the array has to be fixed at compile time to accomodate the use of parameters in Fortran thorns. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3110 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Add entry about the removal of "old" I/O parameters in the computationalallen2003-01-27
| | | | | | | toolkit git-svn-id: http://svn.cactuscode.org/flesh/trunk@3109 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Two more entriesallen2002-11-04
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3020 17b73243-c579-4c4c-a9d2-2d5706c11dac
* E8 Is there anyway to only compile certain lines of source code if aallen2002-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | particular thorn is in the compiled ThornList? Yes, but this is not a good idea for a number of reasons - it adds hidden dependencies between thorns, and can easily lead to unexpected and hard to track down behaviour when a thorn is compiled but not active - it breaks all kinds of modularity infrastructure in Cactus - the include file you need to use will cause your source code to be recompiled when other thorns change But if you insist, and accept the consequences, this is how you do it, Include the header file cctk_DefineThorn.h In your code use #ifdef ARRANGEMENTNAME_THORNNAME <your source code> #endif If appropriate, to give yourself some protection, use the function CCTK_IsThornActive to only execute the source code if the thorn was actually activated (and not just compiled in). Add a comment to your README/Documentation.tex to remind yourself, and others of what you have done. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3012 17b73243-c579-4c4c-a9d2-2d5706c11dac
* New entryallen2002-09-26
| | | | | | | | | | | | > C29 (Linux) Using the Intel Fortran compiler I get the error "/usr/bin/ld > cannot find -lintrins" on linking. > > Set the environment variable IA32ROOT to point to the location of your > Intel compiler installation (eg /opt/intel/compiler60/ia32). You will > need to reconfigure, and then try building your executable again. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3009 17b73243-c579-4c4c-a9d2-2d5706c11dac
* fixed a bit of file saving confusion in last commitallen2002-09-22
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3007 17b73243-c579-4c4c-a9d2-2d5706c11dac
* New entriesallen2002-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E6 On compiling Fortran code I get errors like "dummy argument CCTK_DIM has not been given a type", but I'm not using CCTK_DIM in the routine? Check if you have passed CCTK_ARGUMENTS in the argument list for the routine, is do you must have a line DECLARE_CCTK_ARGUMENTS in your declarations section. E7 If I have two grid array groups with identical sizes (and ghost zones, distributions, etc.), are they guaranteed to be distributed in the same way? That is, can I count on the fact that their local shapes (lsh) will be the same? It is true empirically. What if the grid arrays have different variable types or numbers of time levels? Yes to all. D10 Output to screen using the Info IO method of IOBasic doesn't work. I want to watch min/max values for 'wavetoy::phi' during a cactus run on stdout. For that, I added IOBasic::outInfo_every = 10 IOBasic::outInfo_vars = "wavetoy::phi" to my parameterfile. Thorn IOBasic is active, but I only get the iteration number and coordinate time printed to screen. You need to activate a thorn which implements the min/max reductions, for example CactusPUGH/PUGHReduce. G1 How can I build the ThornGuide documentation for single thorns or arrangements? Give the names of the thorns or arrangements on the make line, e.g. gmake ThornGuide THORNS="CactusBase/Boundary" gmake ThornGuide ARRANGEMENTS="CactusBase" git-svn-id: http://svn.cactuscode.org/flesh/trunk@3006 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Release notices are now in standard checkoutallen2002-09-22
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@3005 17b73243-c579-4c4c-a9d2-2d5706c11dac
* New entryallen2002-09-08
| | | | | | | | | | | | | | | | | | | C28 On linking I get an "unresolved text symbol" for a scheduled function called from libCactusBindings.a Check the size of the object file which was created for the source file containing this function in configs/<config>/build/<thorn>. With some compilers, making object files for complicated source files can fail because it takes too much memory, and an empty object file will be created and the make process will fail. If you continue the make process Cactus will not realise that the object file is empty. If this is what happened, touch the relevant source file and try compiling again. It may be that you will need to switch optimisations off for this file, or split up the troublesome code into smaller components. git-svn-id: http://svn.cactuscode.org/flesh/trunk@2998 17b73243-c579-4c4c-a9d2-2d5706c11dac
* FAQ for ecc on titanallen2002-09-02
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@2992 17b73243-c579-4c4c-a9d2-2d5706c11dac
* new entryallen2002-09-01
| | | | | | | | | | | D9 How do I run Cactus until a given coordinate time instead of to a given iteration number? Instead of setting cactus::cctk_itlast set cactus::cctk_final_time to the required coordinate time, and also set cactus::terminate = "time". git-svn-id: http://svn.cactuscode.org/flesh/trunk@2991 17b73243-c579-4c4c-a9d2-2d5706c11dac
* organised into sections and added all the architecture dependent stuffallen2002-08-29
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@2988 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Added entryallen2002-08-20
| | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------------- 38. When trying the new gcc 3.1.1 compiler on Linux, I received a lot of warnings about the compiler flag "-I/usr/local/include". This is because HDF5 is installed on this machine in what we would consider to be a sub-optimal place. HDF5 is preferably installed in own installation directory with (optionally) sym-links to the system directories. Cactus configurations should use the HDF5 installation directory itself. It is a matter of office debate as to whether it would be really be a good idea or not to check for and remove system directories, we can come up with pathological examples both if they are left or if they are removed. ------------------------------------------------------------------------------- git-svn-id: http://svn.cactuscode.org/flesh/trunk@2974 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Expanded 16allen2002-08-19
| | | | | | | Closes Cactus/934 git-svn-id: http://svn.cactuscode.org/flesh/trunk@2961 17b73243-c579-4c4c-a9d2-2d5706c11dac
* Clarified finding names of tagsallen2002-08-19
| | | | git-svn-id: http://svn.cactuscode.org/flesh/trunk@2960 17b73243-c579-4c4c-a9d2-2d5706c11dac
* New entryallen2002-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------------- 37. I writing a thorn, what is the difference between using "const cGH *cctkGH" and "cGH *cctkGH" for arguement declarations? And what about "const cGH* const cctkGH"? 'cGH *' is a pointer to a cGH structure which can be modified. This is necessary eg. in routines which initialize a cGH. 'const cGH *' is a pointer to a cGH structure which is marked as constant (ie. read-only). The code is not allowed to change the cGH using such a pointer. The compiler should refuse to compile it otherwise, or at least print a warning. Our policy now is to use "const cGH*" for all CCTK_ calls, and it is recommended that this is also implemented in all thorns. (It is being implemented in all the released Cactus thorns, but you may still find some exceptions). [Note: August 2002: We have still to implement const cGH* in a few CCTK_ calls, namely * calls to CCTK_Sync() * calls to CCTK_Reduce() * calls to CCTK_Interp() (the old API) and it is still a matter of debate whether the const qualifier should be used for CCTK_Sync calls.] Finally, the additional const qualifier in 'const cGH * const GH' says that the pointer variable itself cannot be changed (it's just a one-time-only assignment). For instance, no pointer arithmetic is allowed on such a pointer. In principle, one could declare all local variables as const if they aren't changed afterwards. But it's doesn't have any benefit in writing cleaner code. I think this is just overkill and using just 'const cGH *' is fine. ------------------------------------------------------------------------------- git-svn-id: http://svn.cactuscode.org/flesh/trunk@2950 17b73243-c579-4c4c-a9d2-2d5706c11dac
* 19b. What about if I only want to send a local scalar to a single processor?allen2002-07-30
| | | | | | | | | | | | This type of point-to-point communication is not possible with Cactus APIs right now. Any CCTK_Reduce*() is a global communication so far, and all processors must take part in that communication. For doing point-to-point communication you should use the appropriate API of an underlying communication layer like MPI. git-svn-id: http://svn.cactuscode.org/flesh/trunk@2936 17b73243-c579-4c4c-a9d2-2d5706c11dac