Public Member Functions | |
QuadratureIntegral (int spatialDim, const CellType &maxCellType, int dim, const CellType &cellType, const QuadratureFamily &quad, bool isInternalBdry, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb) | |
QuadratureIntegral (int spatialDim, const CellType &maxCellType, int dim, const CellType &cellType, const BasisFamily &testBasis, int alpha, int testDerivOrder, const QuadratureFamily &quad, bool isInternalBdry, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb) | |
QuadratureIntegral (int spatialDim, const CellType &maxCellType, int dim, const CellType &cellType, const BasisFamily &testBasis, int alpha, int testDerivOrder, const BasisFamily &unkBasis, int beta, int unkDerivOrder, const QuadratureFamily &quad, bool isInternalBdry, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb) | |
virtual | ~QuadratureIntegral () |
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 |
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 facetCase, 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 facetCase, int q, int testDerivDir, int testNode) |
const double & | wValue (int facetCase, int q, int testDerivDir, int testNode) const |
Private Attributes | |
Array< Array< double > > | W_ |
bool | useSumFirstMethod_ |
Array< Array< Array< Array < double > > > > | W_ACI_F1_ |
Array< Array< Array< Array < Array< Array< double > > > > > > | W_ACI_F2_ |
QuadratureFamily | quad_ |
Array< Array< Point > > | quadPts_ |
Array< Array< double > > | quadWeights_ |
Definition at line 46 of file SundanceQuadratureIntegral.hpp.
QuadratureIntegral::QuadratureIntegral | ( | int | spatialDim, | |
const CellType & | maxCellType, | |||
int | dim, | |||
const CellType & | cellType, | |||
const QuadratureFamily & | quad, | |||
bool | isInternalBdry, | |||
const ParametrizedCurve & | globalCurve, | |||
const Mesh & | mesh, | |||
int | verb | |||
) |
Construct a zero-form to be computed by quadrature
Definition at line 78 of file SundanceQuadratureIntegral.cpp.
References Sundance::ElementIntegral::describe(), Sundance::ElementIntegral::getQuad(), Sundance::ElementIntegral::nFacetCases(), Sundance::QuadratureIntegralBase::nQuad(), Sundance::QuadratureIntegralBase::nQuad_, Playa::Out::os(), quad_, quadPts_, quadWeights_, Sundance::ElementIntegral::setupVerb(), SUNDANCE_MSG1, and W_.
QuadratureIntegral::QuadratureIntegral | ( | int | spatialDim, | |
const CellType & | maxCellType, | |||
int | dim, | |||
const CellType & | cellType, | |||
const BasisFamily & | testBasis, | |||
int | alpha, | |||
int | testDerivOrder, | |||
const QuadratureFamily & | quad, | |||
bool | isInternalBdry, | |||
const ParametrizedCurve & | globalCurve, | |||
const Mesh & | mesh, | |||
int | verb | |||
) |
Construct a one form to be computed by quadrature
Definition at line 129 of file SundanceQuadratureIntegral.cpp.
References Sundance::QuadratureIntegralBase::addFlops(), Sundance::ElementIntegral::assertLinearForm(), Sundance::ElementIntegral::chop(), Sundance::ElementIntegral::describe(), Sundance::BasisFamily::dim(), Sundance::ElementIntegral::evalCellType(), Sundance::ElementIntegral::getQuad(), Sundance::ElementIntegral::nFacetCases(), Sundance::ElementIntegral::nNodesTest(), Sundance::QuadratureIntegralBase::nQuad(), Sundance::QuadratureIntegralBase::nQuad_, Sundance::ElementIntegral::nRefDerivTest(), Playa::Out::os(), quad_, quadPts_, quadWeights_, Sundance::BasisFamily::refEval(), Sundance::ElementIntegral::setupVerb(), SUNDANCE_MSG1, W_, W_ACI_F1_, and wValue().
QuadratureIntegral::QuadratureIntegral | ( | int | spatialDim, | |
const CellType & | maxCellType, | |||
int | dim, | |||
const CellType & | cellType, | |||
const BasisFamily & | testBasis, | |||
int | alpha, | |||
int | testDerivOrder, | |||
const BasisFamily & | unkBasis, | |||
int | beta, | |||
int | unkDerivOrder, | |||
const QuadratureFamily & | quad, | |||
bool | isInternalBdry, | |||
const ParametrizedCurve & | globalCurve, | |||
const Mesh & | mesh, | |||
int | verb | |||
) |
Construct a two-form to be computed by quadrature
Definition at line 222 of file SundanceQuadratureIntegral.cpp.
References Sundance::QuadratureIntegralBase::addFlops(), Sundance::ElementIntegral::assertBilinearForm(), Sundance::ElementIntegral::chop(), Sundance::ElementIntegral::describe(), Sundance::BasisFamily::dim(), Sundance::ElementIntegral::evalCellType(), Sundance::ElementIntegral::getQuad(), Sundance::ElementIntegral::nFacetCases(), Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::QuadratureIntegralBase::nQuad(), Sundance::QuadratureIntegralBase::nQuad_, Sundance::ElementIntegral::nRefDerivTest(), Sundance::ElementIntegral::nRefDerivUnk(), Playa::Out::os(), quad_, quadPts_, quadWeights_, Sundance::BasisFamily::refEval(), Sundance::ElementIntegral::setupVerb(), SUNDANCE_MSG1, W_, W_ACI_F2_, and wValue().
virtual Sundance::QuadratureIntegral::~QuadratureIntegral | ( | ) | [inline, virtual] |
virtual dtor
Definition at line 93 of file SundanceQuadratureIntegral.hpp.
void QuadratureIntegral::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 [virtual] |
Implements Sundance::QuadratureIntegralBase.
Definition at line 503 of file SundanceQuadratureIntegral.cpp.
References Sundance::QuadratureIntegralBase::addFlops(), Sundance::ElementIntegral::alpha(), Sundance::ElementIntegral::cellType(), Sundance::ElementIntegral::chop(), Sundance::ElementIntegral::createOneFormTransformationMatrix(), Sundance::CellJacobianBatch::detJ(), Sundance::ElementIntegral::dim(), Sundance::ElementIntegral::G(), Sundance::QuadratureFamily::getAdaptedWeights(), Sundance::ElementIntegral::globalCurve(), Sundance::ElementIntegral::integrationVerb(), Sundance::ElementIntegral::mesh(), Sundance::ElementIntegral::nFacetCases(), Sundance::ElementIntegral::nNodes(), Sundance::QuadratureIntegralBase::nQuad(), Sundance::CellJacobianBatch::numCells(), Sundance::ElementIntegral::order(), Playa::Out::os(), quad_, quadPts_, quadrature1Timer(), quadWeights_, SUNDANCE_MSG2, SUNDANCE_MSG4, SUNDANCE_MSG5, Sundance::ElementIntegral::testDerivOrder(), transformSummingFirst(), transformSummingLast(), Sundance::ElementIntegral::transformVerb(), useSumFirstMethod(), W_, W_ACI_F1_, and Sundance::writeTable().
void QuadratureIntegral::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 782 of file SundanceQuadratureIntegral.cpp.
Referenced by transformOneForm(), and transformTwoForm().
void QuadratureIntegral::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
Definition at line 923 of file SundanceQuadratureIntegral.cpp.
Referenced by transformOneForm(), and transformTwoForm().
void QuadratureIntegral::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] |
Implements Sundance::QuadratureIntegralBase.
Definition at line 650 of file SundanceQuadratureIntegral.cpp.
References Sundance::QuadratureIntegralBase::addFlops(), Sundance::ElementIntegral::alpha(), Sundance::ElementIntegral::beta(), Sundance::ElementIntegral::cellType(), Sundance::ElementIntegral::chop(), Sundance::ElementIntegral::createTwoFormTransformationMatrix(), Sundance::CellJacobianBatch::detJ(), Sundance::ElementIntegral::dim(), Sundance::ElementIntegral::G(), Sundance::QuadratureFamily::getAdaptedWeights(), Sundance::ElementIntegral::globalCurve(), Sundance::ElementIntegral::integrationVerb(), Sundance::ElementIntegral::mesh(), Sundance::ElementIntegral::nFacetCases(), Sundance::ElementIntegral::nNodes(), Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::QuadratureIntegralBase::nQuad(), Sundance::CellJacobianBatch::numCells(), Sundance::ElementIntegral::order(), quad_, quadPts_, quadrature2Timer(), quadWeights_, SUNDANCE_MSG2, Sundance::ElementIntegral::testDerivOrder(), transformSummingFirst(), transformSummingLast(), Sundance::ElementIntegral::transformVerb(), Sundance::ElementIntegral::unkDerivOrder(), useSumFirstMethod(), W_, and W_ACI_F2_.
void QuadratureIntegral::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] |
Implements Sundance::QuadratureIntegralBase.
Definition at line 334 of file SundanceQuadratureIntegral.cpp.
References Sundance::QuadratureIntegralBase::addFlops(), Sundance::ElementIntegral::cellType(), Sundance::CellJacobianBatch::detJ(), Sundance::ElementIntegral::dim(), Sundance::QuadratureFamily::getAdaptedWeights(), Sundance::ElementIntegral::globalCurve(), Sundance::ElementIntegral::integrationVerb(), Sundance::ElementIntegral::mesh(), Sundance::ElementIntegral::nFacetCases(), Sundance::QuadratureIntegralBase::nQuad(), Sundance::CellJacobianBatch::numCells(), Sundance::ElementIntegral::order(), Playa::Out::os(), quad_, quadPts_, quadrature0Timer(), quadWeights_, SUNDANCE_MSG1, SUNDANCE_MSG4, SUNDANCE_MSG5, W_, and Sundance::writeTable().
bool Sundance::QuadratureIntegral::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 142 of file SundanceQuadratureIntegral.hpp.
References useSumFirstMethod_.
Referenced by transformOneForm(), and transformTwoForm().
const double& Sundance::QuadratureIntegral::wValue | ( | int | facetCase, | |
int | q, | |||
int | testDerivDir, | |||
int | testNode | |||
) | const [inline, private] |
Definition at line 176 of file SundanceQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nRefDerivTest(), and W_.
double& Sundance::QuadratureIntegral::wValue | ( | int | facetCase, | |
int | q, | |||
int | testDerivDir, | |||
int | testNode | |||
) | [inline, private] |
Definition at line 170 of file SundanceQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nRefDerivTest(), and W_.
const double& Sundance::QuadratureIntegral::wValue | ( | int | facetCase, | |
int | q, | |||
int | testDerivDir, | |||
int | testNode, | |||
int | unkDerivDir, | |||
int | unkNode | |||
) | const [inline, private] |
Definition at line 157 of file SundanceQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::ElementIntegral::nRefDerivTest(), Sundance::ElementIntegral::nRefDerivUnk(), and W_.
double& Sundance::QuadratureIntegral::wValue | ( | int | facetCase, | |
int | q, | |||
int | testDerivDir, | |||
int | testNode, | |||
int | unkDerivDir, | |||
int | unkNode | |||
) | [inline, private] |
Definition at line 145 of file SundanceQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::ElementIntegral::nRefDerivTest(), Sundance::ElementIntegral::nRefDerivUnk(), and W_.
Referenced by QuadratureIntegral().
The quadrature family needed for special integration (ACI)
Reimplemented from Sundance::QuadratureIntegralBase.
Definition at line 195 of file SundanceQuadratureIntegral.hpp.
Referenced by QuadratureIntegral(), transformOneForm(), transformTwoForm(), and transformZeroForm().
Array< Array<Point> > Sundance::QuadratureIntegral::quadPts_ [private] |
The quadrature points
Definition at line 198 of file SundanceQuadratureIntegral.hpp.
Referenced by QuadratureIntegral(), transformOneForm(), transformTwoForm(), and transformZeroForm().
Array< Array<double> > Sundance::QuadratureIntegral::quadWeights_ [private] |
The standard weights (in case of ACI these might change)
Definition at line 201 of file SundanceQuadratureIntegral.hpp.
Referenced by QuadratureIntegral(), transformOneForm(), transformTwoForm(), and transformZeroForm().
bool Sundance::QuadratureIntegral::useSumFirstMethod_ [private] |
Array<Array<double> > Sundance::QuadratureIntegral::W_ [private] |
Definition at line 181 of file SundanceQuadratureIntegral.hpp.
Referenced by QuadratureIntegral(), transformOneForm(), transformTwoForm(), transformZeroForm(), and wValue().
Array<Array<Array<Array<double> > > > Sundance::QuadratureIntegral::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 SundanceQuadratureIntegral.hpp.
Referenced by QuadratureIntegral(), and transformOneForm().
Array<Array<Array<Array<Array<Array<double> > > > > > Sundance::QuadratureIntegral::W_ACI_F2_ [private] |
For ACI (ACI = Adaptive Cell Integration), store the reference integral values for two form The indexes facet, quadPoints, nRefDerivTest , nNodesTest , nRefDerivUnk , nNodesUnk
Definition at line 192 of file SundanceQuadratureIntegral.hpp.
Referenced by QuadratureIntegral(), and transformTwoForm().