13 #include <stk_util/unit_test_support/stk_utest_macros.hpp> 15 #include <stk_util/parallel/Parallel.hpp> 17 #include <stk_mesh/base/MetaData.hpp> 18 #include <stk_mesh/base/Part.hpp> 19 #include <stk_mesh/base/Property.hpp> 20 #include <stk_mesh/baseImpl/PartRepository.hpp> 21 #include <stk_mesh/baseImpl/EntityRepository.hpp> 22 #include <stk_mesh/fem/FEMMetaData.hpp> 23 #include <stk_mesh/fem/FEMHelpers.hpp> 31 STKUNIT_UNIT_TEST(UnitTestProperty, testProperty)
33 const int spatial_dimension = 3;
34 MetaData meta_data(stk_classic::mesh::fem::entity_rank_names(spatial_dimension));
35 MetaData meta_data2(stk_classic::mesh::fem::entity_rank_names(spatial_dimension));
37 unsigned EntityRank = 0;
44 const Property<int> & pi2 = meta_data.declare_property<
int>(
"my_i5");
47 Property<unsigned> & pi_unsigned = meta_data.declare_property<
unsigned>(
"string_unsigned", size);
48 const Property<unsigned> & pi_unsigned_const = meta_data.declare_property<
unsigned>(
"string_unsigned", size);
49 Property<unsigned> & pi_unsigned_2 = meta_data.declare_property<
unsigned>(
"string_unsigned_2");
50 const Property<unsigned> & pi_unsigned_const_2 = meta_data.declare_property<
unsigned>(
"string_unsigned_2");
51 Property<double> & pProp = meta_data.declare_property<
double>(
"string_correct_new_double", pb.size());
52 Part & part_not_equal_to_pi2 = meta_data2.declare_part(
"part_not_equal_to_pi2" );
53 Part & part_not_equal_to_pi = meta_data2.declare_part(
"part_not_equal_to_pi");
54 Part & part_not_equal_to_pi2_2 = meta_data2.declare_part(
"part_not_equal_to_pi2_2", EntityRank );
55 Part & part = meta_data.declare_part(
"part", EntityRank );
60 STKUNIT_ASSERT( pi.
type_is<
int>() );
61 STKUNIT_ASSERT( pf.type_is<
double>() );
62 STKUNIT_ASSERT( px.type_is<
double>() );
63 STKUNIT_ASSERT( pa.type_is<
double>() );
65 STKUNIT_ASSERT( ! pi.
type_is<
double>() );
66 STKUNIT_ASSERT( ! pa.type_is<
int>() );
68 STKUNIT_ASSERT_EQUAL( pi.
size() , 1u );
69 STKUNIT_ASSERT_EQUAL( pf.size() , 1u );
70 STKUNIT_ASSERT_EQUAL( px.size() , 1u );
71 STKUNIT_ASSERT_EQUAL( pa.size() , 5u );
74 meta_data.put_property( pi , meta_data.locally_owned_part() );
85 STKUNIT_ASSERT( ! pi_unsigned.type_is<
int>() );
92 STKUNIT_ASSERT_THROW(
property_data( pi2 , part_not_equal_to_pi2 ),
94 STKUNIT_ASSERT_THROW(
property_data( pi2 , part_not_equal_to_pi2_2 ),
98 const std::string& string_correct_double =
"my_d";
99 meta_data.get_property<
double>( string_correct_double );
102 const std::string& string_incorrect_double =
"my_i";
103 STKUNIT_ASSERT_THROW(
104 meta_data.get_property<
double>( string_incorrect_double ),
113 const std::string& string_correct_new_double =
"my_y";
114 meta_data.get_property<
double>( string_correct_new_double );
115 STKUNIT_ASSERT( (pb).type_is<double>() );
118 meta_data.put_property( pProp, part);
121 STKUNIT_ASSERT( pb.type_is<
double>() );
124 STKUNIT_ASSERT( pi3.type_is<
int>() );
Property with defined data type and multi-dimensions (if any)
const property_type::data_type * property_data(const property_type &prop, const Part &part)
Query pointer to property data for a given part.
unsigned size() const
Query number of members, if an array.
An application-defined subset of a problem domain.
bool type_is() const
Query if the scalar type is DataType.