Skip to content
  • Mark OLESEN's avatar
    ENH: add read guard for dimensionedType constructors (#762) · 1cc0e66f
    Mark OLESEN authored
    - deprecate dimensionedType constructors using an Istream in favour of
      versions accepting a keyword and a dictionary.
    
      Dictionary entries are almost the exclusive means of read
      constructing a dimensionedType. By construct from the dictionary
      entry instead of doing a lookup() first, we can detect possible
      input errors such as too many tokens as a result of a input syntax
      error.
    
      Constructing a dimensionedType from a dictionary entry now has
      two forms.
    
      1.  dimensionedType(key, dims, dict);
    
          This is the constructor that will normally be used.
    
          It accepts entries with optional leading names and/or
          dimensions. If the entry contains dimensions, they are
          verified against the expected dimensions and an IOError is
          raised if they do not correspond. On conclusion, checks the
          token stream for any trailing rubbish.
    
      2.  dimensionedType(key, dict);
    
          This constructor is used less frequently.
    
          Similar to the previous description, except that it is initially
          dimensionless. If entry contains dimensions, they are used
          without further verification. The constructor also includes a
          token stream check.
    
          This constructor is useful when the dimensions are entirely
          defined from the dictionary input, but also when handling
          transition code where the input dimensions are not obvious from
          the source.
    
          This constructor can also be handy when obtaining values from
          a dictionary without needing to worry about the input dimensions.
          For example,
    
             Info<< "rho: " << dimensionedScalar("rho", dict).value() << nl;
    
          This will accept a large range of inputs without hassle.
    
    ENH: consistent handling of dimensionedType for inputs (#1083)
    
    BUG: incorrect Omega dimensions (fixes #2084)
    1cc0e66f