Sundance::ElementIntegral Class Reference

ElementIntegral encapsulates the common data needed for the integration of groups of related zero-forms, one-forms, and two-forms. More...

Inheritance diagram for Sundance::ElementIntegral:

Sundance::CurveQuadratureIntegral Sundance::MaximalQuadratureIntegral Sundance::QuadratureIntegralBase Sundance::RefIntegral Sundance::QuadratureIntegral

List of all members.

Public Member Functions

 ElementIntegral (int spatialDim, const CellType &maxCellType, int dim, const CellType &cellType, bool isInternalBdry, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
 Construct a zero-form.
 ElementIntegral (int spatialDim, const CellType &maxCellType, int dim, const CellType &cellType, const BasisFamily &testBasis, int alpha, int testDerivOrder, bool isInternalBdry, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
 Construct a one-form.
 ElementIntegral (int spatialDim, const CellType &maxCellType, int dim, const CellType &cellType, const BasisFamily &testBasis, int alpha, int testDerivOrder, const BasisFamily &unkBasis, int beta, int unkDerivOrder, bool isInternalBdry, const ParametrizedCurve &globalCurve, const Mesh &mesh, int verb)
 Construct a two-form.
virtual ~ElementIntegral ()
 virtual dtor
int order () const
 Indicate whether this element integral is a zero, one, or two form.
int nNodesTest () const
 Return the number of nodes associated with the test function.
int nNodesUnk () const
 Return the number of nodes associated with the test function.
int nNodes () const
 Return the total number of elements in this local stiffness matrix.
int nFacetCases () const
 Return the number of different facets for which integrals must be tabulated in the cases where an integral must be done by referring back to a maximal cell.
bool isInternalBdry () const
 Whether this is an integral on an internal boundary.
void setVerb (int integrationVerb, int transformVerb)
int setupVerb () const
int integrationVerb () const
int transformVerb () const
void describe (std::ostream &os) const
BasisFamilygetTestBasis ()
BasisFamilygetUnknownBasis ()

Static Public Member Functions

static bool & alwaysUseCofacets ()
static int & transformationMatrixIsValid (int alpha)
static int & transformationMatrixIsValid (int alpha, int beta)
static void invalidateTransformationMatrices ()
static double & totalFlops ()

Protected Member Functions

void assertBilinearForm () const
void assertLinearForm () const
int dim () const
 The dimension of the cell being integrated.
int spatialDim () const
 The dimension of the space in which the cell is embedded.
int nRefDerivTest () const
 Number of test function derivatives wrt reference coordinates that are needed to evaluate this integral.
int nRefDerivUnk () const
 Number of unknown function derivatives wrt reference coordinates that are needed to evaluate this integral.
int testDerivOrder () const
 The order to which the test function is differentiated in this integral.
int unkDerivOrder () const
 The order to which the unknown function is differentiated in this integral.
int alpha () const
int beta () const
const CellTypecellType () const
const CellTypemaxCellType () const
const CellTypeevalCellType () const
const BasisFamilytestBasis () const
const BasisFamilyunkBasis () const
void getQuad (const QuadratureFamily &quad, int evalCase, Array< Point > &quadPts, Array< double > &quadWeights) const
void createTwoFormTransformationMatrix (const CellJacobianBatch &JTrans, const CellJacobianBatch &JVol) const
void createOneFormTransformationMatrix (const CellJacobianBatch &JTrans, const CellJacobianBatch &JVol) const
const Meshmesh () const
const ParametrizedCurve & globalCurve () const

Static Protected Member Functions

static void addFlops (const double &flops)
static Array< double > & G (int gamma)
 Workspace for element transformations involving one derivative.
static Array< double > & G (int gamma, int delta)
 Workspace for element transformations involving two derivatives.
static int ipow (int base, int power)
 return base to the given power
static double chopVal ()
 The value below which chop() sets numbers to zero.
static double chop (const double &x)
 Chop a number to zero if it is smaller in magnitude than the value chopVal().

Private Attributes

int setupVerb_
int integrationVerb_
int transformVerb_
int spatialDim_
int dim_
bool isInternalBdry_
int nFacetCases_
int testDerivOrder_
int nRefDerivTest_
int nNodesTest_
int unkDerivOrder_
int nRefDerivUnk_
int nNodesUnk_
int nNodes_
int order_
int alpha_
int beta_
CellType cellType_
CellType maxCellType_
CellType evalCellType_
BasisFamily testBasis_
BasisFamily unkBasis_
const ParametrizedCurve globalCurve_
 The curve which might be used for adaptive integration method.
const Mesh mesh_
 The curve which might be used for adaptive integration method.


Detailed Description

ElementIntegral encapsulates the common data needed for the integration of groups of related zero-forms, one-forms, and two-forms.

Definition at line 52 of file SundanceElementIntegral.hpp.


Constructor & Destructor Documentation

ElementIntegral::ElementIntegral ( int  spatialDim,
const CellType maxCellType,
int  dim,
const CellType cellType,
bool  isInternalBdry,
const ParametrizedCurve &  globalCurve,
const Mesh mesh,
int  verb 
)

ElementIntegral::ElementIntegral ( int  spatialDim,
const CellType maxCellType,
int  dim,
const CellType cellType,
const BasisFamily testBasis,
int  alpha,
int  testDerivOrder,
bool  isInternalBdry,
const ParametrizedCurve &  globalCurve,
const Mesh mesh,
int  verb 
)

ElementIntegral::ElementIntegral ( int  spatialDim,
const CellType maxCellType,
int  dim,
const CellType cellType,
const BasisFamily testBasis,
int  alpha,
int  testDerivOrder,
const BasisFamily unkBasis,
int  beta,
int  unkDerivOrder,
bool  isInternalBdry,
const ParametrizedCurve &  globalCurve,
const Mesh mesh,
int  verb 
)

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

virtual dtor

Definition at line 95 of file SundanceElementIntegral.hpp.


Member Function Documentation

static void Sundance::ElementIntegral::addFlops ( const double &  flops  )  [inline, static, protected]

int Sundance::ElementIntegral::alpha (  )  const [inline, protected]

bool & ElementIntegral::alwaysUseCofacets (  )  [static]

Definition at line 49 of file SundanceElementIntegral.cpp.

Referenced by ElementIntegral().

void ElementIntegral::assertBilinearForm (  )  const [protected]

void ElementIntegral::assertLinearForm (  )  const [protected]

int Sundance::ElementIntegral::beta (  )  const [inline, protected]

const CellType& Sundance::ElementIntegral::cellType (  )  const [inline, protected]

static double Sundance::ElementIntegral::chop ( const double &  x  )  [inline, static, protected]

static double Sundance::ElementIntegral::chopVal (  )  [inline, static, protected]

The value below which chop() sets numbers to zero.

Definition at line 221 of file SundanceElementIntegral.hpp.

Referenced by chop().

void ElementIntegral::createOneFormTransformationMatrix ( const CellJacobianBatch JTrans,
const CellJacobianBatch JVol 
) const [protected]

void ElementIntegral::createTwoFormTransformationMatrix ( const CellJacobianBatch JTrans,
const CellJacobianBatch JVol 
) const [protected]

void ElementIntegral::describe ( std::ostream &  os  )  const

int Sundance::ElementIntegral::dim (  )  const [inline, protected]

const CellType& Sundance::ElementIntegral::evalCellType (  )  const [inline, protected]

Array< double > & ElementIntegral::G ( int  gamma,
int  delta 
) [static, protected]

Workspace for element transformations involving two derivatives.

Definition at line 350 of file SundanceElementIntegral.cpp.

Array< double > & ElementIntegral::G ( int  gamma  )  [static, protected]

void ElementIntegral::getQuad ( const QuadratureFamily quad,
int  evalCase,
Array< Point > &  quadPts,
Array< double > &  quadWeights 
) const [protected]

BasisFamily& Sundance::ElementIntegral::getTestBasis (  )  [inline]

Definition at line 152 of file SundanceElementIntegral.hpp.

References testBasis_.

BasisFamily& Sundance::ElementIntegral::getUnknownBasis (  )  [inline]

Definition at line 153 of file SundanceElementIntegral.hpp.

References unkBasis_.

const ParametrizedCurve& Sundance::ElementIntegral::globalCurve (  )  const [inline, protected]

int Sundance::ElementIntegral::integrationVerb (  )  const [inline]

void ElementIntegral::invalidateTransformationMatrices (  )  [static]

Definition at line 369 of file SundanceElementIntegral.cpp.

References transformationMatrixIsValid().

int ElementIntegral::ipow ( int  base,
int  power 
) [static, protected]

return base to the given power

Definition at line 384 of file SundanceElementIntegral.cpp.

bool Sundance::ElementIntegral::isInternalBdry (  )  const [inline]

Whether this is an integral on an internal boundary.

Definition at line 117 of file SundanceElementIntegral.hpp.

References isInternalBdry_.

const CellType& Sundance::ElementIntegral::maxCellType (  )  const [inline, protected]

Definition at line 200 of file SundanceElementIntegral.hpp.

References maxCellType_.

Referenced by describe(), and getQuad().

const Mesh& Sundance::ElementIntegral::mesh (  )  const [inline, protected]

int Sundance::ElementIntegral::nFacetCases (  )  const [inline]

int Sundance::ElementIntegral::nNodes (  )  const [inline]

int Sundance::ElementIntegral::nNodesTest (  )  const [inline]

int Sundance::ElementIntegral::nNodesUnk (  )  const [inline]

int Sundance::ElementIntegral::nRefDerivTest (  )  const [inline, protected]

int Sundance::ElementIntegral::nRefDerivUnk (  )  const [inline, protected]

int Sundance::ElementIntegral::order (  )  const [inline]

int Sundance::ElementIntegral::setupVerb (  )  const [inline]

void ElementIntegral::setVerb ( int  integrationVerb,
int  transformVerb 
)

Definition at line 248 of file SundanceElementIntegral.cpp.

References integrationVerb_, and transformVerb_.

int Sundance::ElementIntegral::spatialDim (  )  const [inline, protected]

The dimension of the space in which the cell is embedded.

Definition at line 170 of file SundanceElementIntegral.hpp.

References spatialDim_.

Referenced by Sundance::CurveQuadratureIntegral::updateRefCellInformation().

const BasisFamily& Sundance::ElementIntegral::testBasis (  )  const [inline, protected]

int Sundance::ElementIntegral::testDerivOrder (  )  const [inline, protected]

static double& Sundance::ElementIntegral::totalFlops (  )  [inline, static]

Reimplemented in Sundance::QuadratureIntegralBase, and Sundance::RefIntegral.

Definition at line 150 of file SundanceElementIntegral.hpp.

Referenced by addFlops().

int & ElementIntegral::transformationMatrixIsValid ( int  alpha,
int  beta 
) [static]

Definition at line 357 of file SundanceElementIntegral.cpp.

int & ElementIntegral::transformationMatrixIsValid ( int  alpha  )  [static]

Definition at line 363 of file SundanceElementIntegral.cpp.

Referenced by invalidateTransformationMatrices().

int Sundance::ElementIntegral::transformVerb (  )  const [inline]

const BasisFamily& Sundance::ElementIntegral::unkBasis (  )  const [inline, protected]

int Sundance::ElementIntegral::unkDerivOrder (  )  const [inline, protected]


Member Data Documentation

Definition at line 278 of file SundanceElementIntegral.hpp.

Referenced by alpha().

Definition at line 280 of file SundanceElementIntegral.hpp.

Referenced by beta().

Definition at line 282 of file SundanceElementIntegral.hpp.

Referenced by cellType().

Definition at line 256 of file SundanceElementIntegral.hpp.

Referenced by dim().

Definition at line 286 of file SundanceElementIntegral.hpp.

Referenced by ElementIntegral(), and evalCellType().

const ParametrizedCurve Sundance::ElementIntegral::globalCurve_ [private]

The curve which might be used for adaptive integration method.

Definition at line 293 of file SundanceElementIntegral.hpp.

Referenced by globalCurve().

Definition at line 251 of file SundanceElementIntegral.hpp.

Referenced by integrationVerb(), and setVerb().

Definition at line 258 of file SundanceElementIntegral.hpp.

Referenced by isInternalBdry().

Definition at line 284 of file SundanceElementIntegral.hpp.

Referenced by ElementIntegral(), and maxCellType().

The curve which might be used for adaptive integration method.

Definition at line 296 of file SundanceElementIntegral.hpp.

Referenced by mesh().

Definition at line 260 of file SundanceElementIntegral.hpp.

Referenced by ElementIntegral(), and nFacetCases().

Definition at line 274 of file SundanceElementIntegral.hpp.

Referenced by ElementIntegral(), and nNodes().

Definition at line 266 of file SundanceElementIntegral.hpp.

Referenced by ElementIntegral(), and nNodesTest().

Definition at line 272 of file SundanceElementIntegral.hpp.

Referenced by ElementIntegral(), and nNodesUnk().

Definition at line 264 of file SundanceElementIntegral.hpp.

Referenced by nRefDerivTest().

Definition at line 270 of file SundanceElementIntegral.hpp.

Referenced by nRefDerivUnk().

Definition at line 276 of file SundanceElementIntegral.hpp.

Referenced by order().

Definition at line 250 of file SundanceElementIntegral.hpp.

Referenced by setupVerb().

Definition at line 254 of file SundanceElementIntegral.hpp.

Referenced by spatialDim().

Definition at line 288 of file SundanceElementIntegral.hpp.

Referenced by getTestBasis(), and testBasis().

Definition at line 262 of file SundanceElementIntegral.hpp.

Referenced by testDerivOrder().

Definition at line 252 of file SundanceElementIntegral.hpp.

Referenced by setVerb(), and transformVerb().

Definition at line 290 of file SundanceElementIntegral.hpp.

Referenced by getUnknownBasis(), and unkBasis().

Definition at line 268 of file SundanceElementIntegral.hpp.

Referenced by unkDerivOrder().

Site Contact