Public Member Functions | |
MaximalQuadratureIntegral (const CellType &maxCellType, const QuadratureFamily &quad, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb) | |
MaximalQuadratureIntegral (const CellType &maxCellType, const BasisFamily &testBasis, int alpha, int testDerivOrder, const QuadratureFamily &quad, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb) | |
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 | ~MaximalQuadratureIntegral () |
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 |
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 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_ |
Array< Array< Array< Array < Array< double > > > > > | W_ACI_F2_ |
QuadratureFamily | quad_ |
Array< Point > | quadPts_ |
Array< double > | quadWeights_ |
Definition at line 45 of file SundanceMaximalQuadratureIntegral.hpp.
MaximalQuadratureIntegral::MaximalQuadratureIntegral | ( | const CellType & | maxCellType, | |
const QuadratureFamily & | quad, | |||
const ParametrizedCurve & | globalCurve, | |||
const Mesh & | mesh, | |||
int | verb | |||
) |
Construct a zero-form to be computed by quadrature
Definition at line 78 of file SundanceMaximalQuadratureIntegral.cpp.
References Sundance::ElementIntegral::describe(), Sundance::QuadratureFamily::getPoints(), Playa::Out::os(), quadPts_, quadWeights_, Sundance::ElementIntegral::setupVerb(), SUNDANCE_MSG1, and W_.
MaximalQuadratureIntegral::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
Definition at line 112 of file SundanceMaximalQuadratureIntegral.cpp.
References Sundance::ElementIntegral::addFlops(), Sundance::ElementIntegral::assertLinearForm(), Sundance::ElementIntegral::chop(), Sundance::ElementIntegral::describe(), Sundance::BasisFamily::dim(), Sundance::ElementIntegral::evalCellType(), Sundance::QuadratureFamily::getPoints(), Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nRefDerivTest(), Playa::Out::os(), quadPts_, quadWeights_, Sundance::BasisFamily::refEval(), Sundance::ElementIntegral::setupVerb(), SUNDANCE_MSG1, W_, W_ACI_F1_, and wValue().
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 | |||
) |
Construct a two-form to be computed by quadrature
Definition at line 184 of file SundanceMaximalQuadratureIntegral.cpp.
References Sundance::ElementIntegral::addFlops(), Sundance::ElementIntegral::assertBilinearForm(), Sundance::ElementIntegral::chop(), Sundance::ElementIntegral::describe(), Sundance::BasisFamily::dim(), Sundance::ElementIntegral::evalCellType(), Sundance::QuadratureFamily::getPoints(), Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::ElementIntegral::nRefDerivTest(), Sundance::ElementIntegral::nRefDerivUnk(), Playa::Out::os(), quadPts_, quadWeights_, Sundance::BasisFamily::refEval(), Sundance::ElementIntegral::setupVerb(), SUNDANCE_MSG1, W_, W_ACI_F2_, and wValue().
virtual Sundance::MaximalQuadratureIntegral::~MaximalQuadratureIntegral | ( | ) | [inline, virtual] |
virtual dtor
Definition at line 82 of file SundanceMaximalQuadratureIntegral.hpp.
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] |
Definition at line 85 of file SundanceMaximalQuadratureIntegral.hpp.
References Sundance::ElementIntegral::order(), transformOneForm(), transformTwoForm(), and transformZeroForm().
Referenced by Sundance::IntegralGroup::evaluate().
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 |
Definition at line 376 of file SundanceMaximalQuadratureIntegral.cpp.
References Sundance::ElementIntegral::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(), maxCellQuadrature1Timer(), Sundance::ElementIntegral::mesh(), Sundance::ElementIntegral::nNodes(), Sundance::CellJacobianBatch::numCells(), Sundance::ElementIntegral::order(), Playa::Out::os(), quad_, quadPts_, quadWeights_, SUNDANCE_MSG2, SUNDANCE_MSG4, SUNDANCE_MSG5, Sundance::ElementIntegral::testDerivOrder(), transformSummingFirst(), Sundance::ElementIntegral::transformVerb(), W_, W_ACI_F1_, and Sundance::writeTable().
Referenced by transform().
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 662 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] |
Definition at line 529 of file SundanceMaximalQuadratureIntegral.cpp.
References Sundance::ElementIntegral::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(), maxCellQuadrature2Timer(), Sundance::ElementIntegral::mesh(), Sundance::ElementIntegral::nNodes(), Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::CellJacobianBatch::numCells(), Sundance::ElementIntegral::order(), quad_, quadPts_, quadWeights_, SUNDANCE_MSG2, Sundance::ElementIntegral::testDerivOrder(), transformSummingFirst(), Sundance::ElementIntegral::transformVerb(), Sundance::ElementIntegral::unkDerivOrder(), W_, and W_ACI_F2_.
Referenced by transform().
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] |
Definition at line 283 of file SundanceMaximalQuadratureIntegral.cpp.
References Sundance::CellJacobianBatch::detJ(), maxCellQuadrature0Timer(), Sundance::CellJacobianBatch::numCells(), Playa::Out::os(), SUNDANCE_MSG1, SUNDANCE_MSG5, and Sundance::writeTable().
Referenced by transform().
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] |
Definition at line 177 of file SundanceMaximalQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nRefDerivTest(), and W_.
double& Sundance::MaximalQuadratureIntegral::wValue | ( | int | q, | |
int | testDerivDir, | |||
int | testNode | |||
) | [inline, private] |
Definition at line 172 of file SundanceMaximalQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nRefDerivTest(), and W_.
const double& Sundance::MaximalQuadratureIntegral::wValue | ( | int | facetCase, | |
int | q, | |||
int | testDerivDir, | |||
int | testNode, | |||
int | unkDerivDir, | |||
int | unkNode | |||
) | const [inline, private] |
Definition at line 159 of file SundanceMaximalQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::ElementIntegral::nRefDerivTest(), Sundance::ElementIntegral::nRefDerivUnk(), and W_.
double& Sundance::MaximalQuadratureIntegral::wValue | ( | int | q, | |
int | testDerivDir, | |||
int | testNode, | |||
int | unkDerivDir, | |||
int | unkNode | |||
) | [inline, private] |
Definition at line 148 of file SundanceMaximalQuadratureIntegral.hpp.
References Sundance::ElementIntegral::nNodesTest(), Sundance::ElementIntegral::nNodesUnk(), Sundance::ElementIntegral::nRefDerivTest(), Sundance::ElementIntegral::nRefDerivUnk(), and W_.
Referenced by MaximalQuadratureIntegral().
The quadrature family needed for special integration (ACI)
Definition at line 195 of file SundanceMaximalQuadratureIntegral.hpp.
Referenced by transformOneForm(), and transformTwoForm().
Array<Point> Sundance::MaximalQuadratureIntegral::quadPts_ [private] |
The quadrature points
Definition at line 198 of file SundanceMaximalQuadratureIntegral.hpp.
Referenced by MaximalQuadratureIntegral(), transformOneForm(), and transformTwoForm().
Array<double> Sundance::MaximalQuadratureIntegral::quadWeights_ [private] |
The standard weights (in case of ACI these might change)
Definition at line 201 of file SundanceMaximalQuadratureIntegral.hpp.
Referenced by MaximalQuadratureIntegral(), transformOneForm(), and transformTwoForm().
bool Sundance::MaximalQuadratureIntegral::useSumFirstMethod_ [private] |
Definition at line 184 of file SundanceMaximalQuadratureIntegral.hpp.
Referenced by useSumFirstMethod().
Array<double> Sundance::MaximalQuadratureIntegral::W_ [private] |
Definition at line 181 of file SundanceMaximalQuadratureIntegral.hpp.
Referenced by MaximalQuadratureIntegral(), transformOneForm(), transformTwoForm(), and wValue().
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().