Commit Graph

1950 Commits

Author SHA1 Message Date
Sujin Philip
e2129364a4 Fix ExecutionWholeArray
The constructor for execution whole array was wrong and would result in compilation error if used. This fixes that and adds a test path for testing ExecutionWholeArray with ExecutionWholeArrayConst.
2015-08-24 14:42:22 -04:00
hschroot
a9589c34ea Add Magnitude worklet. Used in OpenGL testing. 2015-08-21 11:17:10 -07:00
Robert Maynard
e84b545562 Update ExternalFaces worklet to latest dataset and worklet API. 2015-08-19 10:44:07 -04:00
Brent Lessley
f08b04e2f2 Initial, complete implementation of the Gaussian Splatter worklet. Compilation and logic errors still need to be resolved - work in progress. 2015-08-19 01:01:28 -07:00
Robert Maynard
ac34843d66 Make sure worklets are in alphabetical order. 2015-08-17 14:44:36 -04:00
Robert Maynard
5f88859794 Cleanup includes in ExternalFaces. 2015-08-17 14:42:58 -04:00
Robert Maynard
f3251cc4ea Merge branch 'master' into add-external-faces
Conflicts:
	vtkm/cont/ExplicitConnectivity.h
2015-08-14 16:01:49 -04:00
Robert Maynard
86fe9acdff Fix the indentation in ExternalFaces. 2015-08-14 15:47:25 -04:00
Robert Maynard
88a5184814 Remove warning about 64bit to 32bit data loss in ExternalFaces.
Index table into array should be done with type vtkm::IdComponent not
vtkm::Id
2015-08-14 14:41:01 -04:00
Robert Maynard
c8d19d1f3f Update ExternalFaces to invoke using CellSetExplicit.
ExternalFaces was still invoking using the ConnectivityExplicit which
is the 'old' way of doing that.
2015-08-14 14:40:10 -04:00
Robert Maynard
d7ad9e0e90 Make sure the ExternalFaces test code is in an anonymous namespace. 2015-08-14 14:30:47 -04:00
Kenneth Moreland
6598b296a6 Remove TopologyData class.
This class was used to store a group of from field data in a topology
map. However, the fetching has been changed to use a customized class
for each type of fetch that can be optimized for the fetch type and does
not require to know the number of items in the fetch at compile time.
Thus, this class is no longer needed, so it is being removed.
2015-08-14 09:17:34 -06:00
Kenneth Moreland
f7a6946d9a Use variable Vec-like objects for topology map fetching
This change removes the requirement to specify some maximum cell length
in each of the worklets, which is basically impossible. It also makes
some of the loading more lazy, which might help reduce the number of
registers required in a worklet.
2015-08-14 09:17:13 -06:00
Kenneth Moreland
c847f0b148 Get FromIndices as unknown type.
We want to be able to get topological connections where it is difficult
to know how many values you get each time. In this change, the type of
the vector holding the from indices is determined from the connectivity
object, and the worklet does not know the type (it must be templated).

Although you do not need to specify the max number for this value set
(you still currently do for field values), we still need to change the
type for explicit sets that uses something that does not rely on the Vec
class. The cell-to-point method also needs a Vec wrapper that allows it
to shorten the vector dynamically.
2015-08-14 09:15:46 -06:00
Robert Maynard
ab59e34a2f Rename pragma header guard so it makes sense for tbb and thrust.
Boost is not the only thirdparty that we are supressing warnings for, so
make the name more generic.
2015-08-13 09:04:23 -04:00
Kenneth Moreland
42aba97728 Add in-place (in-out) arrays to worklets.
Previously, all arrays passed to worklets were designated as either
input or output. No in-place operation was permitted. This change adds
the FieldInOut tag for ControlSignature in both WorkletMapField and
WorkletMapTopology that allows you to read and write from the same
array.
2015-08-12 14:41:56 -06:00
Brent Lessley
8258ec486c Adjusted the export modifier of the GetConnIndex operator function. Runtime exception still occurs for a bad type. 2015-08-12 11:24:53 -07:00
Kenneth Moreland
c5c1dee4fc Merge branch 'clean-up-cell-set' into 'master'
Clean up CellSet

Underneath the CellSet implementation is a set of supporting classes that manage the actual structure in both the control and execution environments. However, the implementation of these classes was a bit confusing and inconsistent. The following changes are made:

* Most significantly, there is no longer any Connectivity classes in the control environment. This functionality has been wrapped up into the CellSet classes, which is more consistent and easier to understand. (There was a definite distinction between CellSet and Connectivity, but it was subtle and difficult to understand.) This also means that edits to CellSets happen to CellSets directly.

* The set of classes for structured and explicit cell sets match. There is different functionality within, but the class naming and meaning are consistent.

* Make the class names more consistent with the rest of VTK-m class names. Specifically classes like ExplicitConnectivity become ConnectivityExplicit. Also, the words regular and structured were being used interchangeably. Now, always use structured except when dealing specifically with grids of regular spacing.

* The connectivity classes were using the nomenclature "From" and "To" to specify topological elements of links. The same concept in worklet classes were using the nomenclature "Src" and "Dest."  For consistency, all references are changed to "From" and "To".

* Unlike explicit cell sets, structured cell sets have functionality shared between control and execution environments. Rather than duplicate it or create unique exposed classes, have a shared internal implementation in vtkm::internal.

See merge request !117
2015-08-11 19:44:10 -04:00
Kenneth Moreland
1862970a0b Reintroduce explicit connectivity class for cont environment
(Re-) Add a helper structure that holds the connectivity information for
a particular topology connection (e.g. from points to cells) to make it
easier to manage connections in multiple different directions in
CellSetExplicit.

Unlike the previous version of connectivity, this structure is
considered "internal" and not exposed through the API so that
CellSetExplicit can better manage the data. Also, many of the helper
methods remain in CellSetExplicit since they were specific for point-to-

Also, CellSetExplicit has a mechanism to take an arbitrary pair of
TopologyElementTags and get the appropriate connectivity. This should
simplify adding connections in the future.
2015-08-11 12:42:34 -06:00
Brent Lessley
d06928da9b Resolved compilation errors and warnings. A single runtime error relating to ArrayHandleImplicit still exists. 2015-08-10 15:32:07 -07:00
Brent Lessley
b5ed990d85 Removed compilation errors related to ArrayHandleImplicit. 2015-08-08 12:33:15 -07:00
Brent Lessley
12e9271d8b See previous commit description 2015-08-06 14:32:31 -07:00
Brent Lessley
965d2af99b Reverted previous changed to GetFaceVertex operator() function. Commented out the connectivity printing function call on line 210 of ExplicitConnectivity.h; this change is a temporary fix to remove a Thrust compilation error. A Cuda error still occurrs when ArrayHandle subclasses are passed into the device adapter functions. 2015-08-06 14:31:35 -07:00
Brent Lessley
9ae2957fee Changed the export macro of the GetFaceVertex operator() to support both execution and control environment function calls. 2015-08-06 14:31:35 -07:00
Brent Lessley
eac36c1fcf Revised the GetFaceVertex functor to accept and use an execution const portal, instead of a control environment const portal. This change is necessary for proper Cuda device adapter functionality. 2015-08-06 14:31:35 -07:00
Brent Lessley
77ec743219 Resolved all compilation errors and warnings. Replaced the nested for-loops of the face connectivity construction with an implicit array handle invocation. 2015-08-06 14:31:35 -07:00
Brent Lessley
49eb758532 Resolved all but one of the issues from merge request #78. Currently, there is a compilation error related to new code for sorting based on face vertices, instead of hash key values. 2015-08-06 14:31:35 -07:00
Brent Lessley
365a0a2382 A working implementation of the External Faces algorithm, along with a unit test to verify correctness on a simple dataset. 2015-08-06 14:31:35 -07:00
Brent Lessley
6e09c19b48 Added a new, partially-complete header file for Gaussian splatter. 2015-08-06 12:56:17 -07:00
Robert Maynard
bae6ff7f55 Merge branch 'introduce_binary_and_unary_operators' into 'master'
Introduce binary and unary operators

See merge request !94
2015-08-06 15:14:28 -04:00
Robert Maynard
f20b1ea99a Add vtkm/BinaryPredicates header.
Currently includes the following predicates:
  - Equal
  - NotEqual
  - SortLess
  - SortGreater
  - LogicalAnd
  - LogicalOr
2015-08-04 16:55:53 -04:00
Kenneth Moreland
63b45ad1e5 Consistently use from/to for topological links
In the CellSet and related classes, a connection was referred to by a
"from" topology element and a "to" topology element. However, in the
worklet control signature tags the elements were referred to by "src"
and "dest." To make things consistent, use "from" and "to" everywhere.
2015-08-03 10:48:50 -06:00
Kenneth Moreland
01757ea136 Change Node -> Point
Most of VTK-m follows the convention of calling the 0D topology elements
"points" (which follows the convention of VTK). However, there were
several places where they were referred to as "nodes." Make things
consistent by calling them points everywhere.

Also merged some redundant ExecutionSignature tags.
2015-08-03 10:06:59 -06:00
Brent Lessley
3cf695462e Initial commit of the Gaussian Splatter filter. 2015-08-02 17:22:57 -07:00
Kenneth Moreland
7212469d04 Roll connectivity information into CellSet in control environment
Previously there was a Connectivity* structure for both the control
environment and the execution environment. This was necessary before
because the connectivity is explicit to the from and to topology
elements, so you would get this structure from the appropriate call to
CellSet*. However, the symantics are changed so that the type of
connectivity is selected in the worklet's dispatcher. Thus, it is now
much cleaner to manage the CellSet structure in the CellSet class itself
and just have a single set of Connectivity* classes in the execution
environment.
2015-08-02 15:59:44 -06:00
Kenneth Moreland
926f04e1d4 Move ExplicitConnectivity to ConnectivityExplicit
This is more consistent with VTK-m's naming convention.

Also made some minor changes and corrections.
2015-07-31 14:18:13 -06:00
Kenneth Moreland
d6b8c8f510 Change TopologyType identifiers from enumeration to tags.
Previously, the items used to identify parts of topology like points,
cells, faces, etc. were in an enumeration. However, they are only really
used in template specialization, and it is easier to use tags in this
case. So, change the enumeration to a set of tag structures. Also made
the following changes:

* Renamed TopologyType to TopologyElement, which is more indicative of
what we are referring to.
* Moved the structures from the vtkm::cont namespace to the vtkm
namespace. There is no reason not to be able to use them from either the
control or execution environments.
* Added a VTKM_IS_TOPOLOGY_ELEMENT_TAG macro to do type checks on
template arguments that are supposed to be topology element tags.
2015-07-31 13:59:37 -06:00
Kenneth Moreland
21b3b318ba Always disable conversion warnings when including boost header files
On one of my compile platforms, GCC was giving conversion warnings from
any boost include that was not wrapped in pragmas to disable conversion
warnings. To make things easier and more robust, I created a pair of
macros, VTKM_BOOST_PRE_INCLUDE and VTKM_BOOST_POST_INCLUDE, that should
be wrapped around any #include of a boost header file.
2015-07-30 17:40:40 -06:00
Kenneth Moreland
b8febd1c01 DataSet now holds DynamicCellSet instead of smart_ptr<CellSet>
The Invoke of the topology dispatcher is also changed to expect a
concrete cell set (which the DynamicCellSet is automatically cast to)
rather than a connectivity structure. The dispatcher calls the
GetNodeToCellConnectivity method for you. (That is currently the only
one supported.)
2015-07-28 17:33:52 -06:00
Kenneth Moreland
53d669772f Merge branch 'msvc-array-handle-fail' into 'master'
MSVC ArrayHandle fail

Fix the fact that UnitTestArrayHandle is failing on the Windows dashboards. Also fix some of the MSVC warnings.

See merge request !101
2015-07-27 18:36:11 -04:00
Kenneth Moreland
85a2545c1e Fix various MSVC warnings.
Most warnings had to do with implicit type conversions and some on
treating an integer (actually a pointer) as a boolean.
2015-07-27 15:56:04 -06:00
Kenneth Moreland
19db32f084 Conform DataSet classes to coding practices better
The most common changes were making class members uppercase and spelled
out, adding "this->" whenever a class member is used, and declare
functions and members with export macros. Also fixed some uses of int
(instead of vtkm::Id or something similar) and a bit of indentation. I
also sprinkled some const goodness over the code.

It should be noted that I had about a week delay between first making
these changes and checking them in. In the mean time Sujin also made
some similar changes, so there might be some repetative changes.
2015-07-27 12:49:42 -06:00
Robert Maynard
98d6e99275 Correct some warnings about 64bit to 32bit conversion. 2015-07-23 09:29:10 -04:00
Robert Maynard
0aba1b080e Merge branch 'reduce_dynamic_handle_compilation_size' into 'master'
Remove the usage of enable_if as return type to reduce binary size.

Using enable_if/disable_if as a return type has a negative impact on
binary size compared to use a boost::true/false_type as a method parameter.

For comparison the WorkletTests_TBB sees a 6-7% reduction in binary size when
compiled with O3.

Origin WorkletTests_TBB size details:
__TEXT  __DATA  __OBJC  others  dec hex
2363392 49152 0 4297793536  4300206080  1004ff000

Updated WorkletTests_TBB size details:
__TEXT  __DATA  __OBJC  others  dec hex
2215936 49152 0 4297568256  4299833344  1004a4000

See merge request !90
2015-07-22 08:30:56 -04:00
Robert Maynard
4156130ee8 Remove the usage of enable_if from method signatures to reduce binary size.
Using enable_if/disable_if as a return type has a negative impact on
binary size compared to use a boost::true/false_type as a method parameter.

For comparison the WorkletTests_TBB sees a 6-7% reduction in binary size when
compiled with O3.

Origin WorkletTests_TBB size details:
__TEXT  __DATA  __OBJC  others  dec hex
2363392 49152 0 4297793536  4300206080  1004ff000

Updated WorkletTests_TBB size details:
__TEXT  __DATA  __OBJC  others  dec hex
2215936 49152 0 4297568256  4299833344  1004a4000
2015-07-21 15:05:02 -04:00
Sujin Philip
6e16591ca3 Merge branch 'add-doxygen-support' into 'master'
Initial support for generating documentation using Doxygen

See merge request !89
2015-07-20 11:42:30 -04:00
Sujin Philip
1a9e8d1e3d Initial support for generating documentation using Doxygen 2015-07-17 15:35:59 -04:00
Robert Maynard
69eb4bb46b Correct issues compiling on OSX 10.8 with CUDA 6.5
Removed the MultiParam test as we have PointElevation which does the exact
same thing.
2015-07-16 14:38:56 -04:00
Robert Maynard
4af01d305e Explicitly check against NULL to reduce windows warnings. 2015-07-15 09:48:51 -04:00
Robert Maynard
b40db1db1f Cleanup the code to make it easier to read. 2015-07-15 09:48:37 -04:00
Chun-Ming Chen
a6a29158da Member variables should start with an uppercase letter 2015-07-08 10:00:48 -04:00
Chun-Ming Chen
9504a61411 update testing for the new modification 2015-07-02 17:06:56 -04:00
Chun-Ming Chen
14d1610a0b Sort triangle point ids so that the same triangle will have the same signature 2015-07-02 12:58:26 -04:00
Chun-Ming Chen
f0a98855f4 Hashing id3 to Int64 for sorting 2015-07-01 00:24:45 -04:00
Chun-Ming Chen
b9f8544d4e Remove copy() before sort() 2015-06-30 15:29:37 -04:00
Chun-Ming Chen
0c69960799 Move the definition of an arrayhandle out of worklet 2015-06-30 12:54:58 -04:00
Chun-Ming Chen
63e4ae5acc use vtkm::Id as the ArrayHandle size input type 2015-06-30 12:48:56 -04:00
Chun-Ming Chen
03ef13eaaf release resources during process 2015-06-30 12:39:24 -04:00
Kenneth Moreland
e19e0ea551 Merge branch 'mesh-simplify-changes' into 'master'
Some fixes to VertexClustering

VertexClustering previously only worked with data of a specific floating
point type (32 bit for point coordinates). Add some templates to accept
either 32 bit or 64 bit floating points for point coordintes and be a
bit more careful about implicit type conversions.

I also made some changes to conform better with the VTK-m coding
standards. The most common changes are using 2 space indentation for all
block levels, capitolizing and using camel case for all class members,
and prefixing "this->" to all use of internal class members.

See merge request !64
2015-06-29 18:14:19 -04:00
Kenneth Moreland
ba99e830ae Make sure VertexClustering grid dimensions do not exceed nDimensions
When mixing precision, it is possible for the computation to pick a grid
size greater than the requested number of dimensions. This change
ensures that you never get more dimensions than requested. (Thanks to
Chun-Ming Chen for the fix.)

The test now behaves the same way as it did before the last change.
2015-06-29 16:10:25 -06:00
Kenneth Moreland
cc8a5d35ec Some fixes to VertexClustering
VertexClustering previously only worked with data of a specific floating
point type (32 bit for point coordinates). Add some templates to accept
either 32 bit or 64 bit floating points for point coordintes and be a
bit more careful about implicit type conversions.

I also made some changes to conform better with the VTK-m coding
standards. The most common changes are using 2 space indentation for all
block levels, capitolizing and using camel case for all class members,
and prefixing "this->" to all use of internal class members.
2015-06-29 15:14:50 -06:00
Robert Maynard
99df565f85 Merge branch 'vtkm_exec_array_in' into 'master'
Implement a way to pass a portal to worklet as a parameter.

This is built ontop of the ExecutionObjectBase work, and is designed to show
other developers how they can create custom objects that are shared among
all worklets, but are passed as parameters to the worklet.

See merge request !60
2015-06-29 15:06:41 -04:00
Robert Maynard
40a2ce0645 Merge branch 'MeshSimplifyWorklets' into 'master'
Mesh simplify worklets

Vertex clustering algorithm and a AverageByKey computation are now in vtkm::worklets

See merge request !57
2015-06-29 09:49:19 -04:00
Robert Maynard
d7e85bb6ae Implement a way to pass a portal to worklet as a parameter.
This is built ontop of the ExecutionObjectBase work, and is designed to show
other developers how they can create custom objects that are shared among
all worklets, but are passed as parameters to the worklet.
2015-06-26 16:26:51 -04:00
Robert Maynard
5fa6afed2e Cleanup the worklet UnitTests. Mainly move everything into namespaces. 2015-06-26 15:52:59 -04:00
Chun-Ming Chen
00382a3b8b fix warning: && with || 2015-06-25 15:33:25 -04:00
Jimmy
0fd5556cae Move DataSet related codes in VertexClustering to UnitTestVertexClustering 2015-06-25 13:16:16 -04:00
Jimmy
05b550b574 change double to vtkm::Float64 2015-06-25 11:46:28 -04:00
Jimmy
7d1e3f8b1d set the invlid_id to -1, so the Id3Less will have to take care of this. 2015-06-25 11:43:29 -04:00
Jimmy
e234f29148 remove vc_debug 2015-06-25 10:52:02 -04:00
Jimmy
314c1b9da2 remove if 0 blocks in averageByKey 2015-06-25 10:38:34 -04:00
Jimmy
a5a4fb36ad remove internal namespace to expose AverageByKey 2015-06-25 10:37:11 -04:00
Jimmy
03823d96a1 Fix VertexClustering and missing iteratortype in ArrayHandleImplicit.h for CUDA 2015-06-24 16:35:11 -04:00
Jimmy
73564d7a2c Fix VortexClustering for thrust backend (partially) 2015-06-24 15:52:56 -04:00
Jimmy
3c25024781 hide debug / benchmark outputs 2015-06-24 15:13:16 -04:00
Jimmy
4220b37135 Finish testing codes for VertexClustering 2015-06-24 14:55:22 -04:00
Chun-Ming Chen
470c93fe69 move VertexClustering codes to /vtkm/cont/worklet 2015-06-24 14:55:22 -04:00
Chun-Ming Chen
71974e4cd3 Add vtkm/worklet/testing/UnitTestVertexClustering.cxx 2015-06-24 14:55:22 -04:00
Chun-Ming Chen
ebd6e43409 Added VertexClustering test 2015-06-24 14:55:22 -04:00
Chun-Ming Chen
4f813ca4c5 Prepare for vertex clustering algorithm 2015-06-24 14:55:21 -04:00
Robert Maynard
36c2740072 Teach DispatcherMapTopology how to do 2d and 3d scheduling.
The requirements for 2d/3d scheduling are that the input domain must be a
regularly structured grid.
2015-06-22 16:05:32 -04:00
Robert Maynard
4175ff2915 Allow dispatching based on a vtkm::Id2.
This is being added so that it is easy to schedule 2d grids easily, without
them having to pass in a 3d range.
2015-06-22 09:07:27 -04:00
Sujin Philip
5241cab738 Add PointElevation Worklet 2015-06-09 11:28:55 -04:00
Robert Maynard
44deb3c870 Allow creation of vtkm::cont::Field without any data.
This is needed to allow Field's to be used as output.
2015-06-08 16:14:49 -04:00
Robert Maynard
eb572169a5 Make sure each worklet test uses a different namespace.
Otherwise NVCC compiler has issues are we are breaking ODR, since it smashes
all these files into a single compilation unit.
2015-06-08 09:02:23 -04:00
Sujin Philip
0127e4d9d7 Add cell average worklet 2015-06-05 12:48:29 -04:00
Robert Maynard
73d27435f1 Merge branch 'dynamic_handles_to_worklet_warnings' 2015-06-04 13:49:28 -04:00
Robert Maynard
60e8166290 Add a simple example on how to handle multiple params to a worklet.
Mainly showing how to constrain the type for all parameters to be the
same, and to throw an error otherwise.
2015-06-04 13:12:52 -04:00
Robert Maynard
ae9914e9c8 Add full support for dynamic array handles to Topology test worklets.
Currently the topology test worklets only worked for Float32, and produced
warnings when generating the Float64 code paths, this solves this problem.
2015-06-04 13:11:49 -04:00
Robert Maynard
342a9989a5 Correct double to float conversion warnings. 2015-06-04 09:06:47 -04:00
Robert Maynard
0a433303e6 Correct headers to have the new copyright. 2015-06-03 15:06:43 -04:00
Robert Maynard
7f2ee8d050 Merge branch 'master' into datamodel-design 2015-06-03 14:36:53 -04:00
Robert Maynard
f88992e2f7 cuda can't handle invoking worklets from anonymous namespaces. 2015-06-01 17:20:02 -04:00
Sujin Philip
08f88b1cb9 Add TBB backend. 2015-06-01 13:57:37 -04:00
Robert Maynard
81450f2317 CellSetExplicit can now use different storage backends.
CellSetExplicit can now use different storage backends to allow
for cheaper representations of the data. For example a pool of triangles
can now implicit handles for shape and num indices.

This does raise the question if runtime polymorphism is the best approach
for CellSet, or if we should do some from of CRTP.
2015-06-01 09:55:53 -04:00
Robert Maynard
895a0dff6c Correct testing results for UnitTestWorkletMapTopologyExplicit.
Looking at the cell fields in MakeTestDataSet, I have computed the corrected
average values that we should expect.
2015-05-29 09:07:24 -04:00
Robert Maynard
41a22b7bfb mark variables in Topology tests as vtkmNotUsed. 2015-05-28 16:53:53 -04:00
Robert Maynard
b1dfa20d45 All test vtkm::cont::DataSets are now made on the stack.
No need to heap allocate vtkm::cont::DataSet now.
2015-05-28 15:35:19 -04:00
Robert Maynard
a7bfc99579 DataSet now holds all CellSets by shared pointer.
This clarifies the ownership semantics of the CellSets.
2015-05-28 15:30:13 -04:00
Brent Lessley
0a72789304 Resolved all implicit conversions between unsigned int and vtkm::Id. 2015-05-26 09:34:43 -04:00
Robert Maynard
6b8e7822be The Copyright statement now has all the periods in the correct location. 2015-05-21 10:30:11 -04:00
Jeremy Meredith
8a7f0add99 removing some debug code. 2015-05-20 12:56:16 -04:00
Jeremy Meredith
019e30a263 allow requesting fields by name, and make test data set names more sensible. 2015-05-20 11:46:04 -04:00
Dave Pugmire
21d31e6548 verify results 2015-05-20 10:21:04 -04:00
Jeremy Meredith
4e36d05fac moderately substantial cleanup to fields. 2015-05-19 16:49:17 -04:00
Jeremy Meredith
a7eabbc73c wrapping returned sets of values from topology map within a new class. 2015-05-19 15:16:13 -04:00
Dave Pugmire
3e681d96f0 Merge branch 'datamodel-design' of public.kitware.com:vtkm into datamodel-design 2015-05-19 14:35:29 -04:00
Jeremy Meredith
39b1b9cc18 adding convenience methods and cleaning up explicit connectivity. 2015-05-19 14:30:41 -04:00
Dave Pugmire
65e4fa32b9 Merge branch 'datamodel-design' of public.kitware.com:vtkm into datamodel-design 2015-05-19 14:11:58 -04:00
Dave Pugmire
885ba3e36b Re-organize worklet tests, add an other test. Check for right answers. 2015-05-19 14:11:26 -04:00
Jeremy Meredith
bd4bfb175a Merge branch 'datamodel-design' of public.kitware.com:vtkm into datamodel-design 2015-05-19 13:11:17 -04:00
Jeremy Meredith
4e67adca8c moving explicit data set creation to make test data set file. 2015-05-19 13:10:56 -04:00
Dave Pugmire
a8ff5af670 check for cell set. 2015-05-19 11:17:04 -04:00
Dave Pugmire
3a4966fef3 check assert for cell set. 2015-05-18 17:12:34 -04:00
Dave Pugmire
4dd186eda6 add worklet test for regular 2015-05-18 17:08:15 -04:00
Kenneth Moreland
0011e9d809 Check that appropriate exception thrown in UnitTestDispatcherBase. 2015-05-18 07:38:52 -06:00
Kenneth Moreland
4276b0cdcb Fix warning about uninitialized object
It is not important for this test, but we might as well make the
compiler happy.
2015-05-17 18:32:07 -06:00
Jeremy Meredith
6816ec4293 updating reg struct usage in cell set 2015-05-15 13:15:11 -04:00
Jeremy Meredith
9768070aed fixing problems with cuda build. 2015-05-14 15:59:37 -04:00
Kenneth Moreland
c83b585b14 Fix ExecObject tag in WorkletBase
The ExecObject tag for the ControlSignature was not declared right so
would cause a compile error if it was ever used. Clearly this was not
being tested properly, so the dispatcher base unit test now passes an
ExecObject parameter.
2015-05-13 18:44:44 -06:00
Robert Maynard
269ac3a8af Add in the MapTopologyExplicit worklet test.
Currently only works on serial backend.
2015-05-12 15:42:48 -04:00
Jeremy Meredith
b2fdff2873 Merge branch 'master' into datamodel-design 2015-05-11 15:14:08 -04:00
Kenneth Moreland
dad18e1170 Improve 3D scheduling mechanism in DispatcherBase
Previously, DispatcherBase had an ivar to determine whether to use the
numInstances passed on the stack or to use a 3D range held in a
different ivar. This change allows either a 1D range or 3D range to be
passed on the stack, which I expect to be closer to how we we handle
this when 3D ranges are fully supported.

This also fixes a bug introduced with commit
fdac208acbfa47b613d899a36cefc32a01e8f0a8 where the Use3DSchedule ivar
was not set correctly in UnitTestDispatcherBase.
2015-05-05 08:46:23 -06:00
Jeremy Meredith
75971e9abb fixing comments and removing old worklet. 2015-04-15 10:52:09 -04:00
Robert Maynard
fdac208acb use cuda scheduling versus thrust scheduling. 2015-04-03 10:18:05 -04:00
Jeremy Meredith
d807c1d865 map cell is now map topology -- the type of map depends on the passed-in topology. 2015-02-10 15:01:27 -05:00
Jeremy Meredith
f4975e7629 making all map cell related parameters use max cell size in control signature topology template arg. 2015-02-09 16:43:31 -05:00
Jeremy Meredith
5a40bb2657 fit margins. 2015-02-09 15:06:25 -05:00
Jeremy Meredith
27ef6f262f making node value input tuplelen be first argument so that there's no default value. 2015-02-09 15:02:16 -05:00
Jeremy Meredith
fb8639f1eb allow arbitrary length vecs for node value sets. 2015-02-09 14:28:57 -05:00
Jeremy Meredith
c3ff52353c adding ability to get nodal fields in cell map 2015-02-05 13:41:23 -05:00
Jeremy Meredith
20d9c60398 add direct fetch tag for topology which returns cell type. 2015-02-05 13:30:01 -05:00
Jeremy Meredith
67557a51bc making connectivity fully general (mixed element meshes) and more ways of getting at it in worklets. 2015-02-04 17:40:31 -05:00
Jeremy Meredith
6bd04efef2 changing mapcell input domain from input cell array to topology GetNumberOfCells. 2015-02-04 15:51:13 -05:00
Jeremy Meredith
2f83e08b7d changing exec output for topology to be Id3. 2015-02-04 15:48:15 -05:00
Jeremy Meredith
6214fa6629 adding execution output value type for node id set. 2015-02-04 15:24:50 -05:00
Jeremy Meredith
da73c67f4a first steps in getting real topology to worklet map cell. 2015-02-04 15:02:59 -05:00
Jeremy Meredith
455ef255da forcing connectivity to triangle-only (Id3) to get simple WorkletMapCell. 2015-02-04 11:47:15 -05:00
Jeremy Meredith
5a0a658d7d adding worklet map cell framework (so far, identical to field version). 2015-02-04 11:00:15 -05:00
Robert Maynard
9f60876a0a Move the MapField testing worklets to a worklet namespace.
NVCC is unable to handle finding the worklets when they are in an anonymous
namespace. It only looks at the the anonymous namespaces included by the
files that device code uses, and misses our anon namespace. Moving to a named
namespace solves these issues.
2015-01-19 14:25:54 -05:00
Kenneth Moreland
51b5cc63c4 Merge branch 'no-function-interface-zip' into cuda_DeviceAdapterAlgorithm 2015-01-15 22:35:38 -07:00
Kenneth Moreland
37dac92052 Add index tags to FunctionInterface features.
The functors in the ForEach, StaticTransform, and DynamicTransform
methods sometimes can use the index of the parameter that they are
operating on. This can be a helpful diagnostic in compile and run-time
errors. It is also helpful when linking parameters from one
FunctionInterface with those of another.

This new features are now replacing implementations using the Zip
functionality that was removed earlier. The implementation is actually
simplified a bit.
2015-01-15 22:13:47 -07:00
Robert Maynard
3e8ac22fe6 Allow worklet tests to be built for the cuda device adapter. 2014-12-19 13:47:28 -05:00
Kenneth Moreland
4ab4dc9cf2 Use test_equal instead of == for comparing numbers in exec worklets.
A couple of tests were failing with the Intel compiler due to
imprecision in comparing floating point values.

Also snuck in some minor documentation fixes in a comment for
FunctionInterface.
2014-11-12 08:53:03 -07:00
Kenneth Moreland
51e3b2bb1d Add checks for signature tags
It's easy to put accidently put something that is not a valid tag in a
ControlSignature or ExecutionSignature. Previously, when you did that
you got a weird error at the end of a very long template instantiation
chain that made it difficult to find the offending worklet.

This adds some type checks when the dispatcher is instantated to check
the signatures. It doesn't point directly to the signature or its
parameter, but it is much closer.
2014-10-23 08:28:50 -06:00
Kenneth Moreland
6b1db2cf04 Check value type in Invoke input arrays.
Instead of just checking that a dispatcher's Invoke input is an
ArrayHandle, also check that the ValueType of the ArrayHandle is
compatible with the types of the worklet operator. This is done by
adding a template argument to the ControlSignature tags that is a type
list tag that gets passed to the type check.
2014-10-22 16:51:42 -06:00
Kenneth Moreland
421746d041 Add basic support for type checking of Invoke arguments 2014-10-22 15:21:18 -06:00
Kenneth Moreland
80809a8f0f Add DispatcherMapField.
This is a simple version of a dispatcher, but an important one.

Note that there is an issue brought up with UnitTestWorkletMapField in
that there needs to be better ways to specify worklet argument types.
2014-10-21 13:10:00 -06:00
Kenneth Moreland
53a454fe77 Add basic dispatcher functionality.
These changes support the implementation of DispatcherBase. This class
provides the basic functionality for calling an Invoke method in the
control environment, transferring data to the execution environment,
scheduling threads in the execution environment, pulling data for each
calling of the worklet method, and actually calling the worklet.
2014-10-21 11:49:23 -06:00
Kenneth Moreland
01d6619774 Add basic worklet superclasses and signature tags 2014-10-15 15:47:39 -06:00