Sundance::CurveQuadratureIntegral Class Reference

Inheritance diagram for Sundance::CurveQuadratureIntegral:

Sundance::ElementIntegral

List of all members.

Public Member Functions

 CurveQuadratureIntegral (const CellType &maxCellType, const bool isConstantIntegral, const QuadratureFamily &quad, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
 CurveQuadratureIntegral (const CellType &maxCellType, const bool isConstantIntegral, const BasisFamily &testBasis, int alpha, int testDerivOrder, const QuadratureFamily &quad, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
 CurveQuadratureIntegral (const CellType &maxCellType, const bool isConstantIntegral, const BasisFamily &testBasis, int alpha, int testDerivOrder, const BasisFamily &unkBasis, int beta, int unkDerivOrder, const QuadratureFamily &quad, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
virtual ~CurveQuadratureIntegral ()
virtual void transform (const CellJacobianBatch &JTrans, const CellJacobianBatch &JVol, const Array< int > &isLocalFlag, const Array< int > &facetNum, const RCP< Array< int > > &cellLIDs, const double constCoeff, const double *const coeff, RCP< Array< double > > &A) const
virtual void transformZeroForm (const CellJacobianBatch &JTrans, const CellJacobianBatch &JVol, const Array< int > &isLocalFlag, const Array< int > &facetIndex, const RCP< Array< int > > &cellLIDs, const double constCoeff, const double *const coeff, RCP< Array< double > > &A) const
virtual void transformTwoForm (const CellJacobianBatch &JTrans, const CellJacobianBatch &JVol, const Array< int > &facetIndex, const RCP< Array< int > > &cellLIDs, const double constCoeff, const double *const coeff, RCP< Array< double > > &A) const
void transformOneForm (const CellJacobianBatch &JTrans, const CellJacobianBatch &JVol, const Array< int > &facetIndex, const RCP< Array< int > > &cellLIDs, const double constCoeff, const double *const coeff, RCP< Array< double > > &A) const

Private Member Functions

void updateRefCellInformation (int maxCellLID, const ParametrizedCurve &curve) const
void updateRefCellIntegralOneForm (int maxCellLID, int cellInBatch) const
void updateRefCellIntegralTwoForm (int maxCellLID, int cellInBatch) const
void transformSummingFirst (int nCells, const CellJacobianBatch &JVol, const Array< int > &facetIndex, const RCP< Array< int > > &cellLIDs, const double constCoeff, const double *const GPtr, const double *const coeff, RCP< Array< double > > &A) const
void transformSummingLast (int nCells, const Array< int > &facetIndex, const RCP< Array< int > > &cellLIDs, const double *const GPtr, const double *const coeff, RCP< Array< double > > &A) const
bool useSumFirstMethod () const
double & wValue (int q, int testDerivDir, int testNode, int unkDerivDir, int unkNode) const
const double & wValue (int facetCase, int q, int testDerivDir, int testNode, int unkDerivDir, int unkNode) const
double & wValue (int q, int testDerivDir, int testNode) const

Private Attributes

QuadratureFamily quad_
Array< PointquadPts_
Array< double > quadWeights_
Array< double > W_
bool useSumFirstMethod_
bool useConstCoeff_
Array< PointquadCurveDerivs_
Array< PointquadCurveNormals_


Detailed Description

Integration by quadrature over a maximal cell

Definition at line 45 of file SundanceCurveQuadratureIntegral.hpp.


Constructor & Destructor Documentation

CurveQuadratureIntegral::CurveQuadratureIntegral ( const CellType maxCellType,
const bool  isConstantIntegral,
const QuadratureFamily quad,
const ParametrizedCurve &  globalCurve,
const Mesh mesh,
int  verb 
)

CurveQuadratureIntegral::CurveQuadratureIntegral ( const CellType maxCellType,
const bool  isConstantIntegral,
const BasisFamily testBasis,
int  alpha,
int  testDerivOrder,
const QuadratureFamily quad,
const ParametrizedCurve &  globalCurve,
const Mesh mesh,
int  verb 
)

CurveQuadratureIntegral::CurveQuadratureIntegral ( const CellType maxCellType,
const bool  isConstantIntegral,
const BasisFamily testBasis,
int  alpha,
int  testDerivOrder,
const BasisFamily unkBasis,
int  beta,
int  unkDerivOrder,
const QuadratureFamily quad,
const ParametrizedCurve &  globalCurve,
const Mesh mesh,
int  verb 
)

virtual Sundance::CurveQuadratureIntegral::~CurveQuadratureIntegral (  )  [inline, virtual]

virtual dtor

Definition at line 85 of file SundanceCurveQuadratureIntegral.hpp.


Member Function Documentation

virtual void Sundance::CurveQuadratureIntegral::transform ( const CellJacobianBatch JTrans,
const CellJacobianBatch JVol,
const Array< int > &  isLocalFlag,
const Array< int > &  facetNum,
const RCP< Array< int > > &  cellLIDs,
const double  constCoeff,
const double *const   coeff,
RCP< Array< double > > &  A 
) const [inline, virtual]

void CurveQuadratureIntegral::transformOneForm ( const CellJacobianBatch JTrans,
const CellJacobianBatch JVol,
const Array< int > &  facetIndex,
const RCP< Array< int > > &  cellLIDs,
const double  constCoeff,
const double *const   coeff,
RCP< Array< double > > &  A 
) const

void CurveQuadratureIntegral::transformSummingFirst ( int  nCells,
const CellJacobianBatch JVol,
const Array< int > &  facetIndex,
const RCP< Array< int > > &  cellLIDs,
const double  constCoeff,
const double *const   GPtr,
const double *const   coeff,
RCP< Array< double > > &  A 
) const [private]

Do the integration by summing reference quantities over quadrature points and then transforming the sum to physical quantities.

Definition at line 608 of file SundanceCurveQuadratureIntegral.cpp.

References Sundance::CellJacobianBatch::detJ(), and Sundance::CellJacobianBatch::numCells().

Referenced by transformOneForm(), and transformTwoForm().

void Sundance::CurveQuadratureIntegral::transformSummingLast ( int  nCells,
const Array< int > &  facetIndex,
const RCP< Array< int > > &  cellLIDs,
const double *const   GPtr,
const double *const   coeff,
RCP< Array< double > > &  A 
) const [private]

Do the integration by transforming to physical coordinates at each quadrature point, and then summing

void CurveQuadratureIntegral::transformTwoForm ( const CellJacobianBatch JTrans,
const CellJacobianBatch JVol,
const Array< int > &  facetIndex,
const RCP< Array< int > > &  cellLIDs,
const double  constCoeff,
const double *const   coeff,
RCP< Array< double > > &  A 
) const [virtual]

void CurveQuadratureIntegral::transformZeroForm ( const CellJacobianBatch JTrans,
const CellJacobianBatch JVol,
const Array< int > &  isLocalFlag,
const Array< int > &  facetIndex,
const RCP< Array< int > > &  cellLIDs,
const double  constCoeff,
const double *const   coeff,
RCP< Array< double > > &  A 
) const [virtual]

void CurveQuadratureIntegral::updateRefCellInformation ( int  maxCellLID,
const ParametrizedCurve &  curve 
) const [private]

void CurveQuadratureIntegral::updateRefCellIntegralOneForm ( int  maxCellLID,
int  cellInBatch 
) const [private]

void CurveQuadratureIntegral::updateRefCellIntegralTwoForm ( int  maxCellLID,
int  cellInBatch 
) const [private]

bool Sundance::CurveQuadratureIntegral::useSumFirstMethod (  )  const [inline, private]

Determine whether to do this batch of integrals using the sum-first method or the sum-last method

Definition at line 163 of file SundanceCurveQuadratureIntegral.hpp.

References useSumFirstMethod_.

double& Sundance::CurveQuadratureIntegral::wValue ( int  q,
int  testDerivDir,
int  testNode 
) const [inline, private]

const double& Sundance::CurveQuadratureIntegral::wValue ( int  facetCase,
int  q,
int  testDerivDir,
int  testNode,
int  unkDerivDir,
int  unkNode 
) const [inline, private]

double& Sundance::CurveQuadratureIntegral::wValue ( int  q,
int  testDerivDir,
int  testNode,
int  unkDerivDir,
int  unkNode 
) const [inline, private]


Member Data Documentation

The quadrature family needed for curve integration

Definition at line 194 of file SundanceCurveQuadratureIntegral.hpp.

Referenced by updateRefCellInformation().

The derivative of the curve at the curve

Definition at line 213 of file SundanceCurveQuadratureIntegral.hpp.

Referenced by CurveQuadratureIntegral(), transformOneForm(), transformTwoForm(), and updateRefCellInformation().

The derivative of the curve at the curve

Definition at line 216 of file SundanceCurveQuadratureIntegral.hpp.

Referenced by CurveQuadratureIntegral(), and updateRefCellInformation().

weather to use constant coefficients

Definition at line 210 of file SundanceCurveQuadratureIntegral.hpp.

Referenced by transformOneForm(), and transformTwoForm().

Definition at line 207 of file SundanceCurveQuadratureIntegral.hpp.

Referenced by useSumFirstMethod().

Array<double> Sundance::CurveQuadratureIntegral::W_ [mutable, private]

Site Contact