MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Public Member Functions | |
FakeTargetCalc (bool surface_orient=true) | |
~FakeTargetCalc () | |
bool | get_3D_target (PatchData &pd, size_t element, Sample sample, MsqMatrix< 3, 3 > &W_out, MsqError &err) |
Get a target matrix. | |
bool | get_2D_target (PatchData &pd, size_t element, Sample sample, MsqMatrix< 2, 2 > &W_out, MsqError &err) |
Get a target matrix. | |
bool | get_surface_target (PatchData &pd, size_t element, Sample sample, MsqMatrix< 3, 2 > &W_out, MsqError &err) |
Get a target matrix. | |
double | get_weight (PatchData &pd, size_t element, Sample sample, MsqError &err) |
Get target metric weight. | |
bool | have_surface_orient () const |
Use 3x2 W for surface elements if true, 2x2 W if false. | |
unsigned long | make_value (Mesh::ElementHandle elem, Sample sample, unsigned idx) |
Private Attributes | |
bool | surfOrient |
Definition at line 136 of file TargetReadWriteTest.cpp.
FakeTargetCalc::FakeTargetCalc | ( | bool | surface_orient = true | ) | [inline] |
Definition at line 141 of file TargetReadWriteTest.cpp.
: surfOrient( surface_orient ) {}
FakeTargetCalc::~FakeTargetCalc | ( | ) | [inline] |
Definition at line 143 of file TargetReadWriteTest.cpp.
{}
bool FakeTargetCalc::get_2D_target | ( | PatchData & | pd, |
size_t | element, | ||
Sample | sample, | ||
MsqMatrix< 2, 2 > & | W_out, | ||
MsqError & | err | ||
) | [virtual] |
Get a target matrix.
pd | The current PatchData |
element | The index an element within the patch data. |
sample | The sample point in the element. |
W_out | The resulting target matrix. |
Implements MBMesquite::TargetCalculator.
Definition at line 188 of file TargetReadWriteTest.cpp.
References CPPUNIT_ASSERT_EQUAL, MBMesquite::PatchData::element_by_index(), MBMesquite::PatchData::get_element_handles_array(), MBMesquite::MsqMeshEntity::get_element_type(), sample, and u.
Referenced by TargetReadWriteTest::read_write_2D_targets().
{ CPPUNIT_ASSERT_EQUAL( 2u, TopologyInfo::dimension( pd.element_by_index( elem ).get_element_type() ) ); for( unsigned i = 0; i < 2; ++i ) for( unsigned j = 0; j < 2; ++j ) W_out( i, j ) = make_value( pd.get_element_handles_array()[elem], sample, ( 2 - i ) * ( 2 - j ) ); return true; }
bool FakeTargetCalc::get_3D_target | ( | PatchData & | pd, |
size_t | element, | ||
Sample | sample, | ||
MsqMatrix< 3, 3 > & | W_out, | ||
MsqError & | err | ||
) | [virtual] |
Get a target matrix.
pd | The current PatchData |
element | The index an element within the patch data. |
sample | The sample point in the element. |
W_out | The resulting target matrix. |
Implements MBMesquite::TargetCalculator.
Definition at line 161 of file TargetReadWriteTest.cpp.
References CPPUNIT_ASSERT_EQUAL, MBMesquite::PatchData::element_by_index(), MBMesquite::PatchData::get_element_handles_array(), MBMesquite::MsqMeshEntity::get_element_type(), sample, and u.
Referenced by TargetReadWriteTest::read_write_3D_targets().
{ CPPUNIT_ASSERT_EQUAL( 3u, TopologyInfo::dimension( pd.element_by_index( elem ).get_element_type() ) ); unsigned i, j; for( i = 0; i < 3; ++i ) { for( j = 0; j < i; ++j ) W_out( i, j ) = 0.0; for( j = i; j < 3; ++j ) W_out( i, j ) = make_value( pd.get_element_handles_array()[elem], sample, 3 * i + j + 1 ); } return true; }
bool FakeTargetCalc::get_surface_target | ( | PatchData & | pd, |
size_t | element, | ||
Sample | sample, | ||
MsqMatrix< 3, 2 > & | W_out, | ||
MsqError & | err | ||
) | [virtual] |
Get a target matrix.
pd | The current PatchData |
element | The index an element within the patch data. |
sample | The sample point in the element. |
W_out | The resulting target matrix. |
Implements MBMesquite::TargetCalculator.
Definition at line 175 of file TargetReadWriteTest.cpp.
References CPPUNIT_ASSERT_EQUAL, MBMesquite::PatchData::element_by_index(), MBMesquite::PatchData::get_element_handles_array(), MBMesquite::MsqMeshEntity::get_element_type(), sample, and u.
Referenced by TargetReadWriteTest::read_write_surface_targets().
{ CPPUNIT_ASSERT_EQUAL( 2u, TopologyInfo::dimension( pd.element_by_index( elem ).get_element_type() ) ); for( unsigned i = 0; i < 3; ++i ) for( unsigned j = 0; j < 2; ++j ) W_out( i, j ) = make_value( pd.get_element_handles_array()[elem], sample, 2 * i + j ); return true; }
double FakeTargetCalc::get_weight | ( | PatchData & | pd, |
size_t | element, | ||
Sample | sample, | ||
MsqError & | err | ||
) | [virtual] |
Get target metric weight.
pd | The current PatchData |
element | The index an element within the patch data. |
sample | The sample point in the element. |
Implements MBMesquite::WeightCalculator.
Definition at line 197 of file TargetReadWriteTest.cpp.
References MBMesquite::PatchData::get_element_handles_array(), and sample.
Referenced by TargetReadWriteTest::read_write_weights().
{ return make_value( pd.get_element_handles_array()[elem], sample, 0 ); }
bool FakeTargetCalc::have_surface_orient | ( | ) | const [inline, virtual] |
Use 3x2 W for surface elements if true, 2x2 W if false.
If true, then the targets for surface elements attempt some control of orientation and therefore get_surface_target must be used to get the targets. If false, then the target contains no orientation data and is therefore the same as the corresponding 2D target for surface elements. In this case, get_2D_target should be used.
Implements MBMesquite::TargetCalculator.
Definition at line 153 of file TargetReadWriteTest.cpp.
{ return surfOrient; }
unsigned long FakeTargetCalc::make_value | ( | Mesh::ElementHandle | elem, |
Sample | sample, | ||
unsigned | idx | ||
) |
Definition at line 202 of file TargetReadWriteTest.cpp.
References CPPUNIT_ASSERT, MBMesquite::Sample::dimension, MBMesquite::Sample::number, MBMesquite::Sample::SIDE_DIMENSION_BITS, and MBMesquite::Sample::SIDE_NUMBER_BITS.
{ const unsigned index_bits = 4; CPPUNIT_ASSERT( idx < ( 1 << index_bits ) ); unsigned long result = (unsigned long)elem; result = ( result << Sample::SIDE_DIMENSION_BITS ) | sample.dimension; result = ( result << Sample::SIDE_NUMBER_BITS ) | sample.number; result = ( result << index_bits ) | idx; return result; }
bool FakeTargetCalc::surfOrient [private] |
Definition at line 138 of file TargetReadWriteTest.cpp.