Skip to content
  • Christophe Geuzaine's avatar
    Changed behaviour of DefineConstant & co for better symmetry between GetDP/Gmsh · 7616c416
    Christophe Geuzaine authored
    and Python onelab clients.
    
    WARNING WARNING WARNING: This is a major change -- all our onelab-enabled .geo
    and .pro files will need to be (slightly...) modified.
    
    What's new:
    
    1. The name of a onelab variable (in the onelab database) is no more constructed
       from the name of the corresponding GetDP/Gmsh variable. One now needs to
       specify the onelab name explicitely, using the "Name" attribute. The "Name"
       is the actual name of the parameter in the onelab database, i.e., it also
       includes the path.
       
       This makes the "Path" attribute obsolete (it has no effect anymore). The
       "Legend" attribute can still be used (and it can be useful in edge cases,
       e.g. when you want a "/" in the name of a onelab paramater), but in most
       cases it's not necessary.
    
    2. When a DefineConstant[] & co is used and no Name is given
       (e.g. DefineConstant[a=2]), no onelab parameter is created. This allows to
       provide default values to internal parameters without polluting the database.
    
    Why did we change?
    
    1. The new syntax matches what we do in Python, where specifying a name is
       mandatory (there's no way around this in Python, as onelab cannot guess the
       name of a Python variable to which a onelab parameter value will be assigned).
       
       The change will prevent common mistakes where two parameters with the same
       label actually correspond to 2 different onelab parameters, due to a change
       in local getdp/gmsh variable name (which would change the onelab name
       automatically)
    
    2. The new syntax allows to nicely decouple onelab parameters from internal
       variables with default values, that we don't want in the onelab database.
    
    
    7616c416