
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().