MOAB: Mesh Oriented datABase  (version 5.2.1)
MBMesquite::CornerHessDiagIterator Class Reference

Iterate over only diagonal blocks of element corner Hessian data. More...

+ Collaboration diagram for MBMesquite::CornerHessDiagIterator:

Public Member Functions

 CornerHessDiagIterator (const Matrix3D *corner_hessians, EntityTopology elem_type)
SymMatrix3D operator* () const
CornerHessDiagIteratoroperator++ ()
CornerHessDiagIterator operator++ (int)

Private Attributes

const Matrix3DcornerHess
 Current location in concatenated Hessian data.
const EntityTopology elemType
 Element topology for Hessian data.
unsigned mCorner
unsigned mStep
 Amount to step to reach next diagonal block.

Detailed Description

Iterate over only diagonal blocks of element corner Hessian data.

Given concatenation of corner Hessian data for an element, iterate over only the diagonal terms for each corner. This class allows common code to be used to generate Hessian diagonal blocks from either the diagonal blocks for each corner or the full Hessian data for each corner, where this class is used for the latter.

Definition at line 96 of file AveragingQM.cpp.


Constructor & Destructor Documentation

MBMesquite::CornerHessDiagIterator::CornerHessDiagIterator ( const Matrix3D corner_hessians,
EntityTopology  elem_type 
) [inline]

Definition at line 105 of file AveragingQM.cpp.

References elemType, mCorner, and mStep.

        : cornerHess( corner_hessians ), elemType( elem_type ), mCorner( 0 )
    {
        TopologyInfo::adjacent_vertices( elemType, mCorner, mStep );
        ++mStep;
    }

Member Function Documentation

SymMatrix3D MBMesquite::CornerHessDiagIterator::operator* ( ) const [inline]

Definition at line 112 of file AveragingQM.cpp.

References cornerHess, and MBMesquite::Matrix3D::upper().

    {
        return cornerHess->upper();
    }
CornerHessDiagIterator& MBMesquite::CornerHessDiagIterator::operator++ ( ) [inline]

Definition at line 117 of file AveragingQM.cpp.

References cornerHess, elemType, mCorner, and mStep.

Referenced by operator++().

    {
        cornerHess += mStep;
        if( !--mStep )
        {
            TopologyInfo::adjacent_vertices( elemType, ++mCorner, mStep );
            ++mStep;
        }
        return *this;
    }
CornerHessDiagIterator MBMesquite::CornerHessDiagIterator::operator++ ( int  ) [inline]

Definition at line 128 of file AveragingQM.cpp.

References operator++().

    {
        CornerHessDiagIterator copy( *this );
        operator++();
        return copy;
    }

Member Data Documentation

Current location in concatenated Hessian data.

Definition at line 99 of file AveragingQM.cpp.

Referenced by operator*(), and operator++().

Element topology for Hessian data.

Definition at line 100 of file AveragingQM.cpp.

Referenced by CornerHessDiagIterator(), and operator++().

The element corner for which cornerHess is pointing into the corresponding Hessian data.

Definition at line 101 of file AveragingQM.cpp.

Referenced by CornerHessDiagIterator(), and operator++().

Amount to step to reach next diagonal block.

Definition at line 103 of file AveragingQM.cpp.

Referenced by CornerHessDiagIterator(), and operator++().

List of all members.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines