MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include <IdealShapeTarget.hpp>
Public Member Functions | |
virtual | ~IdealShapeTarget () |
virtual bool | get_3D_target (PatchData &pd, size_t element, Sample sample, MsqMatrix< 3, 3 > &W_out, MsqError &err) |
Get a target matrix. | |
virtual bool | get_surface_target (PatchData &pd, size_t element, Sample sample, MsqMatrix< 3, 2 > &W_out, MsqError &err) |
Get a target matrix. | |
virtual bool | get_2D_target (PatchData &pd, size_t element, Sample sample, MsqMatrix< 2, 2 > &W_out, MsqError &err) |
Get a target matrix. | |
virtual bool | have_surface_orient () const |
Use 3x2 W for surface elements if true, 2x2 W if false. |
Definition at line 41 of file IdealShapeTarget.hpp.
MBMesquite::IdealShapeTarget::~IdealShapeTarget | ( | ) | [virtual] |
Definition at line 40 of file IdealShapeTarget.cpp.
{}
bool MBMesquite::IdealShapeTarget::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 72 of file IdealShapeTarget.cpp.
References MBMesquite::PatchData::element_by_index(), MBMesquite::MsqMeshEntity::get_element_type(), MBMesquite::TargetCalculator::ideal_shape_2D(), MSQ_CHKERR, and sample.
Referenced by IdealTargetTest::get_calc_target(), and get_surface_target().
{ MsqMeshEntity& elem = pd.element_by_index( element ); ideal_shape_2D( elem.get_element_type(), sample, pd, W_out, err ); return !MSQ_CHKERR( err ); }
bool MBMesquite::IdealShapeTarget::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 42 of file IdealShapeTarget.cpp.
References MBMesquite::PatchData::element_by_index(), MBMesquite::MsqMeshEntity::get_element_type(), MBMesquite::TargetCalculator::ideal_shape_3D(), MSQ_CHKERR, and sample.
Referenced by IdealTargetTest::get_calc_target().
{ MsqMeshEntity& elem = pd.element_by_index( element ); ideal_shape_3D( elem.get_element_type(), sample, pd, W_out, err ); return !MSQ_CHKERR( err ); }
bool MBMesquite::IdealShapeTarget::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.
Reimplemented in IdealShapeXY.
Definition at line 53 of file IdealShapeTarget.cpp.
References get_2D_target(), and MSQ_CHKERR.
{ MsqMatrix< 2, 2 > W_2d; bool rval = get_2D_target( pd, element, sample, W_2d, err ); if( MSQ_CHKERR( err ) || !rval ) return false; W_out( 0, 0 ) = W_2d( 0, 0 ); W_out( 0, 1 ) = W_2d( 0, 1 ); W_out( 1, 0 ) = W_2d( 1, 0 ); W_out( 1, 1 ) = W_2d( 1, 1 ); W_out( 2, 0 ) = 0.0; W_out( 2, 1 ) = 0.0; return true; }
bool MBMesquite::IdealShapeTarget::have_surface_orient | ( | ) | const [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.
Reimplemented in IdealShapeXY.
Definition at line 83 of file IdealShapeTarget.cpp.
{ return false; }