1. 21 May, 2015 1 commit
  2. 24 Jun, 2014 1 commit
    • Kenneth Moreland's avatar
      Change ArrayContainerControl to Storage. · 21823500
      Kenneth Moreland authored
      After a talk with Robert Maynard, we decided to change the name
      ArrayContainerControl to Storage. There are several reasons for this
      change.
      
      1. The name ArrayContainerControl is unwieldy. It is long, hard for
      humans to parse, and makes for long lines and wraparound. It is also
      hard to distinguish from other names like ArrayHandleFoo and
      ArrayExecutionManager.
      
      2. The word container is getting overloaded. For example, there is a
      SimplePolymorphicContainer. Container is being used for an object that
      literally acts like a container for data. This class really manages
      data.
      
      3. The data does not necessarily have to be on the control side.
      Implicit containers store the data nowhere. Derivative containers might
      have all the real data on the execution side. It is possible in the
      future to have storage on the execution environment instead of the
      control (think interfacing with a simulator on the GPU).
      
      Storage is not a perfect word (what does implicit storage really mean?),
      but its the best English word we came up with.
      21823500
  3. 15 May, 2014 1 commit
    • Kenneth Moreland's avatar
      Add classes to manage point coordinates. · 7d769a8f
      Kenneth Moreland authored
      Each type of point coordinates has its own class with the name
      PointCoordinates*. Currently there is a PointCoordiantesArray that contains
      an ArrayHandle holding the point coordinates and a PointCoordinatesUniform
      that takes the standard extent, origin, and spacing for a uniform rectilinear
      grid and defines point coordiantes for that. Creating new PointCoordinates
      arrays is pretty easy, and we will almost definitely add more. For example,
      we should have an elevation version that takes uniform coordinates for
      a 2D grid and then an elevation in the third dimension. We can probably
      also use a basic composite point coordinates that can build them from
      other coordinates.
      
      There is also a DynamicPointCoordinates class that polymorphically stores
      an instance of a PointCoordinates class. It has a CastAndCall method that
      behaves like DynamicArrayHandle; it can call a functor with an array handle
      (possible implicit) that holds the point coordinates.
      7d769a8f
  4. 03 Apr, 2014 1 commit
    • Kenneth Moreland's avatar
      Add a dynamic array handle. · d309fa7a
      Kenneth Moreland authored
      The dynamic array handle holds a reference to an array handle of an
      unknown type. It contains the ability to try to cast it to an instance
      of array handle or to try lists of types and containers.
      
      There is currently an issue that is causing the test code not to
      compile. It is the case that some combinations of types and containers
      are not compatible. For example, an implict container is bound to a
      certain type, and the container is undefined if they do not agree. There
      needs to be a mechanism to detect these invalid combinations and skip
      over them in the MTP for each.
      d309fa7a
  5. 31 Mar, 2014 1 commit
    • Kenneth Moreland's avatar
      Add tag-based type list templates · c2d926fa
      Kenneth Moreland authored
      Provies a list of types in a template like boost::mpl::vector and a
      method to call a functor on each type. However, rather than explicitly
      list each type, uses tags to identify the list. This provides the
      following main advantages:
      
      1. Can use these type lists without creating horrendously long class
      names based on them, making compiler errors easier to read. For example,
      you would have a typename like MyClass<TypeListTagVectors> instead of
      MyClass<TypeList<Id3,Vector2,Vector3,Vector4> > (or worse if variadic
      templates are not supported). This is the main motivation for this
      implementation.
      
      2. Do not require variadic templates and usually few constructions. That
      should speed compile times.
      
      There is one main disadvantage to this approach: It is difficult to get
      a printed list of items in a list during an error. If necessary, it
      probably would not be too hard to make a template to convert a tag to a
      boost mpl vector.
      c2d926fa
  6. 07 Mar, 2014 1 commit
  7. 10 Feb, 2014 2 commits