hp2FEM  0.1
Public Member Functions | Protected Attributes
LineNumericalIntegration Class Reference

Returns the numerical integration coordinates and weights for a line. More...

#include <LineNumericalIntegration.h>

Collaboration diagram for LineNumericalIntegration:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 LineNumericalIntegration ()
 Default constructor.
 LineNumericalIntegration (LineNumericalIntegration &Instance)
 Copy-initializer constructor.
 ~LineNumericalIntegration ()
 Class destructor.
LineNumericalIntegrationoperator= (LineNumericalIntegration &Instance)
 Copies the contents of instance to the object.
void SetMaxPolyOrder (unsigned long MaxPolyOrder)
 Sets the maximum polynomial order for the line collocation points.
void SetNumberCoordsWeights (unsigned long NumberRow, unsigned long NumberData)
 Sets the coordinates and weights table for the specific LineNumericalIntegration allocated.
void SetNumberIntegrationPointsSets (NumericalIntegrationAttributes_S &NIAttributes, BuiltInArray< unsigned long > &PolyOrder)
 Sets the maximum number of sets of integration points.
unsigned long GetMaxPolyOrder ()
 Returns the maximum polynomial order.
unsigned long GetNumberIntegrationPointsSets ()
 Returns the number of sets of integration points.
unsigned long GetMaxNumberIntegrationPoints ()
 Returns the maximum number of integration points.
unsigned long GetMaxNumberIntegrationPointsSets ()
 Returns the maximum number of sets of integration points.
long GetIntegrationPointsSetNumber (NumericalIntegrationAttributes_S &NIAttributes, unsigned long IntegrandOrder)
 Returns the set number of the integration points for the given order of the integrand.
unsigned long GetNumberIntegrationPoints (NumericalIntegrationAttributes_S &NIAttributes, unsigned long IntegrandOrder, long &IntegrationPointsSetNumber)
 Returns the number of integration points given by integrand order for the quadrature rule stored in the class. Returns also the number of the set which stores the points.
unsigned long GetNumberIntegrationPoints (long IPSetNumberIndex)
 Returns the number of integration points for a given set number.
unsigned long GetNumberIntegPointsUsingSetNumber (long IPSetNumber)
 Returns the number of integration points for a given set number.
unsigned long GetTotalNumberIntegrationPoints ()
 Returns the total number of integration points.
double *const GetIntegrationPointsCoords (NumericalIntegrationAttributes_S &NIAttributes, unsigned long IntegrandOrder, unsigned long &NumberCoords)
 Returns the coordinates of the integration points. This method assumes that the coordinates have been already calculated by the procedure RunNumericalIntegration.
double * GetIntegrationPointsCoords (unsigned long &NumberCoords, unsigned long &NumberIndices, unsigned long **Indices)
 Returns the coordinates of all integration points. This method assumes that the coordinates have been already calculated by the procedure RunNumericalIntegration.
double * GetIntegrationPointsCoordsBySets (unsigned long SetNumber, unsigned long &NumberIntegrationPoints)
 Returns the coordinates of the integration points. This method assumes that the coordinates have been already calculated by the procedure RunNumericalIntegration.
double *const GetIntegrationPointsWeights (NumericalIntegrationAttributes_S &NIAttributes, unsigned long IntegrandOrder, unsigned long &NumberIntegrationPoints)
 Returns the weights of the integration points. This method assumes that the weights have been already calculated by the procedure RunNumericalIntegration.
double * GetIntegrationPointsWeights (unsigned long &NumberWeights, unsigned long &NumberIndices, unsigned long **Indices)
 Returns the weights of all integration points. This method assumes that the weights have been already calculated by the procedure RunNumericalIntegration.
double * GetIntegrationPointsWeightsBySets (unsigned long SetNumber, unsigned long &NumberIntegrationPoints)
 Returns the weights of the integration points. This method assumes that the weights have been already calculated by the procedure RunNumericalIntegration.
void RunNumericalIntegration (NumericalIntegrationAttributes_S &NIAttributes, BuiltInArray< unsigned long > &PolyOrder)
 Calculates the tensorization indices and the weigths for numerical integration of the polynomial orders given in the input parameter PolyOrder and integrand orders calculated by [1,IOFactor] * P..
void Convert2NaturalCoordinates ()
 Converts the coordinates and weights from the interval [-1,1] to [0,1].
void Convert2LocalCoordinates ()
 Converts the coordinates and weights from the interval [0,1] to [-1,1].
void Print (FILE *File)
 : Prints the numerical integration attributes and values to the given ascii file.

Protected Attributes

Quadrature1D Quad
 Instance of the Quadrature1D class used to get coordinates and weights for the 1D quadrature.
OneIndexTable< double > Weights
 Table to store the line integration weights for all polynomial orders P and integrand orders calculated as [1,IOFactor] * P.
OneIndexTable< double > Coords
 Table to store the line integration coordinates for all polynomial orders P and integrand orders calculated as [1,IOFactor] * P.
BuiltInArray< long > IPSets
 This array has size for the maximum number of integration points, which it is calculated using the integrand order Pmax * IOFactor. The array stores for each number of points, the row number of the tables of weights and coords storing the points. As the array is allocated for the number of points of the maximum integrand order, some positions may not be used. In this case, this array will store -1.
unsigned long NumbIPSets
 Number of sets of integration points calculated for each polynomial order and integrand orders.
unsigned long Pmax
 Maximum polynomial order.

Detailed Description

Returns the numerical integration coordinates and weights for a line.

Author:
Fabiano Fernandes Bargos/Marco Lcio Bittencourt
Date:
March/15/2011

Constructor & Destructor Documentation

Copy-initializer constructor.

Parameters:
[in]Instance- instance of the LineNumericalIntegration class

Member Function Documentation

double *const LineNumericalIntegration::GetIntegrationPointsCoords ( NumericalIntegrationAttributes_S NIAttributes,
unsigned long  IntegrandOrder,
unsigned long &  NumberCoords 
)

Returns the coordinates of the integration points. This method assumes that the coordinates have been already calculated by the procedure RunNumericalIntegration.

Parameters:
[in]NIAttributes- parameters of the quadrature rule.
[in]IntegrandOrder- order of the integrand. Based on this value, the number of integration points are calculated for the quadrature rule stored in the class data.
[out]NumberIntegrationPoints- number of integration points
Returns:
Pointer to the array with the coordinates.
double * LineNumericalIntegration::GetIntegrationPointsCoords ( unsigned long &  NumberCoords,
unsigned long &  NumberIndices,
unsigned long **  Indices 
)

Returns the coordinates of all integration points. This method assumes that the coordinates have been already calculated by the procedure RunNumericalIntegration.

Parameters:
[out]NumberCoords- number of integration points.
[out]NumberIndices- number of indices of the table.
[out]Indices- indices of table.
Returns:
Pointer to double - the array with the coordinates.
double * LineNumericalIntegration::GetIntegrationPointsCoordsBySets ( unsigned long  SetNumber,
unsigned long &  NumberIntegrationPoints 
)

Returns the coordinates of the integration points. This method assumes that the coordinates have been already calculated by the procedure RunNumericalIntegration.

Parameters:
[in]SetNumber- the set number.
[out]NumberIntegrationPoints- number of integration points
Returns:
Pointer to the array with the coordinates.
long LineNumericalIntegration::GetIntegrationPointsSetNumber ( NumericalIntegrationAttributes_S NIAttributes,
unsigned long  IntegrandOrder 
)

Returns the set number of the integration points for the given order of the integrand.

Parameters:
[in]NIAttributes- parameters of the quadrature rule.
[in]IntegrandOrder- Order of the integrand. Based on this value, the number of integration points are calculated for the quadrature rule stored in the class data.
Returns:
a long type with set number value.
double *const LineNumericalIntegration::GetIntegrationPointsWeights ( NumericalIntegrationAttributes_S NIAttributes,
unsigned long  IntegrandOrder,
unsigned long &  NumberIntegrationPoints 
)

Returns the weights of the integration points. This method assumes that the weights have been already calculated by the procedure RunNumericalIntegration.

Parameters:
[in]NIAttributes- parameters of the quadrature rule.
[in]IntegrandOrder- order of the integrand. Based on this value, the number of integration points are calculated for the quadrature rule stored in the class data.
[out]NumberIntegrationPoints- number of integration points
Returns:
Pointer to the array with the weights
double * LineNumericalIntegration::GetIntegrationPointsWeights ( unsigned long &  NumberWeights,
unsigned long &  NumberIndices,
unsigned long **  Indices 
)

Returns the weights of all integration points. This method assumes that the weights have been already calculated by the procedure RunNumericalIntegration.

Parameters:
[out]NumberWeights- number of integration points
[out]NumberIndices- size of array indices of weights table.
[out]Indices- indices of table.
Returns:
Pointer to double - the array with the weights.
double * LineNumericalIntegration::GetIntegrationPointsWeightsBySets ( unsigned long  SetNumber,
unsigned long &  NumberIntegrationPoints 
)

Returns the weights of the integration points. This method assumes that the weights have been already calculated by the procedure RunNumericalIntegration.

Parameters:
[in]SetNumber- the set number.
[out]NumberIntegrationPoints- number of integration points
Returns:
Pointer to the array with the coordinates.

Returns the maximum number of integration points.

Returns:
the maximum number of integration points as an unsigned long.

Returns the maximum number of sets of integration points.

Returns:
the maximum number of sets as an unsigned long.

Returns the maximum polynomial order.

Returns:
Maximum polynomial order as an unsigned long.

Returns the number of integration points for a given set number.

Parameters:
[in]IPSetNumber- number of the integration point set which stores the coordinates.
Returns:
the number of integration points for a given set number as an unsigned long. If the set number is not used, returns 0.
unsigned long LineNumericalIntegration::GetNumberIntegrationPoints ( NumericalIntegrationAttributes_S NIAttributes,
unsigned long  IntegrandOrder,
long &  IntegrationPointsSetNumber 
)

Returns the number of integration points given by integrand order for the quadrature rule stored in the class. Returns also the number of the set which stores the points.

Parameters:
[in]NIAttributes- parameters of the quadrature rule.
[in]IntegrandOrder- order of the integrand. Based on this value, the number of integration points is calculated for the quadrature rule stored in the class data.
[out]IntegrationPointsSetNumber- number of the integration point set which stores the coordinates.
Returns:
Number of integration points as an unsigned long
unsigned long LineNumericalIntegration::GetNumberIntegrationPoints ( long  IPSetNumberIndex)

Returns the number of integration points for a given set number.

Parameters:
[in]IPSetNumberIndex- index of the integration point set which stores the coordinates.
Returns:
the number of integration points for a given set number as an unsigned long. If the set number is not used, returns 0.

Returns the number of sets of integration points.

Returns:
Number of sets as an unsigned long.

Returns the total number of integration points.

Returns:
an unsigned long with the total number of integration points value.
LineNumericalIntegration & LineNumericalIntegration::operator= ( LineNumericalIntegration Instance)

Copies the contents of instance to the object.

Parameters:
[in]Instance- instance of the LineNumericalIntegration class.
Returns:
Reference to instance of the LineNumericalIntegration class.
void LineNumericalIntegration::Print ( FILE *  File)

: Prints the numerical integration attributes and values to the given ascii file.

Parameters:
[in]File- pointer to the ascii file
void LineNumericalIntegration::RunNumericalIntegration ( NumericalIntegrationAttributes_S NIAttributes,
BuiltInArray< unsigned long > &  PolyOrder 
)

Calculates the tensorization indices and the weigths for numerical integration of the polynomial orders given in the input parameter PolyOrder and integrand orders calculated by [1,IOFactor] * P..

Parameters:
[in]NIAttributes- parameters of the quadrature rule.
[in]PolyOrder- element orders for a p-nonuniform mesh in an increasing sequence. For a p-uniform, this array stores only one value
void LineNumericalIntegration::SetMaxPolyOrder ( unsigned long  MaxPolyOrder)

Sets the maximum polynomial order for the line collocation points.

Parameters:
[in]MaxPolyOrder- maximum polynomial order.
void LineNumericalIntegration::SetNumberCoordsWeights ( unsigned long  NumberRow,
unsigned long  NumberData 
)

Sets the coordinates and weights table for the specific LineNumericalIntegration allocated.

Parameters:
[in]NumberRow- Number of table row.
[in]NumberData- Number of table coefficients.

Sets the maximum number of sets of integration points.

Parameters:
[in]NIAttributes- parameters of the quadrature rule.
[in]PolyOrder- element orders for a p-nonuniform mesh in an increasing sequence. For a p-uniform, this array stores only one value

The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Friends Defines