MFEM  v4.1.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Friends | List of all members
mfem::IntegrationRule Class Reference

Class for an integration rule - an Array of IntegrationPoint. More...

#include <intrules.hpp>

Inheritance diagram for mfem::IntegrationRule:
[legend]
Collaboration diagram for mfem::IntegrationRule:
[legend]

Public Member Functions

 IntegrationRule ()
 
 IntegrationRule (int NP)
 Construct an integration rule with given number of points. More...
 
 IntegrationRule (IntegrationRule &irx, IntegrationRule &iry)
 Tensor product of two 1D integration rules. More...
 
 IntegrationRule (IntegrationRule &irx, IntegrationRule &iry, IntegrationRule &irz)
 Tensor product of three 1D integration rules. More...
 
int GetOrder () const
 Returns the order of the integration rule. More...
 
void SetOrder (const int order)
 Sets the order of the integration rule. This is only for keeping order information, it does not alter any data in the IntegrationRule. More...
 
int GetNPoints () const
 Returns the number of the points in the integration rule. More...
 
IntegrationPointIntPoint (int i)
 Returns a reference to the i-th integration point. More...
 
const IntegrationPointIntPoint (int i) const
 Returns a const reference to the i-th integration point. More...
 
const Array< double > & GetWeights () const
 Return the quadrature weights in a contiguous array. More...
 
 ~IntegrationRule ()
 Destroys an IntegrationRule object. More...
 
- Public Member Functions inherited from mfem::Array< IntegrationPoint >
 Array ()
 Creates an empty array. More...
 
 Array (MemoryType mt)
 Creates an empty array with a given MemoryType. More...
 
 Array (int asize)
 Creates array of asize elements. More...
 
 Array (IntegrationPoint *_data, int asize)
 
 Array (const Array &src)
 Copy constructor: deep copy. More...
 
 Array (const Array< CT > &src)
 Copy constructor (deep copy) from an Array of convertable type. More...
 
 ~Array ()
 Destructor. More...
 
Array< IntegrationPoint > & operator= (const Array< IntegrationPoint > &src)
 Assignment operator: deep copy. More...
 
Arrayoperator= (const Array< CT > &src)
 Assignment operator (deep copy) from an Array of convertable type. More...
 
void operator= (const IntegrationPoint &a)
 
 operator IntegrationPoint * ()
 Return the data as 'T *'. More...
 
 operator const IntegrationPoint * () const
 Return the data as 'const T *'. More...
 
IntegrationPointGetData ()
 Returns the data. More...
 
const IntegrationPointGetData () const
 Returns the data. More...
 
Memory< IntegrationPoint > & GetMemory ()
 Return a reference to the Memory object used by the Array. More...
 
const Memory< IntegrationPoint > & GetMemory () const
 Return a reference to the Memory object used by the Array, const version. More...
 
bool UseDevice () const
 Return the device flag of the Memory object used by the Array. More...
 
bool OwnsData () const
 Return true if the data will be deleted by the array. More...
 
void StealData (IntegrationPoint **p)
 Changes the ownership of the data. More...
 
void LoseData ()
 NULL-ifies the data. More...
 
void MakeDataOwner () const
 Make the Array own the data. More...
 
int Size () const
 Logical size of the array. More...
 
void SetSize (int nsize)
 Change logical size of the array, keep existing entries. More...
 
void SetSize (int nsize, const IntegrationPoint &initval)
 Same as SetSize(int) plus initialize new entries with 'initval'. More...
 
void SetSize (int nsize, MemoryType mt)
 Resize the array to size nsize using MemoryType mt. Note that unlike the other versions of SetSize(), the current content of the array is not preserved. More...
 
int Capacity () const
 
void Reserve (int capacity)
 Ensures that the allocated size is at least the given size. More...
 
IntegrationPointoperator[] (int i)
 Access element. More...
 
const IntegrationPointoperator[] (int i) const
 Access const element. More...
 
int Append (const IntegrationPoint &el)
 Append element to array, resize if necessary. More...
 
int Append (const IntegrationPoint *els, int nels)
 Append another array to this array, resize if necessary. More...
 
int Append (const Array< IntegrationPoint > &els)
 Append another array to this array, resize if necessary. More...
 
int Prepend (const IntegrationPoint &el)
 Prepend an element to the array, resize if necessary. More...
 
IntegrationPointLast ()
 Return the last element in the array. More...
 
const IntegrationPointLast () const
 
int Union (const IntegrationPoint &el)
 Append element when it is not yet in the array, return index. More...
 
int Find (const IntegrationPoint &el) const
 Return the first index where 'el' is found; return -1 if not found. More...
 
int FindSorted (const IntegrationPoint &el) const
 Do bisection search for 'el' in a sorted array; return -1 if not found. More...
 
void DeleteLast ()
 Delete the last entry. More...
 
void DeleteFirst (const IntegrationPoint &el)
 Delete the first 'el' entry. More...
 
void DeleteAll ()
 Delete whole array. More...
 
void Copy (Array &copy) const
 Create a copy of the current array. More...
 
void MakeRef (IntegrationPoint *, int)
 Make this Array a reference to a pointer. More...
 
void MakeRef (const Array &master)
 Make this Array a reference to 'master'. More...
 
void GetSubArray (int offset, int sa_size, Array< IntegrationPoint > &sa) const
 
void Print (std::ostream &out=mfem::out, int width=4) const
 Prints array to stream with width elements per row. More...
 
void Save (std::ostream &out, int fmt=0) const
 Save the Array to the stream out using the format fmt. The format fmt can be: More...
 
void Load (std::istream &in, int fmt=0)
 Read an Array from the stream in using format fmt. The format fmt can be: More...
 
void Load (int new_size, std::istream &in)
 Set the Array size to new_size and read that many entries from the stream in. More...
 
IntegrationPoint Max () const
 Find the maximal element in the array, using the comparison operator < for class T. More...
 
IntegrationPoint Min () const
 Find the minimal element in the array, using the comparison operator < for class T. More...
 
void Sort ()
 Sorts the array. This requires operator< to be defined for T. More...
 
void Sort (Compare cmp)
 Sorts the array using the supplied comparison function object. More...
 
void Unique ()
 
int IsSorted ()
 return true if the array is sorted. More...
 
void PartialSum ()
 Partial Sum. More...
 
IntegrationPoint Sum ()
 Sum all entries. More...
 
void Assign (const IntegrationPoint *)
 Copy data from a pointer. Size() elements are copied. More...
 
void CopyTo (U *dest)
 
void CopyFrom (const U *src)
 
IntegrationPointbegin ()
 
const IntegrationPointbegin () const
 
IntegrationPointend ()
 
const IntegrationPointend () const
 
long MemoryUsage () const
 
const IntegrationPointRead (bool on_dev=true) const
 Shortcut for mfem::Read(a.GetMemory(), a.Size(), on_dev). More...
 
const IntegrationPointHostRead () const
 Shortcut for mfem::Read(a.GetMemory(), a.Size(), false). More...
 
IntegrationPointWrite (bool on_dev=true)
 Shortcut for mfem::Write(a.GetMemory(), a.Size(), on_dev). More...
 
IntegrationPointHostWrite ()
 Shortcut for mfem::Write(a.GetMemory(), a.Size(), false). More...
 
IntegrationPointReadWrite (bool on_dev=true)
 Shortcut for mfem::ReadWrite(a.GetMemory(), a.Size(), on_dev). More...
 
IntegrationPointHostReadWrite ()
 Shortcut for mfem::ReadWrite(a.GetMemory(), a.Size(), false). More...
 

Friends

class IntegrationRules
 

Additional Inherited Members

- Protected Member Functions inherited from mfem::Array< IntegrationPoint >
void GrowSize (int minsize)
 
- Protected Attributes inherited from mfem::Array< IntegrationPoint >
Memory< IntegrationPointdata
 Pointer to data. More...
 
int size
 Size of the array. More...
 

Detailed Description

Class for an integration rule - an Array of IntegrationPoint.

Definition at line 90 of file intrules.hpp.

Constructor & Destructor Documentation

mfem::IntegrationRule::IntegrationRule ( )
inline

Definition at line 217 of file intrules.hpp.

mfem::IntegrationRule::IntegrationRule ( int  NP)
inlineexplicit

Construct an integration rule with given number of points.

Definition at line 221 of file intrules.hpp.

mfem::IntegrationRule::IntegrationRule ( IntegrationRule irx,
IntegrationRule iry 
)

Tensor product of two 1D integration rules.

Definition at line 30 of file intrules.cpp.

mfem::IntegrationRule::IntegrationRule ( IntegrationRule irx,
IntegrationRule iry,
IntegrationRule irz 
)

Tensor product of three 1D integration rules.

Definition at line 55 of file intrules.cpp.

mfem::IntegrationRule::~IntegrationRule ( )
inline

Destroys an IntegrationRule object.

Definition at line 259 of file intrules.hpp.

Member Function Documentation

int mfem::IntegrationRule::GetNPoints ( ) const
inline

Returns the number of the points in the integration rule.

Definition at line 245 of file intrules.hpp.

int mfem::IntegrationRule::GetOrder ( ) const
inline

Returns the order of the integration rule.

Definition at line 238 of file intrules.hpp.

const Array< double > & mfem::IntegrationRule::GetWeights ( ) const

Return the quadrature weights in a contiguous array.

If a contiguous array is not required, the weights can be accessed with a call like this: IntPoint(i).weight.

Definition at line 85 of file intrules.cpp.

IntegrationPoint& mfem::IntegrationRule::IntPoint ( int  i)
inline

Returns a reference to the i-th integration point.

Definition at line 248 of file intrules.hpp.

const IntegrationPoint& mfem::IntegrationRule::IntPoint ( int  i) const
inline

Returns a const reference to the i-th integration point.

Definition at line 251 of file intrules.hpp.

void mfem::IntegrationRule::SetOrder ( const int  order)
inline

Sets the order of the integration rule. This is only for keeping order information, it does not alter any data in the IntegrationRule.

Definition at line 242 of file intrules.hpp.

Friends And Related Function Documentation

friend class IntegrationRules
friend

Definition at line 93 of file intrules.hpp.


The documentation for this class was generated from the following files: