Commit Graph

1075 Commits

Author SHA1 Message Date
Mark Olesen
f73b5b629f ENH: added HashTable 'lookup' and 'retain' methods
- lookup(): with a default value (const access)
  For example,
      Map<label> something;
      value = something.lookup(key, -1);

    being equivalent to the following:

      Map<label> something;
      value = -1;  // bad value
      if (something.found(key))
      {
          value = something[key];
      }

    except that lookup also makes it convenient to handle const references.
    Eg,

      const labelList& ids = someHash.lookup(key, labelList());

- For consistency, provide a two parameter HashTable '()' operator.
  The lookup() method is, however, normally preferable when
  const-only access is to be ensured.

- retain(): the counterpart to erase(), it only retains entries
  corresponding to the listed keys.

  For example,
      HashTable<someType> largeCache;
      wordHashSet preserve = ...;

      largeCache.retain(preserve);

    being roughly equivalent to the following two-stage process,
    but with reduced overhead and typing, and fewer potential mistakes.

      HashTable<someType> largeCache;
      wordHashSet preserve = ...;

      {
          wordHashSet cull(largeCache.toc()); // all keys
          cull.erase(preserve);               // except those to preserve
          largeCache.erase(cull);             //
      }

  The HashSet &= operator and retain() are functionally equivalent,
  but retain() also works with dissimilar value types.
2017-05-11 12:25:35 +02:00
Mark Olesen
03d180724b ENH: improve HashTable iterator access and management
- provide key_iterator/const_key_iterator for all hashes,
  reuse directly for HashSet as iterator/const_iterator, respectively.

- additional keys() method for HashTable that returns a wrapped to
  a pair of begin/end const_iterators with additional size/empty
  information that allows these to be used directly by anything else
  expecting things with begin/end/size. Unfortunately does not yet
  work with std::distance().

  Example,
     for (auto& k : labelHashTable.keys())
     {
        ...
     }
2017-05-04 10:17:18 +02:00
Mark Olesen
e105e30bfb STYLE: add edge(labelPair) constructor, debug info etc. 2017-05-04 02:42:50 +02:00
Mark Olesen
f8c58bdd5c ENH: HashSet iterators operator* now return Key.
- much more useful than returning nil. Can now use with a for range:

    for (auto i : myLabelHashSet)
    {
        ...
    }
2017-05-02 01:58:38 +02:00
Mark Olesen
8f75bfbed5 ENH: add HashTable::writeKeys and HashSet::writeList
- can use the hash-set writeList in combination with FlatOutput:

  Eg, flatOutput(myHashSet);
2017-05-02 00:51:04 +02:00
Mark Olesen
c0a50dc621 ENH: improve overall consistency of the HashTable and its iterators
- previously had a mismash of const/non-const attributes on iterators
  that were confused with the attributes of the object being accessed.

- use the iterator keys() and object() methods consistently for all
  internal access of the HashTable iterators. This makes the intention
  clearer, the code easier to maintain, and protects against any
  possible changes in the definition of the operators.

- 'operator*': The standard form expected by STL libraries.
  However, for the std::map, this dereferences to a <key,value> pair,
  whereas OpenFOAM dereferences simply to <value>.

- 'operator()': OpenFOAM treats this like the 'operator*'

- adjusted the values of end() and cend() to reinterpret from nullObject
  instead of returning a static iteratorEnd() object.
  This means that C++ templates can now correctly deduce and match
  the return types from begin() and end() consistently.
  So that range-based now works.

  Eg,
      HashTable<label> table1 = ...;
      for (auto i : table1)
      {
          Info<< i << endl;
      }

  Since the 'operator*' returns hash table values, this prints all the
  values in the table.
2017-05-02 00:15:12 +02:00
Mark Olesen
0298c02b2d ENH: ensure nullObject is large enough for reinterpret
- previously occupied 1 byte. Now occupies enough to hold a pointer,
  which helps if using reinterpret_cast to something that has some
  member content.
2017-05-01 22:39:36 +02:00
Mark Olesen
805b76d4b9 ENH: support UList[labelRange] and SubList construction with labelRange
This uses a concept similar to what std::valarray and std::slice do.
A labelRange provides a convenient container for holding start/size
and lends itself to addressing 'sliced' views of lists.
For safety, the operations and constructors restricts the given input range
to a valid addressible region of the underlying list, while the labelRange
itself precludes negative sizes.

The SubList version is useful for patches or other things that have a
SubList as its parameter. Otherwise the UList [] operator will be the
more natural solution. The slices can be done with a labelRange, or
a {start,size} pair.

Examples,
     labelList list1 = identity(20);

     list1[labelRange(18,10)]  = -1;
     list1[{-20,25}] = -2;
     list1[{1000,5}] = -3;

     const labelList list2 = identity(20);
     list2[{5,10}] = -3;  // ERROR: cannot assign to const!
2017-05-01 14:01:09 +02:00
Mark Olesen
75ef6f4e50 ENH: add labelRange comparison operators and subset methods
- improve interface consistency.
2017-04-30 21:29:24 +02:00
Mark Olesen
7b427c382e ENH: add Tuple2 comparison operators, typedefs 2017-04-30 13:05:49 +02:00
Mark Olesen
c65e2e580d ENH: add some standard templates and macros into stdFoam.H
- some functionality similar to what the standary library <iterator>
  provides.

  * stdFoam::begin() and stdFoam::end() do type deduction,
    which means that many cases it is possible to manage these types
    of changes.

    For example, when managing a number of indices:
       Map<labelHashSet> lookup;

    1) Longhand:

        for
        (
            Map<labelHashSet>::const_iterator iter = lookup.begin();
            iter != lookup.end();
            ++iter
        )
        { .... }

    1b) The same, but wrapped via a macro:

        forAllConstIter(Map<labelHashSet>, lookup, iter)
        { .... }

    2) Using stdFoam begin/end templates directly

        for
        (
            auto iter = stdFoam::begin(lookup);
            iter != stdFoam::end(lookup);
            ++iter
        )
        { .... }

    2b) The same, but wrapped via a macro:

        forAllConstIters(lookup, iter)
        { .... }

Note that in many cases it is possible to simply use a range-based for.
Eg,
     labelList myList;

     for (auto val : myList)
     { ... }

     for (const auto& val : myList)
     { ... }

These however will not work with any of the OpenFOAM hash-tables,
since the standard C++ concept of an iterator would return a key,value
pair when deferencing the *iter.

The deduction methods also exhibits some slightly odd behaviour with
some PtrLists (needs some more investigation).
2017-04-29 22:28:16 +02:00
Mark Olesen
6a5ea9a2bf ENH: improve HashSet construction and assignment
- make construct from UList explicit and provide corresponding
  assignment operator.

- add construct,insert,set,assignment from FixedList.
  This is convenient when dealing with things like edges or triFaces.
2017-04-29 15:19:47 +02:00
Mark Olesen
ded105c539 STYLE: HashTable documentation
- explicitly mention the value-initialized status for the operator().
  This means that the following code will properly use an initialized
  zero.

      HashTable<label> regionCount;

      if (...)
         regionCount("region1")++;

      ... and also this;

      if (regionCount("something") > 0)
      {
          ...
      }

  Note that the OpenFOAM HashTable uses operator[] to provide read and
  write access to *existing* entries and will provoke a FatalError if
  the entry does not exist.

  The operator() provides write access to *existing* entries or will
  create the new entry as required.
  The STL hashes use operator[] for this purpose.
2017-04-29 12:27:11 +02:00
Mark Olesen
1d9b311b82 ENH: further refinement to edge methods
- more hash-like methods.
  Eg, insert/erase via lists, clear(), empty(),...

- minVertex(), maxVertex() to return the smallest/largest label used

- improved documentation, more clarification about where/how negative
  point labels are treated.
2017-04-29 12:14:46 +02:00
Andrew Heather
c9df5f9249 Merge branch 'dict-lookup' into 'develop'
Dict lookup

See merge request !105
2017-05-02 16:37:57 +01:00
Andrew Heather
1a24be6e54 Merge branch 'feature-random-numbers' into 'develop'
Updated random numbers

See merge request !107
2017-04-28 10:11:18 +01:00
Andrew Heather
7f0cc0045d ENH: Random numbers - updated dependent code from change cachedRandom->Random class 2017-04-28 09:15:52 +01:00
Mark Olesen
5514471c15 BUG: FixedList '<' operator using a template parameter (fixes #458)
- cannot use comparison of list sizes. Okay for UList, but not here.

STYLE:
- don't need two iterators for the '<' comparison, can just access
  internal storage directly
2017-04-27 01:30:50 +02:00
Mark Olesen
ffe3e0e425 ENH: allow '^' as anchor for dictionary scoping (issue #429)
- The existing ':' anchor works for rvalue substitutions
  (Eg, ${:subdict.name}), but fails for lvalues, since it is
  a punctuation token and parse stops there.
2017-04-25 11:57:21 +02:00
Mark Olesen
f2304f7c0b ENH: various enhancements for edge.
- support edge-ordering on construction, and additional methods:
  - sort(), sorted(), unitVec(), collapse()

- null constructor initializes with -1, for consistency with face,
  triFace and since it is generally much more useful that way.

- add some methods that allow edges to used somewhat more like hashes.
  - count(), found(), insert(), erase()

  Here is possible way to use that:

      edge someEdge;  // initializes with '-1' for both entries

      if (someEdge.insert(pt1))
      {
         // added a new point label
      }

      ... later

      // unmark point on edge
      someEdge.erase(pt2);

--

STYLE:

- use UList<point> instead of pointField for edge methods for flexibility.

  The pointField include is retained, however, since many other routines
  may be relying on it being included via edge.H
2017-04-23 19:25:35 +02:00
Henry Weller
c085c5df25 Merged the edgeMesh library into the meshTools library 2017-04-21 10:38:53 +01:00
Mark Olesen
f2e3c1c422 ENH: provide HashTable::iterator::found() method
- This can be used as a convenient alternative to comparing against end().
  Eg,

    dictionaryConstructorTable::iterator cstrIter =
        dictionaryConstructorTablePtr_->find(methodType);

    if (cstrIter.found())
    {
        ...
    }
  vs.
    if (cstrIter != dictionaryConstructorTablePtr_->end())
    {
        ...
    }
2017-04-11 09:55:54 +02:00
Mark Olesen
5d15a13247 STYLE: use FOAM_UTILITIES in Make/options
- consistent with use of FOAM_SOLVERS, and reduces reliance on the FOAM_APP
  env variable
2017-04-07 08:17:43 +02:00
Mark Olesen
96fd3c9367 STYLE: consistent use of LIB_SRC in Make/options
- had occasional remnant use of FOAM_SRC
2017-04-06 23:56:23 +02:00
Andrew Heather
fb724ce113 MRG: Integrated Foundation code to commit 9f37c3c 2017-03-31 15:34:28 +01:00
Mark Olesen
836d04ffc1 ENH: various general improvments to the POSIX functions
- ensure proper and sensible handling of empty names.
  Eg, isDir(""), isFile("") are no-ops, and avoid file-stat

- rmDir:
  * optional 'silent' option to suppress messages.
  * removes all possible sub-entries, instead of just giving up on
    the first problem encountered.

- reduced code duplication in etcFiles

ENH: provide WM_USER_RESOURCE_DIRNAME define (in foamVersion.H)

- this is still a hard-coded value, but at least centrally available
2017-03-30 11:45:25 +02:00
Andrew Heather
45381b1085 MRG: Integrated Foundation code to commit 19e602b 2017-03-28 11:30:10 +01:00
Andrew Heather
dcb1a95e35 MRG: Integrated Foundation code to commit 7d6845d 2017-03-23 14:33:33 +00:00
Andrew Heather
436ec1cf1f MRG: Integrated Foundation code to commit ba4dbed 2017-03-23 12:11:49 +00:00
Andrew Heather
04c3d535b0 MRG: Integrated Foundation code to commit 47bd8e1 2017-03-23 10:12:38 +00:00
Will Bainbridge
0be6269add Added robust primitive cubic/quadratic/linear equation solutions.
Applied to eigen-value calculations. Fixed repeated-eigen-value issues
in eigen-vector generation.
2017-03-22 15:11:54 +00:00
Henry Weller
96ad725a0b Updated UPstream::commsTypes to use the C++11 enum class 2017-03-10 19:54:55 +00:00
Mark Olesen
f05be160e2 BUG: dictionary entries not being properly merged/overwritten (closes #418)
STYLE: update dictionary documentation
2017-03-03 11:36:24 +01:00
Mark Olesen
9077098935 ENH: provide string removeStart, removeEnd convenience methods 2017-03-10 11:39:40 +01:00
Mark Olesen
31555346cc Merge remote-tracking branch 'origin/master' into develop 2017-03-10 13:30:39 +01:00
Mark Olesen
215349aa69 BUG: in wordRe::operator=(const keyType&)
- the regex was not being unset on assignment.
- drop unused recompile() method as being dubious
2017-03-10 13:05:35 +01:00
Mark Olesen
3d3c14cbff ENH: add inplaceUniqueSort function
- determines a unique sort order (as per uniqueOrder) and uses that to
  reorder the list and possibly truncate it.
2017-03-08 11:10:16 +01:00
Mark Olesen
b7dc6d0441 ENH: add subsetList/inplaceSubsetList functions with unary predicate
- these are suitable for use with lambda functions.

- Deprecate the unused 3-parameter version of subset/inplaceSubset.

- Deprecate initList and initListList in favour of initializer_list

STYLE: adjust some comments, remove dead code in regionSizeDistribution.C
2017-03-07 17:00:30 +01:00
Henry Weller
d2be645483 thermophysicalProperties: New base-class for liquidProperties and in the future gasProperties
Description
    Base-class for thermophysical properties of solids, liquids and gases
    providing an interface compatible with the templated thermodynamics
    packages.

liquidProperties, solidProperties and thermophysicalFunction libraries have been
combined with the new thermophysicalProperties class into a single
thermophysicalProperties library to simplify compilation and linkage of models,
libraries and applications dependent on these classes.
2017-02-18 21:53:20 +00:00
Henry Weller
c52e4b58a1 thermophysicalModels: Changed specie thermodynamics from mole to mass basis
The fundamental properties provided by the specie class hierarchy were
mole-based, i.e. provide the properties per mole whereas the fundamental
properties provided by the liquidProperties and solidProperties classes are
mass-based, i.e. per unit mass.  This inconsistency made it impossible to
instantiate the thermodynamics packages (rhoThermo, psiThermo) used by the FV
transport solvers on liquidProperties.  In order to combine VoF with film and/or
Lagrangian models it is essential that the physical propertied of the three
representations of the liquid are consistent which means that it is necessary to
instantiate the thermodynamics packages on liquidProperties.  This requires
either liquidProperties to be rewritten mole-based or the specie classes to be
rewritten mass-based.  Given that most of OpenFOAM solvers operate
mass-based (solve for mass-fractions and provide mass-fractions to sub-models it
is more consistent and efficient if the low-level thermodynamics is also
mass-based.

This commit includes all of the changes necessary for all of the thermodynamics
in OpenFOAM to operate mass-based and supports the instantiation of
thermodynamics packages on liquidProperties.

Note that most users, developers and contributors to OpenFOAM will not notice
any difference in the operation of the code except that the confusing

    nMoles     1;

entries in the thermophysicalProperties files are no longer needed or used and
have been removed in this commet.  The only substantial change to the internals
is that species thermodynamics are now "mixed" with mass rather than mole
fractions.  This is more convenient except for defining reaction equilibrium
thermodynamics for which the molar rather than mass composition is usually know.
The consequence of this can be seen in the adiabaticFlameT, equilibriumCO and
equilibriumFlameT utilities in which the species thermodynamics are
pre-multiplied by their molecular mass to effectively convert them to mole-basis
to simplify the definition of the reaction equilibrium thermodynamics, e.g. in
equilibriumCO

    // Reactants (mole-based)
    thermo FUEL(thermoData.subDict(fuelName)); FUEL *= FUEL.W();

    // Oxidant (mole-based)
    thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
    thermo N2(thermoData.subDict("N2")); N2 *= N2.W();

    // Intermediates (mole-based)
    thermo H2(thermoData.subDict("H2")); H2 *= H2.W();

    // Products (mole-based)
    thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
    thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
    thermo CO(thermoData.subDict("CO")); CO *= CO.W();

    // Product dissociation reactions

    thermo CO2BreakUp
    (
        CO2 == CO + 0.5*O2
    );

    thermo H2OBreakUp
    (
        H2O == H2 + 0.5*O2
    );

Please report any problems with this substantial but necessary rewrite of the
thermodynamic at https://bugs.openfoam.org

Henry G. Weller
CFD Direct Ltd.
2017-02-17 11:22:14 +00:00
Mark Olesen
e3d9084c62 ENH: support ASCII List output on a single-line
- Introduce writeList(Ostream&, label) method in various List classes to
  provide more flexibility and avoid hard-coded limits when deciding if a
  list is too long and should be broken up into multiple lines (ASCII only).

- The old hard-code limit (10) is retained in the operator<< versions

- This functionality is wrapped in the FlatOutput output adapter class
  and directly accessible via the 'flatOutput()' function.

Eg,
    #include "ListOps.H"
    Info<< "methods: " << flatOutput(myLongList) << endl;

    // OR

    Info<< "methods: ";
    myLongList.writeList(os) << endl;
2017-02-10 09:55:37 +01:00
Mark Olesen
9f91084eef ENH: provide word::validated() static method
- Constructs a validated word, in which all invalid characters have
  been stripped out and any leading digit is '_'-prefixed.
  Words with leading digits cause parse issues when read back later.

- Replaces previous functionally identical code from src/conversion

--
COMP: test against nullObject instead of checking address for null pointer.
2017-02-03 15:13:13 +00:00
Mark Olesen
722d23f59c ENH: additional methods/operators for boundBox (related to #196)
- Constructor for bounding box of a single point.

- add(boundBox), add(point) ...
  -> Extend box to enclose the second box or point(s).

  Eg,
      bb.add(pt);
  vs.
      bb.min() = Foam::min(bb.min(), pt);
      bb.max() = Foam::max(bb.max(), pt);

Also works with other bounding boxes.
  Eg,
      bb.add(bb2);
      // OR
      bb += bb2;
  vs.
      bb.min() = Foam::min(bb.min(), bb2.min());
      bb.max() = Foam::max(bb.max(), bb2.max());

'+=' operator allows the reduction to be used in parallel
gather/scatter operations.

A global '+' operator is not currently needed.

Note: may be useful in the future to have a 'clear()' method
that resets to a zero-sized (inverted) box.

STYLE: make many bounding box constructors explicit
2017-01-25 19:26:50 +01:00
Mark Olesen
17d76e6261 ENH: boundBox 'reduce' method (related to #196)
reduce()
- parallel reduction of min/max values.
  Reduces coding for the callers.

  Eg,
      bb.reduce();

  instead of the previous method:
      reduce(bb.min(), minOp<point>());
      reduce(bb.max(), maxOp<point>());

STYLE:

- use initializer list for creating static content
- use point::min/point::max when defining standard boxes
2017-01-25 18:52:37 +01:00
Mark Olesen
de5688e095 ENH: expose HashTable iterator object() methods
- to the referenced object via a method name, which may be clearer
  than deferencing the iterator

     [key, value] =>  iter.key(), *iter
     [key, value] =>  iter.key(), iter()
     [key, value] =>  iter.key(), iter.object()
2017-01-26 18:11:02 +01:00
Mark Olesen
2b9b2dd865 BUG: HashPtrTable has problems with null pointers (issue #395)
- print and copy operations should not be allowed to dereference a
  nullptr.
2017-01-26 18:00:33 +01:00
Henry Weller
8632583934 Removed trailing blank lines
Resolves bug-report https://bugs.openfoam.org/view.php?id=2438
2017-01-19 20:17:47 +00:00
Mark Olesen
a99143506d BUG: not incrementing when reading via singly-linked list 2017-01-24 12:59:13 +01:00
Mark Olesen
7af6fa7b67 ENH: freshen code in labelRange classes
- misc improvements in functionality.
2017-01-23 17:09:26 +01:00
Mark Olesen
934764d700 ENH: optionally eliminate duplicates on hashedWordList construction (issue #375)
- makes it easier to use as a wordHashSet replacement for situations
  where we want to avoid duplicates but retain the input order.

- support construction from HashTable, which means it works like the
  HashTable::sortedToc but with its own hashing for these keys.

- expose rehash() method for the user. There is normally no need for
  using it directly, but also no reason to lock it away as private.
2017-01-10 12:42:40 +01:00
Henry Weller
126125c185 Rationalized the keyword to specify a file name in a dictionary to 'file'
e.g. in tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T

    hot
    {
        type            externalCoupledTemperature;
        commsDir        "${FOAM_CASE}/comms";
        file            "data";
        initByExternal  yes;
        log             true;
        value           uniform 307.75; // 34.6 degC
    }

Previously both 'file' and 'fileName' were used inconsistently in different
classes and given that there is no confusion or ambiguity introduced by using
the simpler 'file' rather than 'fileName' this change simplifies the use and
maintenance of OpenFOAM.
2017-01-07 09:38:54 +00:00
Andrew Heather
fbeaad7e58 BUG: test-mesh updated to test polyMesh constructor. Fixes #372 2017-01-04 15:59:49 +00:00
Mark Olesen
2b14360662 ENH: additional startsWith(), endsWith() string methods
- As the names describe, check if the string starts or ends with a
  particular value. Always true if the given text is empty or if the
  string is identical to the given text.
2016-12-18 23:21:51 +01:00
Mark Olesen
e379720053 ENH: additional fileName methods
- add an extension to the file name
   - remove a file extension
   - check if a file name has an extension
   - check if a file name has a particular extension (as word),
     or matches a particular grouping of extensions (as wordRe).
2016-12-18 20:40:03 +01:00
Mark Olesen
b08dadff62 ENH: initializer list constructor for fileName
This slightly more convenient when working with char[] input:

     fileName file1{ "path", "name", "to", "file.ext" };
vs.  fileName file1 = fileName(path)/"name"/"to"/"file.ext";

But is a bit more efficient since it avoid most of the intermediate
copying and resizing incurred by the '/' operator.
2016-12-18 20:09:58 +01:00
Andrew Heather
30d8fc3459 ENH: Tutorial updates and clean-up 2016-12-16 13:26:28 +00:00
Mark Olesen
5f9be34a42 Merge branch 'feature-objectRegistry' into 'develop'
ENH: improve objectRegistry functionality (issue #322)

- Recursive searching for objects within a registry is now optional
  (previous it was always done).

  A recursive search effectively blocks the construction of sub-sub-registries
  if their names are 'masked' by some parent level sub-registry with
  the same name! (BUG)

- Recursive search is now turned OFF by default, which makes it consistent
  with dictionary and probably causes the least number of surprises.

----
Various new convenience methods added:

lookupObjectRef()
- returns a non-const reference.
  For example,

      volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");

  Instead of

      volScalarField& U = const_cast<volScalarField&>
      (
          mesh().lookupObject<volScalarField>("U")
      );

--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
  For example,

      const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
      if (Uptr)
      {
          const volScalarField& U = *Uptr;
          ...
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          const volScalarField& U = mesh().lookupObject<volScalarField>("U");
          ...
      }

--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
  For example,

      volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
      if (Uptr)
      {
          volScalarField& U = *Uptr;  // use as reference
          (*Uptr) = ...;              // or use directly
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          volScalarField& U = const_cast<volScalarField&>
          (
              mesh().lookupObject<volScalarField>("U")
          );
      }

--
sortedNames()
- now works with template parameters and with regular expression
  matching as well.
  For example,

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().sortedName<volScalarField>();

  Instead of

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().names<volScalarField>();
      Foam::sort(fields);

--

See merge request !83
2016-12-06 10:48:43 +00:00
Mark Olesen
92fa5a1921 ENH: improve objectRegistry functionality (issue #322)
- Recursive searching for objects within a registry is now optional
  (previous it was always done).

  A recursive search effectively blocks the construction of sub-sub-registries
  if their names are 'masked' by some parent level sub-registry with
  the same name! (BUG)

- Recursive search is now turned OFF by default, which makes it consistent
  with dictionary and probably causes the least number of surprises.

----
Various new convenience methods added:

lookupObjectRef()
- returns a non-const reference.
  For example,

      volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");

  Instead of

      volScalarField& U = const_cast<volScalarField&>
      (
          mesh().lookupObject<volScalarField>("U")
      );

--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
  For example,

      const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
      if (Uptr)
      {
          const volScalarField& U = *Uptr;
          ...
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          const volScalarField& U = mesh().lookupObject<volScalarField>("U");
          ...
      }

--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
  For example,

      volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
      if (Uptr)
      {
          volScalarField& U = *Uptr;  // use as reference
          (*Uptr) = ...;              // or use directly
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          volScalarField& U = const_cast<volScalarField&>
          (
              mesh().lookupObject<volScalarField>("U")
          );
      }

--
sortedNames()
- now works with template parameters and with regular expression
  matching as well.
  For example,

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().sortedName<volScalarField>();

  Instead of

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().names<volScalarField>();
      Foam::sort(fields);

--
2016-12-01 13:04:07 +01:00
Mark Olesen
8628ddac43 ENH: add Test-objectRegistry (issue #322)
- test clearly shows failure to insert a sub-registry when it has
  the same name as one of the parent sub-registry.
2016-12-01 12:30:38 +01:00
Mark Olesen
8563f892a9 ENH: provide a 'dimensioned' null-like constructor for dimensionedType
- The null constructor already creates a dimensionless Zero,
  but named "undefined".

  Provide an constructor for a dimensioned Zero,
  but named "0" for universal clarity to its value.
2016-12-02 08:48:01 +01:00
Andrew Heather
1f826361c6 STYLE: Consistency updates to change input of <var>Name to <var>. Fixes #306 2016-11-22 14:50:33 +00:00
Mark Olesen
95e7faf309 STYLE: use the more succinct forms for argList (issue #307)
* args[int]   vs  args.args()[int]
  * args[word]  vs  args.options()[word]
  etc.
2016-11-20 13:06:57 +01:00
Mark Olesen
a32eff4e59 ENH: ensure face, triFace and labelledTri all work consistently (issue #294)
- triFace() now initialized with '-1', which makes it behave
  equivalently to face(label).

- supply default region=0 for some labelledTri constructors.
  This allows labelledTri to work more like a triFace and makes it
  easier to use in templated methods and eases conversion from
  triFace to a labelledTri.

- labelledTri(const labelUList&) can now be used when converting
  from a face. It can have 3 values (use default region)
  or 4 values (with region).

- face, triFace, labelledTri now all support construction with
  initializer lists. This can be useful for certain types of code.
  Eg,
      triFace     f1{a, b, c};
      face        f2{a, b, c};
      labelledTri f3{a, b, c};

  Work without ambiguity.
  Also useful for templated methods:

      FaceType f{remap[a], remap[b], remap[c]};
2016-11-12 20:57:48 +01:00
Henry Weller
659076c0fa LList, SLList: Added construction from and assignment to initializer_list
SLList: now a C++11 template alias rather than a wrapper-class.
2016-08-12 10:01:41 +01:00
Henry Weller
ef720003c3 FixedList: Added void operator=(std::initializer_list<T>) 2016-08-11 22:02:05 +01:00
Henry Weller
900c804bf0 HashTable: Added void operator=(std::initializer_list<Tuple2<Key, T>>) 2016-08-11 21:41:55 +01:00
Mark Olesen
28c75d8d7d BUG: Field construct from Xfer<Field> fails (issued #298)
- Cannot pass through to underlying list constructor directly.

- As this constructor was broken, there seem to be a number of
  workarounds scattered in the code. Could revisit them in the future
  as part of code-style:

      edgeMesh(const Xfer<pointField>&, const Xfer<edgeList>&);
      CompactIOField(const IOobject&, const Xfer<Field<T>>&);
      GlobalIOField(const IOobject&, const Xfer<Field<Type>>&);
      IOField(const IOobject&, const Xfer<Field<Type>>&);
2016-11-13 14:37:40 +01:00
Mark Olesen
7c10b89a56 Merge branch 'initialier_list-updates' into 'merge-foundation'
ENH: Support more C++11 initializer lists (issue #261)

DynamicList
-----------
  - construction, assignment and append

HashSet
-------
  - construction, insert, set.
  - assignment will use the implicit List constructor

hashedWordList
--------------
  - construction, assignment
  - additional sort() and uniq() methods.
  - Readonly access to HashTable information via lookup() method.
  - NB: could avoid 'const char**' constructors in the future


Some tests are included

See merge request !67
2016-10-18 19:31:45 +01:00
Mark Olesen
1967fd3dad ENH: Support more C++11 initializer lists (issue #261)
DynamicList
-----------
  - construction, assignment and append

HashSet
-------
  - construction, insert, set.
  - assignment will use the implicit List constructor

hashedWordList
--------------
  - construction, assignment
  - additional sort() and uniq() methods.
  - Readonly access to HashTable information via lookup() method.
  - NB: could avoid 'const char**' constructors in the future
2016-10-18 20:08:37 +02:00
Mark Olesen
33d9b7e867 Add base64 encoding layer (issue #272)
- Can be attached to any currently open std::ostream.
2016-10-17 12:05:29 +02:00
Mark Olesen
2c06a905ab Cleanup endian support (closes #271)
- Place common code under OSspecific.

By including "endian.H", either one of WM_BIG_ENDIAN or WM_LITTLE_ENDIAN
will be defined.

Provides inline 32-bit and 64-bit byte swap routines that can be
used/re-used elsewhere.

The inplace memory swaps currently used by the VTK output are left for
the moment pending further cleanup of that code.
2016-10-17 12:02:01 +02:00
Andrew Heather
6823cb02ab Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-04 14:49:34 +01:00
Andrew Heather
7c106cd43e GIT: Resolved conflict 2016-10-04 09:45:46 +01:00
Mark Olesen
bbec683e42 ENH: provide list of enums for NamedEnum
- can be used to loop over all enumerations in the order of definition.
2016-09-27 12:40:17 +02:00
Andrew Heather
47eb24bed5 GIT: Resolved conflicts arising from merge with develop branch 2016-09-26 10:57:34 +01:00
mattijs
6c56d61846 ENH: fvc: instantiating 2D volVectorField 2016-09-20 17:07:30 +01:00
Andrew Heather
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
Henry Weller
8339b57255 List: Added void operator=(std::initializer_list<T>) 2016-08-09 20:36:32 +01:00
Henry Weller
076c4c6e82 HashTable: Added C++11 initializer_list constructor
e.g.
    HashTable<label, string> table1
    {
        {"kjhk", 10},
        {"kjhk2", 12}
    };

    HashTable<label, label, Hash<label>> table2
    {
        {3, 10},
        {5, 12},
        {7, 16}
    };
2016-08-05 22:30:26 +01:00
Henry Weller
2bb52eff6e Test-fileName: Added recent etcFiles.H 2016-08-05 17:25:56 +01:00
Henry Weller
58f905ff70 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
Henry Weller
7a299ed7cb FixedList: Add constructors from iterators and C++11 initializer_list using C++11 constructor delegation 2016-08-05 16:25:18 +01:00
Henry Weller
3c423d64d2 Test-List: Add demonstration of C++11 initializer list in conjunction with uniform initialization of vector
List<vector> list5
     {
         {5, 3, 1},
         {10, 2, 2},
         {8, 1, 0}
     };
2016-08-05 16:22:51 +01:00
Henry Weller
d01eb45cfc List: Reinstated construction from two iterators and added construction from an initializer list
Until C++ supports 'concepts' the only way to support construction from
two iterators is to provide a constructor of the form:

        template<class InputIterator>
        List(InputIterator first, InputIterator last);

which for some types conflicts with

        //- Construct with given size and value for all elements
        List(const label, const T&);

e.g. to construct a list of 5 scalars initialized to 0:

    List<scalar> sl(5, 0);

causes a conflict because the initialization type is 'int' rather than
'scalar'.  This conflict may be resolved by specifying the type of the
initialization value:

    List<scalar> sl(5, scalar(0));

The new initializer list contructor provides a convenient and efficient alternative
to using 'IStringStream' to provide an initial list of values:

    List<vector> list4(IStringStream("((0 1 2) (3 4 5) (6 7 8))")());

or

    List<vector> list4
    {
        vector(0, 1, 2),
        vector(3, 4, 5),
        vector(6, 7, 8)
    };
2016-08-02 09:31:41 +01:00
Henry Weller
7cbe9153b2 LUscalarMatrix: Added processor-local matrix inverse function 2016-07-17 14:44:50 +01:00
Mark Olesen
cae7ce37f5 ENH: provide formatting version of Foam::name() (issue #253)
- there are some cases in which the C-style sprintf is much more
  convenient, albeit problematic for buffer overwrites.

  Provide a formatting version of Foam::name() for language
  primitives that is buffer-safe.

  Returns a Foam::word, so that further output will be unquoted, but
  without any checking that the characters are indeed entirely valid
  word characters.

  Example use,
      i = 1234;
      s = Foam::name("%08d", i);
      produces '00001234'

  Alternative using string streams:

      std::ostringstream buf;
      buf.fill('0');
      buf << setw(8) << i;
      s = buf.str();

  Note that the format specification can also be slightly more complex:

     Foam::name("output%08d.vtk", i);
     Foam::name("timing=%.2fs", time);

It remains the caller's responsibility to ensure that the format mask
is valid.
2016-07-01 08:23:13 +02:00
Henry Weller
6a53ed41ba Doxygen documentation: Standardized the 'See also' heading 2016-06-17 17:31:34 +01:00
Mark Olesen
6d5db96ad9 ENH: subdict output with leading name (issue #255)
- Introduce dictionary::writeEntries for better code-reuse.

  Before
  ======
      os << nl << indent << "name";
      dict.write(os);

  After
  =====
      dict.write(os, "name");
2016-06-09 18:33:56 +01:00
Mark Olesen
2b5e73fbce BUG: incorrect face order/orientation in boundBox (issue #196)
- was fortunately not used anywhere previously
2016-07-28 07:00:33 +02:00
Andrew Heather
e2935fa680 Merge branch 'fix-systemcall' into 'develop'
replace system() call with vfork/exec combination (issue #185)

Tested systemCall function object, dynamicCode, but should be rechecked with IB+openmpi
@Prashant

See merge request !55
2016-07-26 15:26:00 +01:00
Andrew Heather
b460e096ae Merge branch 'feature-symlinks' into 'develop'
ENH: OSspecific - softlink handling (fixes #164)

Links are followed in most cases, with some notable exceptions:

- mv, mvBak:
  renames the link, not the underlying file/directory

- rmDir:
  remove the symlink to a directory, does not recurse into the
  underlying directory

See merge request !51
2016-07-26 15:25:33 +01:00
Mark Olesen
2f3945e6b3 STYLE: missing include in codeStream test dictionary 2016-07-15 09:05:44 +02:00
Mark Olesen
42b2086683 ENH: adapter for a list of C++ strings <-> a list of C-style strings
- Translate a list of C++ strings into C-style (argc, argv) pair.
- Translate C-style (argc, argv) pair to list of C++ strings.

Useful when interfacing to external C-code and some libraries
2016-06-16 08:22:53 +02:00
Mark Olesen
2dc31390df ENH: add some system information when outputting profiling
- basic cpuInfo (model identification, MHz, etc)
- process memInfo

- profiling is activated via the case system/controlDict by
  adding a "profiling" sub-dictionary.

  Simply add the following (everything enabled):

      profiling
      {}

  Which corresponds to the longer form:

      profiling
      {
          active      true;  // default: true
          cpuInfo     true;  // default: true
          memInfo     true;  // default: true
          sysInfo     true;  // default: true
      }

  This can be used to selectively disable any extra information
  (eg, you don't want anyone else to know what hardware was used).
2016-06-15 20:17:44 +02:00
Mark Olesen
c7b27f5af9 ENH: provide basic cpu-information
- can be useful later when trying to interpret run-times etc.

  Contains only the most basic information.
2016-06-15 12:38:46 +02:00
Mark Olesen
1452cc0827 BUG: ensight writers not catching special reserved characters (fixes #122)
- most notably the '%' which is used as a separator in places
  caused problems.

EHN: only use valid ensight file/variable names for writers

- fixed:   foamToEnsightParts, ensightSurfaceWriter
- pending: foamToEnsight

BUG: no geometry written for foamToEnsightParts with moving mesh (fixes #142)

- an incorrect path was causing the issue
2016-06-07 17:16:09 +01:00
Henry Weller
67de20df25 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
Mark Olesen
5d29b49811 BUG: UOPstream indexes out of bounds after whitespace stripping (fixes #134)
- only affects transfer of C-style string with a single character
  remaining after whitespace stripping. Test added into Test-parallel.

- Note some idiosyncrasies in the behaviour:

      send                   |    receives
    -------------------------+-------------------------
        string("a b c")      |    string "a b c"
        string("a")          |    string "a"
        "a b c"              |    word   "abc"
        'd'                  |    char   'd'
        "d"                  |    char   'd'
        "d   "               |    char   'd'
2016-06-02 09:45:04 +02:00
Henry Weller
3c053c2fe6 GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField()
These new names are more consistent and logical because:

primitiveField():
primitiveFieldRef():
    Provides low-level access to the Field<Type> (primitive field)
    without dimension or mesh-consistency checking.  This should only be
    used in the low-level functions where dimensional consistency is
    ensured by careful programming and computational efficiency is
    paramount.

internalField():
internalFieldRef():
    Provides access to the DimensionedField<Type, GeoMesh> of values on
    the internal mesh-type for which the GeometricField is defined and
    supports dimension and checking and mesh-consistency checking.
2016-04-30 21:40:09 +01:00
Henry Weller
5df2b96489 GeometricField::internalField() -> GeometricField::internalFieldRef()
Non-const access to the internal field now obtained from a specifically
named access function consistent with the new names for non-canst access
to the boundary field boundaryFieldRef() and dimensioned internal field
dimensionedInternalFieldRef().

See also commit 22f4ad32b1
2016-04-30 14:25:21 +01:00
Henry Weller
154150d710 Updated header 2016-04-29 17:18:33 +01:00
Henry Weller
c43b78e8de List: Removed unused constructor from iterators
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2074
2016-04-29 17:17:45 +01:00
Henry Weller
785cebed88 GeometricField, volFields: Added experimental member function ".v()" and perfix operator "~"
both of which return the dimensionedInternalField for volFields only.

These will be useful in FV equation source term expressions which need
not evaluate boundary conditions.
2016-04-26 20:45:53 +01:00
Henry Weller
450728ea84 Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
andy
fd9d801e2d GIT: Initial commit after latest foundation merge 2016-04-25 11:40:48 +01:00
Henry Weller
43beb06018 Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
Henry Weller
2d5ff31649 boundaryField() -> boundaryFieldRef() 2016-04-24 22:07:37 +01:00
Henry Weller
a0e86416c5 Updated header 2016-04-23 23:38:10 +01:00
Henry Weller
d8f8498c87 boundaryField() -> boundaryFieldRef() 2016-04-23 23:37:53 +01:00
Henry Weller
e47179a70d applications/test/rigidBodyDynamics/pendulumAndSpring: Another slightly more complex test 2016-04-17 15:47:03 +01:00
Henry Weller
8c6fa81eba vector::zero -> Zero 2016-04-16 18:34:41 +01:00
Henry Weller
75c7b7b239 quaternion/septernion: Added multi- quaternion/septernion averaging
Using method based on
http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20070017872.pdf
but simplified for the case where the quaternions are similar.
2016-04-16 15:59:05 +01:00
Henry Weller
23a8779379 septernion: Changed definition of the forward transformation for consistency with spatialTransform
inline Foam::vector Foam::septernion::transformPoint(const vector& v) const
{
    return r().transform(v - t());
}

Now there is a 1:1 correspondence between septernion and
spatialTransform and a septernion constructor from spatialTransform
provided.

Additionally "septernion::transform" has been renamed
"septernion::transformPoint" to clarify that it transforms coordinate
points rather than displacements or other relative vectors.
2016-04-15 11:27:18 +01:00
Henry Weller
a0170df6c1 rigidBodyDynamics: Removed quaternion counter and index: 'nw', 'wIndex'
Replaced with 'unitQuaterion()' virtual function to indicate if the
joint uses a unit quaternion to represent rotation.
2016-04-12 22:17:52 +01:00
Henry Weller
315a1baad3 rigidBodyDynamics: Simplify handling of quaternions by maintaining a unit quaternion in the joint state field 'q'
'w' is now obtained from 'v' using the relation w = sqrt(1 - |sqr(v)|)
and 'v' is stored in the joint state field 'q' and integrated in the
usual manner but corrected using quaternion transformations.
2016-04-12 21:44:34 +01:00
Henry Weller
5e6bdeea57 applications/test/rigidBodyDynamics/sphericalJoint: Test for the quaternion-based spherical joint 2016-04-12 16:37:52 +01:00
Henry Weller
985506be28 applications/test/rigidBodyDynamics/spring: Updated comment 2016-04-12 16:37:26 +01:00
Henry Weller
948add3e10 applications/test/rigidBodyDynamics/spring: Correct typo 2016-04-12 16:16:30 +01:00
Henry Weller
f51dfc37f2 rigidBodyDynamics: Simplified the interface to the solvers 2016-04-12 12:57:31 +01:00
Henry Weller
2870be400e rigidBodyDynamics/rigidBodySolvers: Added run-time selectable solvers to integrate the rigid-body motion
Currently supported solvers: symplectic, Newmark, CrankNicolson

The symplectic solver should only be used if iteration over the forces
and body-motion is not required.  Newmark and CrankNicolson both require
iteration to provide 2nd-order behavior.

See applications/test/rigidBodyDynamics/spring for an example of the
application of the Newmark solver.

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-12 11:33:20 +01:00
Henry Weller
33be0fa564 rigidBodyDynamics/rigidBodyModelState: New class to hold the motion state of the rigid-body model
This is a more convenient way of maintaining the state or multiple
states (for higher-order integration), storing, retrieving and passing
between processors.
2016-04-11 19:01:16 +01:00
Henry Weller
be567300c3 rigidBodyDynamics/restraints: Complete dictionary IO 2016-04-11 11:45:51 +01:00
Henry Weller
1f51c8a89d rigidBodyDynamics: Added support for restraints and a linear spring with damper
applications/test/rigidBodyDynamics/spring: Test of the linear spring with damper restraint
Damped simple harmonic motion of a weight on a spring is simulated and
the results compared with analytical solution

    Test-spring
    gnuplot spring.gnuplot
    evince spring.eps

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-10 23:12:07 +01:00
Henry Weller
01d503b1c0 applications/test/rigidBodyDynamics/pendulum: Cleanup 2016-04-10 23:07:23 +01:00
Henry Weller
8ca752eb79 applications/test/rigidBodyDynamics/pendulum/pendulum: Corrected joint type 2016-04-08 18:03:51 +01:00
Henry Weller
9ffaed8fd8 rigidBodyDynamics/bodies/jointBody: Special body to support elements of composite joints 2016-04-08 17:16:01 +01:00
Henry Weller
8b6fe62f88 rigidBodyModel: Added operator<<(Ostream&, const rigidBodyModel&) 2016-04-08 17:02:02 +01:00
Henry Weller
93f2f0d41a rigidBodyDynamics: Simplified the IO of bodies 2016-04-08 16:56:48 +01:00
Henry Weller
77ed073bdb rigidBodyDynamics/bodies: Complete set of clone functions to support copy construction and assignment 2016-04-07 23:04:17 +01:00
Henry Weller
0c7ce8938b rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel 2016-04-07 21:47:08 +01:00
Henry Weller
343136e6cc applications/test/rigidBodyDynamics/pendulum: Simplified using sphere constructor and body lookup by name 2016-04-04 17:08:20 +01:00
Henry Weller
e50d8ece57 applications/test/rigidBodyDynamics/pendulum: Add a test for merging bodies 2016-04-04 09:26:37 +01:00
Henry Weller
4344a73231 applications/test/rigidBodyDynamics/pendulum: Very simple test/demonstration of the rigidBodyDynamics library
Simple swinging pendulum simulation with 1-DoF.  The motion is integrated
    using a symplectic method for just over 2-periods.
2016-04-03 22:17:10 +01:00
Henry Weller
6e573ad7e8 UList: Rationalize assignment (shallow-copy vs deep-copy)
//- Disallow default shallow-copy assignment
    //
    //  Assignment of UList<T> may need to be either shallow (copy pointer)
    //  or deep (copy elements) depending on context or the particular type
    //  of list derived from UList and it is confusing and prone to error
    //  for the default assignment to be either.  The solution is to
    //  disallow default assignment and provide separate 'shallowCopy' and
    //  'deepCopy' member functions.
    void operator=(const UList<T>&) = delete;

    //- Copy the pointer held by the given UList.
    inline void shallowCopy(const UList<T>&);

    //- Copy elements of the given UList.
    void deepCopy(const UList<T>&);
2016-04-03 10:26:05 +01:00
Henry Weller
4831f8146c applications/test/Matrix/Test-Matrix.C: Corrected typo 2016-04-02 23:28:03 +01:00
Henry Weller
88bd912374 Pstream: optimisation of data exchange
Contributed by Mattijs Janssens.

1. Any non-blocking data exchange needs to know in advance the sizes to
   receive so it can size the buffer.  For "halo" exchanges this is not
   a problem since the sizes are known in advance but or all other data
   exchanges these sizes need to be exchanged in advance.

   This was previously done by having all processors send the sizes of data to
   send to the master and send it back such that all processors
   - had the same information
   - all could work out who was sending what to where and hence what needed to
     be received.

   This is now changed such that we only send the size to the
   destination processor (instead of to all as previously). This means
   that
   - the list of sizes to send is now of size nProcs v.s. nProcs*nProcs before
   - we cut out the route to the master and back by using a native MPI
     call

   It causes a small change to the API of exchange and PstreamBuffers -
   they now return the sizes of the local buffers only (a labelList) and
   not the sizes of the buffers on all processors (labelListList)

2. Reversing the order of the way in which the sending is done when
   scattering information from the master processor to the other
   processors. This is done in a tree like fashion. Each processor has a
   set of processors to receive from/ send to. When receiving it will
   first receive from the processors with the least amount of
   sub-processors (i.e. the ones which return first). When sending it
   needs to do the opposite: start sending to the processor with the
   most amount of sub-tree since this is the critical path.
2016-04-02 18:32:11 +01:00
Henry Weller
d4046bb85e LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent 'solve' interface 2016-03-24 19:13:04 +00:00
Henry Weller
e9199c6e14 QRMatrix: New class to provide QR-decomposition by Householder reflection
This development is sponsored by Carnegie Wave Energy Ltd.
2016-03-24 14:49:25 +00:00
Henry Weller
0945cfd35f LLTMatrix: New matrix form to support Cholesky decomposition
of symmetric positive-definite matrices and the solution of associated
linear systems.
2016-03-23 15:33:03 +00:00
Henry Weller
730f89dc9d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
Henry Weller
caf8776f9b SquareMatrix, SymmetricSquareMatrix: Changed the constructor from size to require only n
This avoids the need to check that the m and n dimensions are the same.
2016-03-22 14:13:48 +00:00
Henry Weller
445ce0f2ce Test-Matrix: Removed timing test 2016-03-20 19:50:23 +00:00
Henry Weller
67a51b1fdd Matrix: Added (i, j) addressing to allow support for addressing blocks of the matrix
This change brings OpenFOAM into line with the standard matrix
addressing in other C++ libraries for better interoperability.
2016-03-20 19:44:29 +00:00
Henry Weller
b4ebcd770f quaternion: Added generalized construction from and conversion to Euler-angles
The particular rotation sequence is specified via the enumeration:

    //- Euler-angle rotation sequence
    enum rotationSequence
    {
        ZYX, ZYZ, ZXY, ZXZ, YXZ, YXY, YZX, YZY, XYZ, XYX, XZY, XZX
    };

and provided as an argument to the constructor from Euler-angles

    //- Construct a quaternion given the three Euler angles:
    inline quaternion
    (
        const rotationSequence rs,
        const vector& angles
    );

and conversion to Euler-angles:

    //- Return a vector of euler angles corresponding to the
    //  specified rotation sequence
    inline vector eulerAngles(const rotationSequence rs) const;
2016-03-14 08:07:42 +00:00
Henry Weller
9a8a1c83b0 messageStream: Added DebugInfo and DebugInFunction:
DebugInfo:
    Report an information message using Foam::Info if the local debug
    switch is true

DebugInFunction:
    Report an information message using Foam::Info for FUNCTION_NAME in
    file __FILE__ at line __LINE__ if the local debug switch is true
2016-03-04 11:30:13 +00:00
Henry Weller
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
Henry Weller
f4ba71ddd0 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
Henry Weller
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
Henry Weller
04b00f4f05 pplications/test/ListOps/Make/options: Removed extraneous backslash 2016-02-08 16:33:56 +00:00
Henry Weller
fbb9f22d9d Test-PackedList1: Removed chained assigments 2016-02-08 16:30:00 +00:00
Henry Weller
968c888fc4 Rename DataEntry -> Function1
Function1 is an abstract base-class of run-time selectable unary
functions which may be composed of other Function1's allowing the user
to specify complex functions of a single scalar variable, e.g. time.
The implementations need not be a simple or continuous functions;
interpolated tables and polynomials are also supported.  In fact form of
mapping between a single scalar input and a single primitive type output
is supportable.

The primary application of Function1 is in time-varying boundary
conditions, it also used for other functions of time, e.g. injected mass
is spray simulations but is not limited to functions of time.
2016-02-08 16:18:07 +00:00
Henry Weller
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
Henry Weller
4eba393fe1 Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
Andrew Heather
f0c3e8d599 STYLE: Updated version to 'plus' 2015-12-22 23:14:17 +00:00
Andrew Heather
0e01c44129 GIT: Resolved conflict 2015-12-09 16:19:28 +00:00
Andrew Heather
8837a89237 STYLE: Updated links from openfoam.org to openfoam.com 2015-12-09 15:03:05 +00:00
Chris Greenshields
93002626c0 blockMeshDict files moved to system directory (new default location) in template cases and unit test cases 2015-11-13 16:05:59 +00:00
Henry Weller
c4d5f65a10 Completed update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-11 09:03:39 +00:00
Henry Weller
e2ef006b91 applications: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 17:53:31 +00:00
Henry Weller
78d7482e5b SolverPerformance: Complete the integration of the templated SolverPerformance<Type>
Now solvers return solver performance information for all components
with backward compatibility provided by the "max" function which created
the scalar solverPerformance from the maximum component residuals from
the SolverPerformance<Type>.

The residuals functionObject has been upgraded to support
SolverPerformance<Type> so that now the initial residuals for all
(valid) components are tabulated, e.g. for the cavity tutorial case the
residuals for p, Ux and Uy are listed vs time.

Currently the residualControl option of pimpleControl and simpleControl
is supported in backward compatibility mode (only the maximum component
residual is considered) but in the future this will be upgraded to
support convergence control for the components individually.

This development started from patches provided by Bruno Santos, See
http://www.openfoam.org/mantisbt/view.php?id=1824
2015-11-10 08:50:11 +00:00
Henry Weller
4b0c0a5278 Test-error: Updated to use test the new "...InFunction" macros 2015-11-07 16:28:13 +00:00
Henry Weller
7b5d6114ad PtrListDictionary: New form of Dictionary in which the list type is PtrList rather than a linked-list 2015-09-16 21:26:26 +01:00
Henry Weller
913103ec0a Rename circulators to be consistent with the standard OpenFOAM class naming convention 2015-08-06 16:54:47 +01:00
Henry Weller
f3f35e8f39 applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
Henry Weller
4cd1e85311 fvSchemes: Removed fluxRequired entries 2015-07-16 10:55:49 +01:00
Henry Weller
542c05adda UList, FixedList: Correct swap member function
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1787
2015-07-15 12:10:05 +01:00
Henry Weller
72300041df Removed use of the deprecated "register" keyword
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340.html
2015-06-30 10:26:44 +01:00
Henry
5aa5fe6f11 TurbulenceModels: LienCubicKE, ShihQuadraticKE and LienLeschziner models rewritten
The implementation now correspond to the definitions in the readily
available reference:

http://personalpages.manchester.ac.uk/staff/david.d.apsley/specturb.pdf

in which a large number of linear and non-linear models are presented in
a clean and consistent manner.  This has made re-implementation and
checking far easier than working from the original references which anyway
are no longer available for the LienCubicKE and ShihQuadraticKE models.
2015-03-01 17:55:16 +00:00
Henry
6e217f31c2 symmTensor: Add support for the innerSqr function
which takes the inner product of a symmTensor with itself and returns a symmTensor
2015-02-28 16:09:55 +00:00
Henry
8cd3023439 Rationalize position searching and add cell->tet decomposition as the default cell-search algorithm
Resolves issues with probes and findRefCell for meshes in which all cell face-pyramids are positive.
2015-02-25 10:57:06 +00:00
Henry
c778346c96 Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
Henry
83de811719 Updated headers 2015-02-04 16:33:02 +00:00
Henry
1f2176056b applications/test: Updated to compile with Clang-3.5 2015-02-04 16:32:36 +00:00
Henry
71fe553d85 applications/test/LduMatrix: no longer compiles and needs replacing 2015-02-04 16:31:54 +00:00
Henry
33b1bf4c87 regExp: Add support for case-insensitive patterns
From https://github.com/OpenFOAM/OpenFOAM-2.2.x/pull/1
2015-01-28 16:35:36 +00:00
Henry
2aec249647 Updated the whole of OpenFOAM to use the new templated TurbulenceModels library
The old separate incompressible and compressible libraries have been removed.

Most of the commonly used RANS and LES models have been upgraded to the
new framework but there are a few missing which will be added over the
next few days, in particular the realizable k-epsilon model.  Some of
the less common incompressible RANS models have been introduced into the
new library instantiated for incompressible flow only.  If they prove to
be generally useful they can be templated for compressible and
multiphase application.

The Spalart-Allmaras DDES and IDDES models have been thoroughly
debugged, removing serious errors concerning the use of S rather than
Omega.

The compressible instances of the models have been augmented by a simple
backward-compatible eddyDiffusivity model for thermal transport based on
alphat and alphaEff.  This will be replaced with a separate run-time
selectable thermal transport model framework in a few weeks.

For simplicity and ease of maintenance and further development the
turbulent transport and wall modeling is based on nut/nuEff rather than
mut/muEff for compressible models so that all forms of turbulence models
can use the same wall-functions and other BCs.

All turbulence model selection made in the constant/turbulenceProperties
dictionary with RAS and LES as sub-dictionaries rather than in separate
files which added huge complexity for multiphase.

All tutorials have been updated so study the changes and update your own
cases by comparison with similar cases provided.

Sorry for the inconvenience in the break in backward-compatibility but
this update to the turbulence modeling is an essential step in the
future of OpenFOAM to allow more models to be added and maintained for a
wider range of cases and physics.  Over the next weeks and months more
turbulence models will be added of single and multiphase flow, more
additional sub-models and further development and testing of existing
models.  I hope this brings benefits to all OpenFOAM users.

Henry G. Weller
2015-01-21 19:21:39 +00:00
Henry
0da35af2f4 Update headers 2015-01-12 12:34:38 +00:00
Henry
ff29093117 Incompressible turbulence models: Remove the correction of the laminar transport model
Explicitly correct laminar transport at the application level as is done in the multiphase solvers
2015-01-12 12:32:38 +00:00
Henry
a92a04f18d Updated options files for new location of radiation lnInclude directory 2015-01-11 22:27:36 +00:00
Henry
c4804e5a0b wallDist: Add support for cached wall-reflection vectors
Currently these vectors are generated at the same time as the wall-distance field
by the same run-time selected algorithm.  This will be changed so that the wall-reflection
vectors are only generated and stored if required.
2015-01-08 16:08:53 +00:00
Henry
69ff8aa4d2 wallDist: now a MeshObject cached and updated automatically with a run-time selected algorithm
When using models which require the wallDist e.g. kOmegaSST it will
request the method to be used from the wallDist sub-dictionary in
fvSchemes e.g.

wallDist
{
    method meshWave;
}

specifies the mesh-wave method as hard-coded in previous OpenFOAM versions.
2015-01-08 10:40:23 +00:00
Henry
c93f87cc7f Added support for glibc < 2.18
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1474
2015-01-04 20:13:37 +00:00
Henry
5cf6680021 Updated header 2015-01-02 19:20:50 +00:00
Henry
3588970280 LduMatrixOperations: Added support for scaling symmetric matrices
Note: non-uniform scaling of a symmetric matrix generates an asymmetric matrix
2015-01-02 19:20:19 +00:00
Henry
f4596ad247 Resolve issues relating to compilation with clang-3.5.0 2014-12-15 22:38:10 +00:00
Henry
844b283030 New version of wmake supporting out-of-tree object and dependency files 2014-12-14 21:42:18 +00:00
OpenFOAM-admin
9fb26d59d3 GIT: Repo update 2014-12-11 08:35:10 +00:00
william
98e6dc581c BUG: mantis #1373: eigen value/vector calculation now handles repeated eigen values 2014-08-28 10:54:00 +01:00
mattijs
2e99db9c22 ENH: OSspecific - softlink handling (fixes #164)
Links are followed in most cases, with some notable exceptions:

- mv, mvBak:
  renames the link, not the underlying file/directory

- rmDir:
  remove the symlink to a directory, does not recurse into the
  underlying directory
2014-04-23 15:00:00 +02:00
OpenFOAM-admin
fbb3ddf2c4 Updated for release 2.3.0 2014-02-17 10:21:46 +00:00
mattijs
80ef6e2392 ENH: hexRef8: test more 2013-12-20 16:01:18 +00:00
mattijs
1186a190aa ENH: Test-hexref8: added pointFields 2013-12-20 13:20:50 +00:00
Henry
5b7dff49e4 ODESolvers: Use the ODESystem protected data rather than pass redundant argument to solve 2013-11-09 13:53:37 +00:00
andy
ce4131ccc4 GIT: resolve conflict 2013-11-05 16:39:20 +00:00
Henry
489d295448 ODE solvers: further rationalisation and the addition of the Runge-Kutta-Fehlberg method 2013-11-02 22:48:13 +00:00
Henry
dedfb01ada Rationalisation of the ODE solvers library 2013-10-31 23:51:16 +00:00
Henry
286d6c5d29 ODE: Renamed to ODESystem
Also some additional documentation
2013-10-30 23:12:33 +00:00
mattijs
20a3d67c93 STYLE: various: small coding issues 2013-10-14 14:48:05 +01:00
mattijs
fd0f8ecedd ENH: volField test: comment 2013-10-02 16:09:08 +01:00
Henry
00db27b969 UniformField: New field type 2013-09-27 22:47:59 +01:00
laurence
259d030fed ENH: Update tests for PtrList and sort 2013-09-25 10:11:36 +01:00
mattijs
4d7eae5104 ENH: hexRef8: cleanup 2013-09-23 17:22:33 +01:00
mattijs
8d5977c186 Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2013-09-19 16:16:19 +01:00
Henry
2824e86e4f Test-volField: Corrected equation and test case to run 2013-09-19 15:09:45 +01:00
mattijs
3e4f021d10 BUG: Test-fieldMapping: correct comment 2013-09-19 14:49:26 +01:00
mattijs
a009a149b4 ENH: hexRef8: new testcase for refinement and unrefinement 2013-09-19 14:48:39 +01:00
mattijs
f101836853 BUG: Test-fieldMapping: was always inflating 2013-09-19 11:34:09 +01:00
mattijs
9a534cf76d ENH: fieldMapping: new test app 2013-09-18 17:24:57 +01:00
Henry
470553c61a Updated headers 2013-09-09 12:41:33 +01:00
Henry
51f085faa5 Rewrite of ddtPhiCorr - ddtCorr and density-weight HbyA on compressible solvers.
For DyM solvers phiAbs is replaced by Uf but this conversion is currently not complete
2013-09-09 12:41:20 +01:00
Henry
046f740f0e Renamed relativeFlux -> makeRelative and absoluteFlux -> makeAbsolute 2013-08-20 15:40:00 +01:00
Henry
b3d794ee97 TurbulenceModels: Added structure for LES model and the Smagorinsky model within this structure. 2013-08-01 17:14:42 +01:00
mattijs
db0036f34e ENH: patchRegion: test app for PatchEdgeFaceWave 2013-07-30 13:01:32 +01:00
Henry
0af5f10b63 RhoPimpleFoam: test version of rhoPimpleFoam demonstrating the new templated turbulence library 2013-07-28 18:11:04 +01:00
Henry
def7148136 applications/test/PisoFoam: test version of pisoFoam using new templated turbulence library 2013-07-28 18:09:54 +01:00
Henry
144a2b232e dimensionedType: Added missing cmpt functions 2013-07-04 10:00:44 +01:00
mattijs
f2e2ce6f91 ENH: Test-volField: patchGroup reading 2013-07-02 13:45:01 +01:00
laurence
f5bfc5d2e7 ENH: scalarMatrices: Add determinant calculation 2013-06-07 08:57:04 +01:00
mattijs
9426345a09 ENH: Test-GAMGAgglomeration: moved test into GAMGAgglomeration 2013-06-06 08:59:23 +01:00
mattijs
3c1893a8d8 Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2013-06-04 11:33:22 +01:00
mattijs
97b0a10211 ENH: Test-GAMGAgglomeration: check for region connectivity 2013-06-04 11:32:18 +01:00
laurence
399c65f963 Merge branch 'master' into feature/cvMesh 2013-05-30 10:34:49 +01:00
mattijs
2e5227a6f8 ENH: Test-ExtendedStencil: more examples 2013-05-21 15:33:17 +01:00
laurence
2c77f55d1d Merge branch 'master' into feature/cvMesh 2013-05-13 10:54:26 +01:00
mattijs
7da6784897 ENH: testDict: key substitution 2013-05-08 14:11:13 +01:00
laurence
6f9823d0de Merge branch 'master' into feature/cvMesh
Conflicts:
	src/OpenFOAM/algorithms/indexedOctree/indexedOctree.C
	src/OpenFOAM/algorithms/indexedOctree/indexedOctree.H
	src/dynamicMesh/polyMeshFilter/polyMeshFilter.C
	src/meshTools/indexedOctree/treeDataPrimitivePatch.C
	src/meshTools/indexedOctree/treeDataTriSurface.C
	src/meshTools/triSurface/triSurfaceSearch/triSurfaceSearch.C
2013-05-08 12:20:52 +01:00
mattijs
d7cadf4937 Merge remote-tracking branch 'origin/master' into feature/procAgglom
Conflicts:
	src/OpenFOAM/db/IOstreams/Pstreams/Pstream.H
	src/OpenFOAM/db/IOstreams/Pstreams/UPstream.C
	src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
	src/OpenFOAM/db/IOstreams/Pstreams/combineGatherScatter.C
	src/OpenFOAM/db/IOstreams/Pstreams/gatherScatter.C
	src/OpenFOAM/db/IOstreams/Pstreams/gatherScatterList.C
	src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaceFields/processorGAMGInterfaceField/processorGAMGInterfaceField.C
	src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaceFields/processorGAMGInterfaceField/processorGAMGInterfaceField.H
	src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/GAMGInterface/GAMGInterface.H
	src/finiteVolume/fvMesh/fvMesh.H
2013-04-23 09:41:15 +01:00
laurence
72c3da08b2 Merge branch 'master' into feature/cvMesh
Conflicts:
	applications/test/Matrix/Test-Matrix.C
	applications/utilities/mesh/generation/extrude2DMesh/extrude2DMesh/extrude2DMesh/extrude2DMesh.C
	applications/utilities/mesh/generation/extrude2DMesh/extrude2DMesh/extrude2DMesh/extrude2DMesh.H
	src/OpenFOAM/algorithms/indexedOctree/indexedOctree.C
	src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H
2013-04-05 16:09:24 +01:00
laurence
55253a89a9 ENH: Update Test-Matrix.C to check solutions for symmetric square matrices 2013-03-21 10:22:47 +00:00
andy
b45a4486b1 STYLE: Updates to erroneous copyright dates - applications 2013-03-13 09:45:16 +00:00
andy
53df4289df ENH: Consistency updates - license text abnd code formatting 2013-03-12 15:40:03 +00:00
laurence
3577b3d409 ENH: Add SymmetricSquareMatrix class and specialisations of LUDecompose and LUSolve. 2013-03-01 16:32:33 +00:00
laurence
bf07d6ba68 ENH: Add SymmetricSquareMatrix class and specialisations of LUDecompose and LUSolve. 2013-03-01 16:32:33 +00:00
mattijs
fee11f0fa5 ENH: laplacianFoam: back to solve on single processor 2013-02-22 17:26:12 +00:00
Henry
74e16d7729 Reformat "template <..." to template<"
Add support for constructing VectorSpaces from forms with lower component type,
e.g. Vector<scalar> from Vector<label>
2013-02-21 15:07:50 +00:00
Henry
31d4437e54 Reformat "template <..." to template<"
Add support for constructing VectorSpaces from forms with lower component type,
e.g. Vector<scalar> from Vector<label>
2013-02-21 15:07:27 +00:00
Henry
944b8d438b Reformat "template <..." to template<"
Add support for constructing VectorSpaces from forms with lower component type,
e.g. Vector<scalar> from Vector<label>
2013-02-21 15:07:09 +00:00
mattijs
58541c5f7b ENH: cellToCell extended stencils 2013-02-18 09:45:02 +00:00
mattijs
8036ed63c5 ENH: combining ldu addressing 2013-02-15 10:20:29 +00:00
mattijs
0b53cfa0a1 ENH: laplacian-communicators: test app 2013-02-06 14:28:31 +00:00
mattijs
ea8d290191 ENH: communicators: initial version - extended Pstream API 2013-02-04 10:17:37 +00:00
mattijs
e676f9472f ENH: parallel-communicators: user defined communicators test 2013-01-31 16:55:32 +00:00
mattijs
ed5304a6b3 ENH: Test-PointEdgeWave: patch wildcards 2013-01-28 17:05:27 +00:00
laurence
07cb342aeb Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev into feature/cvMesh
Conflicts:
	src/OpenFOAM/primitives/triad/triad.C
2013-01-28 15:17:48 +00:00
mattijs
5b0d85c3ff ENH: PatchTools: test app 2013-01-21 11:43:49 +00:00
Henry
b2656aeb81 Merge branch 'master' of ssh://dm/home/dm4/OpenFOAM/OpenFOAM-dev 2013-01-17 11:07:52 +00:00
Henry
1d2ab20eac Update formatting 2013-01-17 11:07:49 +00:00
mattijs
97910c4d4a COMP: Test apps: make compile 2013-01-17 11:06:38 +00:00
Henry
53c91b46c0 Merge branch 'master' of ssh://homedm/home/dm2/henry/OpenFOAM/OpenFOAM-dev/ 2013-01-17 10:22:37 +00:00
Henry
ef0369fed2 Test-fvc: minor enhancement 2013-01-17 10:17:14 +00:00
laurence
75a4267684 BUG: face: Revert commit 51db019 and add special test for face of size 1 2013-01-11 12:10:20 +00:00
laurence
51db019bee BUG: face: Early exit test on circulate removed.
Does not work for faces of size 1 that match
2013-01-10 10:47:47 +00:00
mattijs
49645b5926 COMP: Test-PatchEdgeFaceWave: patchdist renamed 2013-01-08 21:51:50 +00:00
laurence
c0a417355d Revert "COMP: cvMesh and cv2DMesh removed"
This reverts commit e4c1409679.
2013-01-08 10:48:45 +00:00
laurence
e4c1409679 COMP: cvMesh and cv2DMesh removed 2013-01-07 16:08:56 +00:00
laurence
4be7afde0a STYLE: Fix some typos 2012-12-11 16:38:39 +00:00
laurence
e3ae44f31f ENH: ListOps: Add reverse and rotate functions
reverseList
inplaceReverseList
rotateList
inplaceRotateList

Remove reverse function from UList and call the ListOps from the other
reverse function.
2012-12-11 16:21:07 +00:00
laurence
23f04e33b5 ENH: circulator added
circulator and const_circulator wrap around lists so that they may be
iterated over indefinitely.
2012-12-11 16:18:29 +00:00
mattijs
e8ff31f9e8 ENH: Time: use constant(), time() instead of hardcoded strings 2012-12-06 08:24:54 +00:00
Henry
e9b31afd52 applications/test/reconstruct: new test application for reconstruction 2012-11-28 14:29:42 +00:00
Henry
b0b9480573 Removed duplicate app 2012-11-18 22:47:58 +00:00
Henry
a9888b411f applications/test/ThermoMixture: New test application 2012-11-18 22:44:42 +00:00
Henry
83c61b0510 Thermodynamics: Changed internal representation of thermo properties in hConst/eConstThermo to mole-based 2012-10-30 11:04:08 +00:00
mattijs
67b1f80dc9 ENH: fvMesh: add construct from cellShape 2012-10-23 15:32:42 +01:00
mattijs
6dc4de7d3f ENH: dictionary: recursive variable expansion 2012-10-15 16:00:03 +01:00
mattijs
78a7cdf7f3 ENH: Test-dictionary: test dictionary variable expansion 2012-10-12 17:52:52 +01:00
mattijs
31afe2d5d3 ENH: symbolic units: test app 2012-10-08 09:44:08 +01:00
mattijs
dfa74d978c ENH: flowRateInletVelocity: different keywords for volumetric and mass 2012-09-20 14:21:40 +01:00
mattijs
87bab77daf ENH:dictionary: allow scoped variable lookup (using '.') 2012-09-12 09:14:43 +01:00
mattijs
c1ef233e5d ENH: pointMesh: use MeshObject form 2012-08-31 12:57:17 +01:00
mattijs
9cc4f9a923 ENH: BinSum: new summing container. Replacement for uniform-binned Histograms 2012-07-13 11:42:55 +01:00
Henry
edd01d5e6f Removed applications/test/readCHEMKINIII 2012-05-31 11:32:43 +01:00
Henry
ed293d3af1 LduMatrix: coupled solvers are now run-time selectable for solving fvMatrices by conversion of the fvMatrix/lduMatrix to LduMatrix 2012-04-27 18:16:53 +01:00
Henry
87dc042618 LduMatrix: Added support for AMI and jump conditions 2012-04-26 15:17:35 +01:00
Henry
4ff7ac3efe LduMatrix: Added support for both component-coupled and component-independent forms of PCG and PBiCG 2012-04-26 11:41:06 +01:00
Henry
4305e7dd6b PisoFoam: block-coupled U test version of pisoFoam 2012-04-25 18:20:15 +01:00
Henry
8fb6aa8811 LduMatrix: Added support for non-parallel cyclic patches 2012-04-25 18:18:31 +01:00
Henry
a3807c9dbb LduMatrix: Updated and re-committed 2012-04-20 14:01:59 +01:00
mattijs
69ee818cb7 ENH: Test-extendedStencil2.C: more test for extended stencil 2012-04-18 09:50:05 +01:00
Henry
5682987dc7 Updated headers 2012-04-17 16:49:03 +01:00
Henry
cd51a5eea3 Consistency: Changed exponent FORTRAN style 'E' to C style 'e' 2012-04-17 16:48:27 +01:00
mattijs
4fe27dffa1 ENH: tetTetOverlap: test for tet-tet overlap 2012-04-04 09:48:19 +01:00
laurence
3c6c675081 STYLE: Remove trailing whitespace 2012-03-30 08:53:47 +01:00
mattijs
903bcfc42c ENH: PrimitivePatch: construct from Xfer 2012-03-05 14:14:01 +00:00
mattijs
3febf2314b ENH: non-blocking reduce with sumOp<scalar> 2012-02-22 12:34:01 +00:00
laurence
674abd8ecd ENH: cvMesh: Add vectorTools functions, a test folder and update cvMesh 2012-01-12 16:03:48 +00:00
laurence
f29a53ecbd ENH: test: Add test for dynamicIndexedOctree 2012-02-03 15:20:57 +00:00
Henry
de7ccd8e5b tensor2D: Added specialisation for the outerProduct of Vector2D to enable outer product operation 2012-02-01 12:30:16 +00:00
laurence
69ec8b054d Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2012-01-17 10:38:04 +00:00
laurence
01f61f62bf ENH: treeDataEdge: Improved overlap accuracy of box and sphere.
Overlap of an edge with a boundBox is now evaluated using boundbox.intersect
2012-01-16 16:09:18 +00:00
mattijs
d92a8c556b Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2012-01-16 15:59:58 +00:00
mattijs
515374726f STYLE: date 2012-01-16 15:50:47 +00:00
mattijs
e2cc8830d4 ENH: tetrahedron: move slicing with plane. Removed tetPointRef.H 2012-01-16 15:48:15 +00:00
laurence
cb308ce790 ENH: Add sphere overlap function to treeDataEdge and a test. 2012-01-16 09:33:10 +00:00
laurence
154eea4496 BUG: mantis #157: swapUp/swapDown changed when considering first/last element 2012-01-11 09:48:45 +00:00
laurence
8ce75feb7a BUG: List constructor now uses deref op instead of operator()()- mantis #219 2012-01-05 12:21:31 +00:00
Henry
a78a46e7c2 symmTensor: Corrected symmTensor & symmTensor dot-product 2011-12-28 17:46:51 +00:00
mattijs
af25e71e1c ENH: patchDist: helper class to determine distance on patch to neighbouring patches 2011-12-16 11:28:44 +00:00
mattijs
4faf9f4d41 BUG: Test-readCHEMKINIII.C: missing speciesTable 2011-11-23 15:40:15 +00:00
andy
9dd55c02cb ENH: Added further ouput to volPointInterp test app 2011-11-21 13:59:42 +00:00
mattijs
e1ae53ef67 STYLE: octree: replaced by indexedOctree 2011-11-09 13:52:23 +00:00
mattijs
827cc609d7 ENH: Test-GAMGAgglomeration: additional options 2011-11-08 12:56:33 +00:00
mattijs
063d3ca9a4 ENH: Test-GAMGAgglomeration: some printing 2011-11-08 09:46:11 +00:00
mattijs
83ec8559d6 ENH: GAMGAgglomeration: test app to dump agglomeration of GAMG 2011-11-08 09:31:49 +00:00
mattijs
27d4209839 ENH: PatchEdgeFaceWave: new wave method 2011-10-17 18:31:41 +01:00
andy
8ae9569085 ENH: Multiple commits - lumped due to git index file corruption
- Re-located mapped point patches
- Updated mapped patch write
- deprecated directMapped in favour of mapped
- updated resulting dependancies - apps/libs/tuts
2011-09-09 12:05:12 +01:00
andy
4f40cdb7d7 GIT: Resolve conflict 2011-08-16 16:09:56 +01:00
Henry
c2dd153a14 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
graham
caea0aec03 Merge branch 'master' into cvm 2011-06-17 10:57:23 +01:00
OpenFOAM-admin
cedfb1b2be STYLE: Updated copyright dates 2011-06-17 10:12:36 +01:00
OpenFOAM-admin
c720299876 ENH: Reverted back to version dev 2011-06-17 10:08:20 +01:00
mattijs
4f47ff0219 STYLE: dictionaries: update version number 2011-06-10 17:22:56 +01:00
Henry
9ef2864870 Corrected constructors for clang 2011-06-09 13:45:02 +01:00
mattijs
3a5f546aeb COMP: Applications/test: clean build 2011-06-08 15:37:11 +01:00
graham
fe0f6a487a Merge branch 'master' into cvm
Conflicts:
	applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
2011-04-07 14:17:08 +01:00
mattijs
b89f6082b0 STYLE: dictionary headers 2011-04-06 20:35:56 +01:00
graham
f81c0abef7 Merge branch 'master' into cvm 2011-03-28 12:06:56 +01:00
mattijs
7faf1a5205 COMP: app/test: make test apps compile 2011-03-23 16:18:06 +00:00
mattijs
ac4aff42b5 BUG: liquid/Make/options: different library 2011-03-23 16:07:53 +00:00
Mark Olesen
2a925aeff3 ENH: support alternative values in string expansion
- syntax as per Bourne/Korn shell
      ${parameter:+altValue}

  If parameter is unset or null, nothing is substituted.
  Otherwise the \c altValue is substituted.
2011-03-18 10:12:38 +01:00
graham
1fac7b662e Merge branch 'master' into cvm
Conflicts:
	src/mesh/Allwmake
2011-03-10 13:54:43 +00:00
Mark Olesen
e8a3587df4 ENH: support file-scope 'localCode' in dynamicCode 2011-03-08 11:08:42 +01:00
Mark Olesen
97da787c69 ENH: add fileName::name(bool) for returning basename without extension 2011-03-03 13:48:04 +01:00
Mark Olesen
3b72fc3e38 ENH: support default values in string expansion
- syntax as per Bourne/Korn shell
      ${parameter:-defValue}

  If parameter is unset or null, the \c defValue is substituted.
  Otherwise, the value of parameter is substituted.
2011-03-02 14:11:30 +01:00
Mark Olesen
01ea4623f9 BUG: string expand bombed out on first unknown construct
- eg,
       "$USER $(PWD) $USER"  ->  "username $(PWD) $USER"
  instead of
       "$USER $(PWD) $USER"  ->  "username $(PWD) username"

  this is noticable in some dynamicCode usages

STYLE: consolidate all string expand code into stringOps
2011-03-02 13:46:15 +01:00
Mark Olesen
4aafea74a9 COMP: removed calcEntry bits missed in b4dae1a5ab 2011-02-24 11:35:24 +01:00
Mark Olesen
67fc6a171a ENH: use stringOps::expandDict when processing codeStream input 2011-02-23 14:22:14 +01:00
Mark Olesen
31f6d9ba5e ENH: add stringOps::expandDict 2011-02-23 13:38:57 +01:00
Mark Olesen
71d21f6de4 ENH: implement stringOps - trim, trimRight, inplaceTrim, inplaceTrimRight 2011-02-23 10:13:10 +01:00
Mark Olesen
4aa279d7bc ENH: use HashTable for mapping codeStream entries
- write intermediate code to _SHA1 directories
- add Test-codeStream
2011-02-22 12:34:20 +01:00
graham
de64877baa Merge branch 'master' into cvm
Conflicts:
	applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
	src/edgeMesh/Make/files
	src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
	src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
2011-02-17 11:20:03 +00:00
Mark Olesen
808ff1aa32 Merge remote branch 'OpenCFD/master' into olesenm 2011-02-15 16:55:05 +01:00
graham
0090ec6526 Merge branch 'master' into cvm 2011-02-14 15:39:40 +00:00
Mark Olesen
1e4d26429b Merge remote branch 'OpenCFD/master' into olesenm 2011-02-14 09:47:49 +01:00
mattijs
790146fbdb ENH: Test-syncTools.C : cannot use magSqr with point::max 2011-02-11 12:26:01 +00:00
mattijs
f5b7477722 Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev 2011-02-09 14:10:19 +00:00
Henry
c3cb632c24 Documentation: converted javadoc @ to LaTeX style \ in Doxygen code docs 2011-02-08 18:22:00 +00:00
mattijs
2adfd534db ENH: globalMeshData, mapDistribute : added pointBoundaryFaces/pointBoundaryCells 2011-02-08 16:16:50 +00:00
Mark Olesen
0f990cb447 Merge remote branch 'OpenCFD/master' into olesenm 2011-02-07 16:56:31 +01:00
Mark Olesen
ffd20770dd ENH: add (non-templated) polynomialFunction
STYLE: integrateLimits() -> integrate() for consistency with
  DataEntry/polynomial.  Rename old 'integrate', 'integrateMinus1'
  methods to 'integral', 'integralMinus1' (ie, substantive instead of
  verb for clarity).
2011-02-04 18:59:45 +01:00
mattijs
a6e8df4aa2 ENH: Test-syncTools : remove warning about transformations 2011-02-03 22:20:32 +00:00
graham
e664fe1240 Merge branch 'master' into cvm 2011-02-02 13:44:51 +00:00
andy
4634aa3ad0 Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev 2011-02-01 16:00:44 +00:00
andy
9da43d1558 STYLE: consistency - moved radiation->radiation models 2011-02-01 16:00:27 +00:00
Mark Olesen
08680b8b35 STYLE: rename Polynomial method evaluate() to value() for consistency with DataEntry
STYLE: move DataEntry to OpenFOAM/primitives/functions
2011-01-28 16:32:08 +01:00
Mark Olesen
c891e7065a Merge remote branch 'OpenCFD/master' into olesenm 2011-01-26 16:45:22 +01:00
graham
52bc7df7d7 Merge branch 'master' into cvm 2011-01-21 14:05:20 +00:00
mattijs
fe987dad11 ENH: Test-globalMeshData.C : updated to include transforms 2011-01-20 15:31:43 +00:00
mattijs
f91d99c8df STYLE: Test-Distribute : renamed for consistency 2011-01-20 15:31:09 +00:00
Mark Olesen
129695a950 STYLE: adjust executable names for some tests 2011-01-19 14:29:56 +01:00
mattijs
fc1e443116 Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev 2011-01-19 12:37:20 +00:00
graham
38f347e4e2 STYLE: Date and executable name. 2011-01-19 11:07:17 +00:00
graham
b1c7bcee4e Merge branch 'master' into cvm
Conflicts:
	applications/test/Distribution/DistributionTest.C
	applications/test/Distribution/Make/options
	src/OpenFOAM/containers/Lists/Distribution/Distribution.C
	src/OpenFOAM/containers/Lists/Distribution/Distribution.H
	src/OpenFOAM/containers/Lists/Distribution/DistributionI.H
2011-01-19 10:32:36 +00:00
graham
89619c5015 Revert "ENH: Copyright dates to allow a push."
This reverts commit c5bea5242b.
2011-01-19 10:26:24 +00:00
graham
95a8490b83 ENH: Import (probability) Distribution class and test app from cvm. 2011-01-19 10:23:48 +00:00
mattijs
a6de8e746a Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
Conflicts:
	applications/test/lduMatrix/Test-lduMatrix.C
	applications/test/lduMatrix/Test-lduMatrix2.C
	applications/test/lduMatrix/Test-lduMatrix3.C
	applications/test/parallel/Test-parallel.C
	applications/utilities/miscellaneous/foamFormatConvert/writeMeshObject.H
	bin/mpirunDebug
	etc/apps/paraview3/cshrc
	src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.H
	src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C
	src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H
	src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeTemplates.C
	src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
	src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
	src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H
	src/OpenFOAM/primitives/Pair/labelPair.H
	src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C
	src/postProcessing/functionObjects/field/streamLine/streamLineParticle.C
2011-01-17 21:40:13 +00:00
Mark Olesen
e95e9700c8 Merge remote branch 'OpenCFD/master' into olesenm 2011-01-17 10:21:58 +01:00
graham
2398804708 ENH: change point to vector. 2011-01-14 19:37:05 +00:00
andy
eaef8d482b STYLE: Updated 1991 start copyright year to 2004 2011-01-14 16:08:00 +00:00
mattijs
7a01f5c12c ENH: mapDistribute : added transforms 2011-01-07 17:01:17 +00:00
graham
c5bea5242b ENH: Copyright dates to allow a push. 2011-01-07 15:09:52 +00:00
graham
2135f644d1 Merge branch 'master' into cvm 2011-01-07 14:50:43 +00:00
andy
14d1300a36 Revert "STyLE: More 2011 copyright dates (non-code)."
This reverts commit 2e1e671d96.
2011-01-05 18:25:32 +00:00
andy
099cc39e2e Revert "STYLE: 2011 copyright date."
This reverts commit b18f6cc1ce.
2011-01-05 18:24:29 +00:00
graham
400adf753a ENH: Removed test app -> nonRelease. 2011-01-05 13:14:15 +00:00
graham
8c04b4e692 Merge branch 'master' into cvm
Conflicts:
	src/OpenFOAM/meshes/boundBox/boundBox.H
2011-01-05 11:53:37 +00:00
graham
2e1e671d96 STyLE: More 2011 copyright dates (non-code). 2011-01-05 11:48:24 +00:00
graham
b18f6cc1ce STYLE: 2011 copyright date. 2011-01-05 11:14:26 +00:00
Mark Olesen
5d18583101 ENH: collect arch-specific directly under platforms/
- platforms/WM_OPTIONS/lib
      old: lib/WM_OPTIONS

- platforms/WM_OPTIONS/bin
      old: bin/WM_OPTIONS
      old: applications/bin/WM_OPTIONS

A runtime environment nows needs
    - bin/
    - etc/
    - platforms/
2011-01-05 08:49:42 +01:00
Mark Olesen
881b3dafa2 Merge remote branch 'OpenCFD/master' into olesenm
Conflicts:
	applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
	applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/createShellMesh.C
	applications/utilities/surface/surfaceCheck/surfaceCheck.C
	src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.C
	src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.C
	src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.C

NOTE: also needed to strip trailing space/lines in various files
2010-12-21 10:19:53 +01:00
Mark Olesen
43ec00e50c COMP: avoid ambiguous construct from tmp - test/ utils/
- missed these on the first sweep
2010-12-21 09:46:55 +01:00
graham
aa15f4479c ENH: Transferring momentOfInertia calc from utils to meshTools lib.
Adding mesh cell inertia calc.
2010-12-15 17:46:15 +00:00
graham
1f20976f2a ENH: Transferring momentOfInertia calc from utils to meshTools lib.
Adding mesh cell inertia calc.
2010-12-15 17:46:15 +00:00
Mark Olesen
3aa49fef5e ENH: first version of labelRange, labelRanges
- an opaque means of handling ranges of labels
2010-12-13 11:51:49 +01:00
graham
44be359294 Merge branch 'master' into cvm 2010-12-07 16:11:09 +00:00
Mark Olesen
a00ec1562a Merge remote branch 'OpenCFD/master' into olesenm 2010-12-07 15:20:19 +01:00
Mark Olesen
f367ee2ece ENH: add 'flip()' in-place method to edge, face, triFace 2010-12-07 08:58:31 +01:00
mattijs
731f523188 ENH: mapDistribute : cleanup 2010-12-06 15:54:45 +00:00
graham
837bb5847b ENH: parallel output. 2010-12-03 17:21:25 +00:00
graham
d9a7a0229e STYLE: filename typo. 2010-12-03 16:23:31 +00:00
graham
27088becf1 BUG: Default parameter should be a scalar. 2010-12-03 16:21:45 +00:00
graham
a21a56ccda ENH: read cell centre relaxation to centroid for high deltaCoeffs. 2010-12-03 16:16:12 +00:00
graham
6c0a58e44a ENH: Distribution calculation for deltaCoeffs. 2010-12-02 11:09:53 +00:00
graham
57cc05fe7d BUG: Report deltaCoeffs in parallel. 2010-12-02 10:41:40 +00:00
graham
7bcd64a243 ENH: deltaCoeff test application. 2010-12-02 10:37:15 +00:00
graham
6595741ecd Merge branch 'master' into cvm 2010-11-25 17:36:43 +00:00
Mark Olesen
7b5de8021f Merge remote branch 'OpenCFD/master' into olesenm 2010-11-25 11:24:10 +01:00
graham
c630d77fc4 Merge branch 'master' into cvm 2010-11-24 14:02:07 +00:00
mattijs
1aea998bbe ENH: FaceCellWave : additional trackData like argument for passing in non-cell data 2010-11-24 11:48:04 +00:00
Mark Olesen
499d48cfdb STYLE: uniform 'Test-' prefix for all applications/test
- easier to clean, avoid confusion with 'real' applications, etc.
2010-11-23 16:26:04 +01:00
Mark Olesen
e5cf4f093e COMP: adjust syncTools test to compile 2010-11-23 16:08:47 +01:00
Mark Olesen
2ab6d349d6 STYLE: reset parameters in memInfo::update()
- avoids old values if the read from /proc/.../status somehow failed
2010-11-22 16:12:20 +01:00
graham
9f1d94bddd ENH: memInfo class. 2010-11-18 16:45:49 +00:00
graham
05b10612ca ENH: memInfo class. 2010-11-18 16:45:49 +00:00
graham
3629979263 Merge branch 'master' into cvm
Conflicts:
	src/OpenFOAM/primitives/random/Random/random.3
	src/OpenFOAM/primitives/random/Random/random.c
2010-11-11 18:29:28 +00:00
graham
ff473b9833 ENH: cmptProduct function, i.e. cmptProduct(vector(a, b, c)) = a*b*c. 2010-11-04 16:47:42 +00:00
graham
35416aa3c2 ENH: cmptProduct function, i.e. cmptProduct(vector(a, b, c)) = a*b*c. 2010-11-04 16:47:42 +00:00
Mark Olesen
d5acd22a63 STYLE: use labelUList typedef instead of UList<label> or unallocLabelList 2010-11-02 09:32:32 +01:00
graham
f2fe2f5140 Merge branch 'master' into cvm 2010-11-01 17:23:23 +00:00
mattijs
3f6d24ad0b STYLE: DynamicFieldTest.C : date 2010-10-29 16:40:38 +01:00
mattijs
13f86d8b68 ENH: DynamicField: extend to be like DynamicList. 2010-10-29 16:37:37 +01:00
graham
f7d3162a15 Merge branch 'master' into cvm 2010-10-12 16:09:17 +01:00
Henry
eb51614780 Renamed rUA -> rAU 2010-10-11 20:10:34 +01:00
andy
865379a135 Merge branch 'olesenm' 2010-10-11 09:39:53 +01:00
Mark Olesen
71b7e7cee1 ENH: add StaticAssert to Polynomial - positive number of terms only
ENH: allow construct from UList of coefficients, from C-arrays
     avoid uninitialized values for null constructor
2010-10-08 17:54:13 +02:00
Mark Olesen
dd5ed76a70 ENH: avoid costly pow() when evaluating Polynomial
OLD timings:
    ~~~~~~~~~~~~~~~~~~
    evaluate:     -6.82572e+31 in 10.38 s
    hard-coded 0: -6.82572e+31 in 0.2 s
    hard-coded 1: -6.82572e+31 in 10.37 s
    hard-coded 2: -6.82572e+31 in 0.24 s

    New timings:
    ~~~~~~~~~~~~~~~~~~
    evaluate:     -6.82572e+31 in 0.11 s
2010-10-08 15:56:58 +02:00
mattijs
197b3f398e ENH: CompactIOList test app 2010-10-07 12:15:35 +01:00
graham
ebe711cae1 Merge branch 'master' into cvm 2010-10-06 15:40:52 +01:00
Mark Olesen
d01a47aeee ENH: replace IndirectList with version that inherits from UIndirectList 2010-10-04 14:53:43 +02:00
andy
f2c3ba65a6 STYLE: code formatting and start copyright dates 2010-10-04 13:02:54 +01:00
andy
7ec390d23d Merge branch 'olesenm' 2010-10-04 11:08:48 +01:00
graham
6a70f4ecdb Merge branch 'master' into cvm 2010-10-01 15:36:26 +01:00
mattijs
2a6e9f10c0 COMP: testPrimitivePatch.C : extraneous include file 2010-09-30 14:07:12 +01:00
graham
f39d084874 Merge branch 'master' into cvm 2010-09-17 17:20:19 +01:00
graham
ebb9a9e1ac ENH: tet decomposed particle tracking.
Squashed merge of particleInteractions up to
commit e7cb5bcf0315c359539ef1e715e1d51991343391
2010-09-17 16:59:17 +01:00
Mark Olesen
4ed8ff2c7e ENH: add first draft of IndirectList that inherits from UIndirectList 2010-09-17 13:53:26 +02:00
Mark Olesen
ba896b6903 ENH: better handling of resizing for PackedList bit-wise operators
- previously using an '|=' or '^=' would increase the list size to
  match the RHS. Now it only increases to last bit set.

- limit bit-wise operations to addressable range for minor efficiency
  improvement

- trim results from '&' and '^' operations for more consistent
  behaviour
2010-09-16 16:37:41 +02:00
Mark Olesen
b7c85357d5 ENH: added binary IO for PackedList and compact ASCII format
The compact ASCII format is a block of index/value tuples for the
non-zero entries:

    { (index1 value1) (index2 value2) (index3 value3) }

For PackedList<1>, and thus PackedBoolList, the compact ASCII format is
a block of indices for the non-zero entries:

    { index1 index2 index3 }

Thus either of the following could be used - for PackedList<2>:

  - a list of all values:
        16(0 3 0 2 0 0 3 1 0 0 0 0 0 0 0 1)

  - a block of index/value tuples:
        {(1 3) (3 2) (7 3) (8 1) (15 1)}

For PackedList<1> and PackedBoolList, either of the following could be
used:

  - a list of all values, using any valid bool representation:
        16(0 1 0 true 0 0 t 1 0 n n 0 0 0 0 yes)

  - a block of the indices for non-zero entries:
        {1 3 7 8 15}
2010-09-15 10:20:39 +02:00
Mark Olesen
e564a9810f ENH: add IO support for PackedList, PackedBoolList 2010-08-09 17:27:09 +02:00
graham
aa96f77e96 Merge branch 'master' into cvm 2010-07-29 12:55:19 +01:00
graham
28345247a7 STYLE: Fixing code style requirements for more files - those not
picked up by a copyright change.
2010-07-29 11:28:44 +01:00
Mark Olesen
e12581bffc ENH: Add PackedBoolList class (previously just a typedef)
ENH: adjust internal storage of PackedList to ensure that all unused
     internal storage elements are guaranteed to always be bit-wise
     zero. This makes the PackedBoolList implementation easier, and
     also greatly eases much of the book-keeping.
     Bits are now also zeroed on PackedList::clear()

Note: in PackedList, require packing at least 2 items otherwise it is
     more efficient to use a normal list.
2010-07-28 14:50:17 +02:00
graham
0e935f41b0 Merge branch 'master' into cvm 2010-07-27 15:48:23 +01:00
graham
012494fdb5 STYLE: Fixing code style requirements for all apps.
Exception: applyWallFunctionBoundaryConditions.C cannot split #include
directives.
2010-07-27 15:27:05 +01:00
graham
1412553d06 Merge branch 'master' into cvm
Conflicts:
	src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
2010-07-23 13:41:31 +01:00
henry
6574570ba0 Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev
Conflicts:
	tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary
	tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/rho
	tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/polyMesh/boundary
	tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/RASProperties
	tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
	tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/turbulenceProperties
	tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/0/cp
	tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/0/rho
	tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/polyMesh/boundary
	tutorials/incompressible/simpleFoam/windTurbineTerrain/0/include/fixedInlet
	tutorials/incompressible/simpleFoam/windTurbineTerrain/0/include/sideAndTopPatches
	tutorials/incompressible/simpleFoam/windTurbineTerrain/0/nut
	tutorials/incompressible/simpleFoam/windTurbineTerrain/0/p
	tutorials/incompressible/simpleFoam/windTurbineTerrain/constant/RASProperties
	tutorials/incompressible/simpleFoam/windTurbineTerrain/system/decomposeParDict
2010-06-23 16:56:45 +01:00
henry
ccfb6e32a6 Corrected headers. 2010-06-23 16:54:54 +01:00
Mark Olesen
aa4781fcc0 BUG: missing constructor for pTraits specializations 2010-06-15 18:23:49 +02:00
Mark Olesen
0a4c8f7266 ENH: add assignment from UIndirectList to DynamicList 2010-06-15 11:02:23 +02:00
Mark Olesen
3277d0573e STYLE: use 'using Field<Type>::operator[]' in DynamicField 2010-06-07 14:37:48 +02:00
andy
28b1a9e2c6 Merge branch 'olesenm' 2010-06-03 10:25:03 +01:00
mattijs
c51a2b0f63 ENH: have MUST_READ_IF_MODIFIED on IOdictionary construction 2010-06-02 09:48:07 +01:00
Mark Olesen
895a077cb1 STYLE: fixup some dictionary headers 2010-05-18 11:38:07 +02:00
graham
f106f89f1f Merge branch 'master' into cvm
Conflicts:
	applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
2010-05-11 13:00:25 +01:00
Mark Olesen
0e9851b432 Merge remote branch 'OpenCFD/master' into olesenm 2010-05-03 09:34:31 +02:00
Mark Olesen
35afeb9b18 STYLE: remove superfluous uses of argList::validArgs.clear()
- a holdover from the old <root> <case> days
2010-05-03 08:38:39 +02:00
Mark Olesen
72f7d46f23 ENH: add operator[](const word&) as "find-by-name" to some classes
- affected: polyBoundary, fvBoundaryMesh, ZoneMesh, searchableSurfaces

  before:
      const label zoneI = mesh.cellZones().findZoneID(zoneName);
      const cellZone& cz = mesh.cellZones()[zoneI];
  after:
      const cellZone& cz = mesh.cellZones()[zoneName];
2010-04-29 10:12:35 +02:00
graham
dc26005e49 Merge branch 'master' into particleInteractions
Conflicts:
	src/lagrangian/dieselSpray/spraySubModels/atomizationModel/atomizationModel/newAtomizationModel.C
	src/lagrangian/dieselSpray/spraySubModels/dispersionModel/dispersionModel/newDispersionModel.C
	src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
	src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
2010-04-26 16:45:54 +01:00
Mark Olesen
42807ddd7e STYLE: fix worst spacing violations for 'os <<' constructions
- accept some violations of the coding guidelines though
- perhaps adding a style exception would be simpler.
2010-04-13 17:45:49 +02:00
graham
3be2501cd9 Merge branch 'master' into particleInteractions
Conflicts:
	src/lagrangian/intermediate/parcels/Templates/KinematicParcel/CollisionRecordList/CollisionRecordList.H
	src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/NoCollision/NoCollision.H
	src/lagrangian/molecularDynamics/molecule/interactionLists/referralLists/receivingReferralList.C
	src/lagrangian/molecularDynamics/molecule/interactionLists/referralLists/sendingReferralList.C
2010-04-13 16:34:36 +01:00
Mark Olesen
6b819eb50a STYLE: use new fvPatch::start() method 2010-04-13 17:12:57 +02:00
graham
cddce779e8 STYLE: Change to GPL v3 and update copyright date. 2010-04-13 11:38:22 +01:00
graham
5c33936264 Merge branch 'master' into cvm 2010-04-13 11:31:32 +01:00
mattijs
defea5836e Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
Conflicts:
	src/OpenFOAM/containers/Lists/DynamicList/DynamicList.H
	src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
	src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
2010-04-13 11:07:19 +01:00
Mark Olesen
c2044d746a ENH: udr_checker is the same for ensight82 and ensight90 2010-04-13 10:35:51 +02:00
Mark Olesen
874120350c STYLE: use forAllIter, forAllConstIter in more places
ENH: change some iterator -> const_iterator access

BUG: found some places with forAllIter and ::iterator !
2010-04-13 09:10:36 +02:00
mattijs
fb86371714 ENH: Test ListOps on DynamicList. 2010-04-12 17:18:46 +01:00
graham
240c714aab Merge branch 'master' into cvm
Conflicts:
	etc/settings.csh
	etc/settings.sh
	wmake/rules/General/CGAL
2010-04-09 10:13:42 +01:00
graham
94bab707d3 Merge branch 'master' into particleInteractions 2010-03-31 11:48:58 +01:00
Mark Olesen
d29c438657 STYLE: use url for FSF license instead of postal address, switch to GPL v3 2010-03-29 14:07:56 +02:00