Commit Graph

67 Commits

Author SHA1 Message Date
Dave Pugmire
8f3ed89e92 comments 2015-03-25 09:57:42 -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
6d7e2012ab encapsulating field for data set. 2015-02-10 12:36:10 -05:00
Jeremy Meredith
adf0dfd53e moving cell type into new file. 2015-02-09 17:04:09 -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
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
c741d3cccf allowing variable number of values to return for ID set. 2015-02-09 13:42:01 -05:00
Jeremy Meredith
c34d64e56c force constructors to array handles to work around stl vector allocator weirdness. 2015-02-05 15:38:49 -05:00
Jeremy Meredith
2caf35602b fixing bug with node values in map cell. 2015-02-05 14:08:37 -05:00
Jeremy Meredith
475c4bb5ee renaming some node references to topology and removing unused files. 2015-02-05 13:45:08 -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
be8e8e0aac adding regular connectivity example 2015-02-05 10:04:39 -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
61852bbb20 back to vtkm::Id as connectivity element type in prep for proper implementation. 2015-02-04 12:41:02 -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
Dave Pugmire
e3970b09f1 Add a simple worklet that creates a cell-type variable. 2015-02-03 12:02:48 -05:00
Dave Pugmire
d6ccc97304 Add initial data set for unstructured mesh. 2015-02-02 16:44:24 -05:00
Dave Pugmire
1b24b1015f add dataset test file. 2015-01-28 11:50:06 -05:00
Dave Pugmire
01dce61672 data model tweaks.
fix a bad commit.
2015-01-28 11:27:15 -05:00
Dave Pugmire
8dc09f271d Add initial dataset files. 2015-01-27 16:22:21 -05:00
Robert Maynard
d9270e408d Adding a cuda device adapter to vtkm.
Porting the dax device adapter over to vtkm. Unlike the dax version, doesn't
use the thrust::device_vector, but instead uses thrust::system calls so that
we can support multiple thrust based backends.

Also this has Texture Memory support for input array handles. Some more work
will need to be done to ArrayHandle so that everything works when using an
ArrayHandle inplace with texture memory bindings.
2014-12-19 13:47:28 -05:00
Robert Maynard
e2eb901be3 move DeviceAdapterAlgorithm to correct folder as it's namespace 2014-12-18 11:09:15 -05:00
Kenneth Moreland
bc3e1ebd21 delete operator and std::allocator are not necessarily the same
The unit test for StorageBasic tested the StealArray feature and then
used the delete[] operator on the stolen array to deallocate it. For
many standard libraries the default implementation for delete[] is
the same as (or at least compatible with) std::allocator, but for
the PGI compiler they were not compatible and this resulted in a
run-time error. This change fixes the problem with the test by using
the same allocator as the StorageBasic test.
2014-10-23 15:39:05 -06:00
Kenneth Moreland
d4ad846e65 Merge branch 'any-scalar-width' 2014-10-21 16:53:50 -06:00
Kenneth Moreland
7cf25331e2 Fix MSVC compiler warnings
Generally, the MSVC compiler tends to be more picky about implicit type
conversions. It warns if there is any possibility of precision loss.
2014-10-21 16:52:24 -06:00
Kenneth Moreland
10ba2efbf7 Unify test values.
Lots of tests have to move values in and out of arrays and check them
against expected values. It is also often the case that these tests are
run on lots of different types. There is some repeated code for
generating known values for particular indices. This change unifies some
of that. This can probably also encourage making more generic tests.
2014-10-14 10:00:34 -06:00
Kenneth Moreland
a7e6666037 Rename some type lists to be a bit more consistent. 2014-10-10 11:30:10 -06:00
Kenneth Moreland
7f94eafc9c Remove vtkm::Scalar and vtkm::Vector# types
Providing these types tends to "lock in" the precision of the algorithms
used in VTK-m. Since we are using templating anyway, our templates
should be generic enough to handle difference precision in the data.
Usually the appropriate type can be determined by the data provided. In
the case where there is no hint on the precision of data to use (for
example, in the code that provides coordinates for uniform data), there
is a vtkm::FloatDefault.
2014-10-09 08:54:56 -06:00
Kenneth Moreland
4881ed4ddb Change tests that try all base types to use different precision
Before we assumed that we would only use the basic types specified by
the widths of vtkm::Scalar and vtkm::Id. We want to expand this to make
sure the code works on whatever data precision we need.
2014-10-08 16:56:33 -06:00
Kenneth Moreland
0cc9d27e26 Expand the list of types to include multiple widths.
Since we want our code to generally handle data of different precision
(for example either float or double) expand the types in our list types
to include multiple precision.
2014-10-08 15:40:20 -06:00
Kenneth Moreland
b2298172ee Allow longer base lists
Previously we just hand coded base lists up to 4 entries, which was fine
for what we were using it for. However, now that we want to support base
types of different sizes, we are going to need much longer lists.
2014-10-08 12:53:01 -06:00
Kenneth Moreland
c3fbe073e8 Change VectorTraits to VecTraits.
Matches the previous move from Tuple to Vec. We can unify on this name.
2014-10-08 10:09:43 -06:00
Kenneth Moreland
2139d93206 Change vtkm::Tuple to vtkm::Vec
There are multiple reasons for this name change:

* The name Tuple conflicts with the boost::Tuple class, which as a
different interface and feature set. This gets confusing, especially
since VTK-m uses boost quite a bit.

* The use of this class is usually (although not always) as a
mathematical vector.

* The vtkm::Scalar and vtkm::Vector* classes are going to go away soon
to better support multiple base data type widths. Having this
abbriviated name will hopefully make the code a bit nicer when these
types have to be explicitly specified.

Also modified the implementation a bit to consolidate some of the code.
2014-10-08 10:09:43 -06:00
Kenneth Moreland
cbe6284b83 Add IdComponent and other base types with explicit widths
In preparation for supporting base types with more widths, add typedefs
for the base types with explicit widths (number of bits).

Also added a IdComponent type that should be used for indices for
components into tuples and vectors. There now should be no reason to use
"int" inside of VTK-m code (especially for indexing). This change cleans
up many of the int types that were used throughout.
2014-10-08 10:09:42 -06:00
Kenneth Moreland
8839e615e6 Remove GetIteratorBegin/End from all ArrayPortal classes.
Replace them (and their use) with the new ArrayPortalToIterators
functionality.
2014-09-08 14:59:11 -06:00
Kenneth Moreland
9bbbaecab6 Add ArrayPortalToIterators functionality.
This moves the ability to get an iterator from an array portal out of
the portal itself. The next step is to move the GetIteratorBegin/End out
of ArrayPortal. This should make the implemenation a bit cleaner.
2014-09-08 13:39:58 -06:00
Kenneth Moreland
6fb33f88af Use MSVC checked_array_iterator to suppress warnings and add checks.
MSVC likes to warn about using raw pointers as iterators in generic
algorithms because they have been known to lead to problems. When
compiling with that compiler, wrap raw pointers in
stdext::checked_array_pointer to suppress the error and also add a bit
more checking.
2014-08-12 15:25:45 -06:00
Kenneth Moreland
b917cf49f4 Replace CountByTwo with String Int in ArrayHandleCounting test.
I wanted to test ArrayHandleCounting with some non-standard data type.
I was using a class that looked like a number that counts by two, but
the operator behavior was not a proper group and that was causing issues.
Replaced that with a class that inefficiently represents an unsigned
integer as a string with that many characters. The inefficiency does not
matter because it is just a test.
2014-07-17 14:35:39 -06:00
Kenneth Moreland
9466151326 Make floating point comparison more tolerant in UnitTestDynamicArrayHandle
It appears that when the Intel compiler is optimizing, constant floating
point values can be slightly different than the same value stored in memory
and never changed. This change uses the test_equal method to compare
these floating point values that might have a slight numeric error.
2014-07-10 10:53:02 -06:00
Kenneth Moreland
21823500c3 Change ArrayContainerControl to Storage.
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.
2014-06-24 09:58:32 -06:00
Kenneth Moreland
9573aa2764 Fix a test object to handle changes in the counting array handle 2014-06-19 11:12:54 -06:00
Kenneth Moreland
a789d54e99 Remove CopyInto method from array-support classes
It was originally put there to support CopyInto in ArrayHandle, but that
has already been removed. It really only makes sense for trivial
examples and testing code, and it sometimes causes complications with
coding.
2014-06-11 16:15:46 -06:00
Kenneth Moreland
2bd9632a36 Fix testing versions.
There is a special version of the testing methods for use in the control
environment that handles execeptions that can be thrown there. There are
tests to make sure you are using the correct version of the testing
framework, but it was broken until the last commit. Now that it's fixed,
here are two places where the wrong testing method was used.
2014-06-11 10:45:36 -06:00