[Users] output parameter format

Erik Schnetter schnetter at cct.lsu.edu
Wed Nov 9 18:40:49 CST 2011


For public variables one needs to use the implementation name. This
makes things exchangeable; if one then uses another thorn for this
implementation, the corresponding name does not need to be changed.
For private variables one needs to use the thorn name. There is no one
name (implementation/thorn) that works for both, unless of course
thorn and implementation name are the same.

Cactus has historically been lenient here, and doesn't always enforce
this difference. I'm surprised that it does so here.

Yes, please open a ticket.

-erik

On Wed, Nov 9, 2011 at 7:28 PM, Luca Baiotti <baiotti at ile.osaka-u.ac.jp> wrote:
> Hi Erik,
>
>> The official syntax for variable names is to use the implementation
>> name for public groups and the thorn name for private groups. Not all
>
> actually why using the thorn name is allowed? In the UsersGuide there is
> mention only of implementation name + variable name.
> Where can I read about the official syntax you reported?
>
> And were you suggesting that one should be able to use thorn name + variable
> name  for all cases (private or public, array indexes or not)?
> I could open a Trac ticket for that.
>
> Luca
>
>
>> errors are detected. I assume that the special code that handles
>> vector indices for variable names doesn't allow using a thorn name for
>> a public variable.
>>
>> You could open a Trac ticket for this.
>>
>> -erik
>>
>> On Fri, Nov 4, 2011 at 4:10 AM, Luca Baiotti<baiotti at ile.osaka-u.ac.jp>
>>  wrote:
>>>
>>> Hello,
>>>
>>> the request for output of a variable in Carpet (CarpetIOBasic,
>>> CarpetIOScalar, CarpetIOASCII) can be done in a parfile as, e.g.,
>>>
>>> IOASCII::out1D_vars  = "THORN_NAME::VARIABLE_GROUP_NAME"
>>>
>>> or
>>>
>>> IOASCII::out1D_vars  = "IMPLEMENTATION_NAME::VARIABLE_GROUP_NAME"
>>>
>>> or
>>>
>>> IOASCII::out1D_vars  = "THORN_NAME::VARIABLE_NAME"
>>>
>>> or
>>>
>>> IOASCII::out1D_vars  = "IMPLEMENTATION_NAME::VARIABLE_NAME"
>>>
>>> Any of the above should work (correct me if I am wrong), but I found an
>>> exception:
>>>
>>> When requesting output as
>>>
>>> IOASCII::out1D_vars  = "TestOutput::testoutput"
>>>
>>> for a *public:* or *protected:* variable group of the type:
>>>
>>> CCTK_REAL testoutput[nvar] type=GF TimeLevels=1 Dim=3
>>> {
>>>  output
>>> } ""
>>>
>>> where nvar is an integer parameter and the thorn name is TestOutput and
>>> differs from the implementation name, Carpet complains that
>>>
>>> WARNING[L1,P0] (Cactus): CCTK_TraverseString: invalid group/variable name
>>> 'TestOutput::testoutput' in traversed string 'TestOutput::testoutput'
>>> WARNING level 0 in thorn IOUtil processor 0 host mbaiotti2-2.local
>>>  (line 140 of
>>>
>>> /Users/baiotti/Cactus.fresh-checkout/arrangements/CactusBase/IOUtil/src/Utils.c):
>>>  ->  error while parsing parameter 'IOBasic::outInfo_vars'
>>>
>>> For *private:* arrays of variables it works.
>>>
>>> I attach an example thorn and parfile.
>>>
>>> Comments?
>>>
>>> Luca
>



-- 
Erik Schnetter <schnetter at cct.lsu.edu>   http://www.cct.lsu.edu/~eschnett/


More information about the Users mailing list