Sundance::MaximalQuadratureIntegral Class Reference

Integration by quadrature over a maximal cell. More...

Inheritance diagram for Sundance::MaximalQuadratureIntegral:

Sundance::ElementIntegral

List of all members.

Public Member Functions

 MaximalQuadratureIntegral (const CellType &maxCellType, const QuadratureFamily &quad, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
 Construct a zero-form to be computed by quadrature.
 MaximalQuadratureIntegral (const CellType &maxCellType, const BasisFamily &testBasis, int alpha, int testDerivOrder, const QuadratureFamily &quad, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
 Construct a one form to be computed by quadrature.
 MaximalQuadratureIntegral (const CellType &maxCellType, 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)
 Construct a two-form to be computed by quadrature.
virtual ~MaximalQuadratureIntegral ()
 virtual dtor
virtual void transform (const CellJacobianBatch &JTrans, const CellJacobianBatch &JVol, const Array< int > &isLocalFlag, const Array< int > &facetNum, const RCP< Array< int > > &cellLIDs, 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 *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 *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 *const coeff, RCP< Array< double > > &A) const

Private Member Functions

void transformSummingFirst (int nCells, const Array< int > &facetIndex, const RCP< Array< int > > &cellLIDs, const double *const GPtr, const double *const coeff, RCP< Array< double > > &A) const
 Do the integration by summing reference quantities over quadrature points and then transforming the sum to physical quantities.
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
 Do the integration by transforming to physical coordinates at each quadrature point, and then summing.
bool useSumFirstMethod () const
 Determine whether to do this batch of integrals using the sum-first method or the sum-last method.
double & wValue (int q, int testDerivDir, int testNode, int unkDerivDir, int unkNode)
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 double & wValue (int q, int testDerivDir, int testNode) const

Private Attributes

Array< double > W_
bool useSumFirstMethod_
Array< Array< Array< double > > > W_ACI_F1_
 For ACI (ACI = Adaptive Cell Integration), store the reference integral values for one form The indexes facet, quadPoints, nRefDerivTest , nNodesTest.
Array< Array< Array< Array
< Array< double > > > > > 
W_ACI_F2_
 For ACI (ACI = Adaptive Cell Integration), store the reference integral values for two form The indexes quadPoints, nRefDerivTest , nNodesTest , nRefDerivUnk , nNodesUnk.
QuadratureFamily quad_
 The quadrature family needed for special integration (ACI).
Array< PointquadPts_
 The quadrature points.
Array< double > quadWeights_
 The standard weights (in case of ACI these might change).


Detailed Description

Integration by quadrature over a maximal cell.

Definition at line 45 of file SundanceMaximalQuadratureIntegral.hpp.


Constructor & Destructor Documentation

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

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

MaximalQuadratureIntegral::MaximalQuadratureIntegral ( const CellType maxCellType,
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::MaximalQuadratureIntegral::~MaximalQuadratureIntegral (  )  [inline, virtual]

virtual dtor

Definition at line 82 of file SundanceMaximalQuadratureIntegral.hpp.


Member Function Documentation

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

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

void MaximalQuadratureIntegral::transformSummingFirst ( 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 summing reference quantities over quadrature points and then transforming the sum to physical quantities.

Definition at line 648 of file SundanceMaximalQuadratureIntegral.cpp.

Referenced by transformOneForm(), and transformTwoForm().

void Sundance::MaximalQuadratureIntegral::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 MaximalQuadratureIntegral::transformTwoForm ( const CellJacobianBatch JTrans,
const CellJacobianBatch JVol,
const Array< int > &  facetIndex,
const RCP< Array< int > > &  cellLIDs,
const double *const   coeff,
RCP< Array< double > > &  A 
) const [virtual]

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

bool Sundance::MaximalQuadratureIntegral::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 145 of file SundanceMaximalQuadratureIntegral.hpp.

References useSumFirstMethod_.

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

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

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

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


Member Data Documentation

The quadrature family needed for special integration (ACI).

Definition at line 195 of file SundanceMaximalQuadratureIntegral.hpp.

Referenced by transformOneForm(), and transformTwoForm().

The quadrature points.

Definition at line 198 of file SundanceMaximalQuadratureIntegral.hpp.

Referenced by MaximalQuadratureIntegral(), transformOneForm(), and transformTwoForm().

The standard weights (in case of ACI these might change).

Definition at line 201 of file SundanceMaximalQuadratureIntegral.hpp.

Referenced by MaximalQuadratureIntegral(), transformOneForm(), and transformTwoForm().

Definition at line 184 of file SundanceMaximalQuadratureIntegral.hpp.

Referenced by useSumFirstMethod().

Array<double> Sundance::MaximalQuadratureIntegral::W_ [private]

Array<Array<Array<double> > > Sundance::MaximalQuadratureIntegral::W_ACI_F1_ [private]

For ACI (ACI = Adaptive Cell Integration), store the reference integral values for one form The indexes facet, quadPoints, nRefDerivTest , nNodesTest.

Definition at line 188 of file SundanceMaximalQuadratureIntegral.hpp.

Referenced by MaximalQuadratureIntegral(), and transformOneForm().

Array<Array<Array<Array<Array<double> > > > > Sundance::MaximalQuadratureIntegral::W_ACI_F2_ [private]

For ACI (ACI = Adaptive Cell Integration), store the reference integral values for two form The indexes quadPoints, nRefDerivTest , nNodesTest , nRefDerivUnk , nNodesUnk.

Definition at line 192 of file SundanceMaximalQuadratureIntegral.hpp.

Referenced by MaximalQuadratureIntegral(), and transformTwoForm().

Site Contact