QuOc

 

Public Member Functions | Protected Types | Protected Attributes

tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType > Class Template Reference

#include <tpCFEStandardOp.h>

Inheritance diagram for tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >:
tpcfe::CFEStandardOp< ConfiguratorType, ImpType > tpcfe::CFELinOpInterface< ConfiguratorType, ImpType > aol::Op< aol::Vector< ConfiguratorType::RealType > >

List of all members.

Public Member Functions

 CFEWeightedStandardOp (const qc::AArray< RealType, qc::QC_3D > &NodalCoeffs, const typename ConfiguratorType::GridType &Grid, const aol::OperatorType OpType=aol::ONTHEFLY)
template<typename ContribProcessorType >
void preProcessLocalContribution (const CFEElement< RealType > &e, ContribProcessorType &) const
template<typename ContribProcessorType >
void computeNonInterfacedHexaContrib (const CFEElement< RealType > &e, ContribProcessorType &cpt) const
const RealType getTetraContrib (const CFEElement< RealType > &, const CFETetra< RealType > &t, const int, const int i, const int j) const

Protected Types

typedef ConfiguratorType::RealType RealType

Protected Attributes

const qc::AArray< RealType,
qc::QC_3D > & 
_nodalCoeffs
CFEWeightProvider< RealType,
RealType
_weightProvider
 store weight data for current element

Detailed Description

template<typename ConfiguratorType, typename ImpType>
class tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >

Implements a standard operator for bilinear forms with non-constant coefficients

Author:
Preusser

Definition at line 928 of file tpCFEStandardOp.h.


Member Typedef Documentation

template<typename ConfiguratorType, typename ImpType>
typedef ConfiguratorType::RealType tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >::RealType [protected]

Constructor & Destructor Documentation

template<typename ConfiguratorType, typename ImpType>
tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >::CFEWeightedStandardOp ( const qc::AArray< RealType, qc::QC_3D > &  NodalCoeffs,
const typename ConfiguratorType::GridType &  Grid,
const aol::OperatorType  OpType = aol::ONTHEFLY 
) [inline]

Definition at line 936 of file tpCFEStandardOp.h.

                                                                       : CFEStandardOp< ConfiguratorType, ImpType > ( Grid, OpType ), _nodalCoeffs ( NodalCoeffs ), _weightProvider ( NodalCoeffs, CFEElement<RealType>() ) {
    if ( qc::GridSize<qc::QC_3D> ( Grid ) != qc::GridSize<qc::QC_3D>( _nodalCoeffs ) )
      throw aol::Exception ( "CFEWeightedStandardOp::CFEWeightedStandardOp dimensions of grid and weights do not match", __FILE__, __LINE__ );
  }


Member Function Documentation

template<typename ConfiguratorType, typename ImpType>
template<typename ContribProcessorType >
void tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >::computeNonInterfacedHexaContrib ( const CFEElement< RealType > &  e,
ContribProcessorType &  cpt 
) const [inline]

Assemble the local matrix for a non-interfaced element

Reimplemented from tpcfe::CFEStandardOp< ConfiguratorType, ImpType >.

Definition at line 954 of file tpCFEStandardOp.h.

                                                                                  {
    for ( short i = 0; i < 8; ++i ) {
      const int i1 = e.globalIndex ( i );
      const RealType w = _weightProvider.getLocalWeight ( i );
      for ( short j = 0; j < 8; ++j ) {
        const int j1 = e.globalIndex ( j );
        cpt.processContribution ( i1, j1, w*this->_defaultLocalHexaMatrix[i][j] );
      }
    }
  }

template<typename ConfiguratorType, typename ImpType>
const RealType tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >::getTetraContrib ( const CFEElement< RealType > &  ,
const CFETetra< RealType > &  t,
const   int,
const int  i,
const int  j 
) const [inline]

Multiply the local tetra matrix by the weight of the parent node of the tetra

Reimplemented from tpcfe::CFEStandardOp< ConfiguratorType, ImpType >.

Definition at line 969 of file tpCFEStandardOp.h.

                                                                           {

    const RealType weight = _weightProvider.meanWeight ( t.getSign() );
    return weight*this->_localTetraMatrix[i][j];
  }

template<typename ConfiguratorType, typename ImpType>
template<typename ContribProcessorType >
void tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >::preProcessLocalContribution ( const CFEElement< RealType > &  e,
ContribProcessorType &   
) const [inline]

Clear all matrix entries in the local matrix and gather the local weights

Reimplemented from tpcfe::CFEStandardOp< ConfiguratorType, ImpType >.

Definition at line 946 of file tpCFEStandardOp.h.

                                                                                  {
    _weightProvider.updateForElement ( e );
  }


Member Data Documentation

template<typename ConfiguratorType, typename ImpType>
const qc::AArray<RealType, qc::QC_3D>& tpcfe::CFEWeightedStandardOp< ConfiguratorType, ImpType >::_nodalCoeffs [protected]

The documentation for this class was generated from the following file:

Generated on Fri Sep 9 2011 21:10:18 for QuocMesh by doxygen 1.7.1