hp2FEM
0.1
|
Returns the numerical integration coordinates and weights for a line. More...
#include <LineNumericalIntegration.h>
Public Member Functions | |
LineNumericalIntegration () | |
Default constructor. | |
LineNumericalIntegration (LineNumericalIntegration &Instance) | |
Copy-initializer constructor. | |
~LineNumericalIntegration () | |
Class destructor. | |
LineNumericalIntegration & | operator= (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. |
Returns the numerical integration coordinates and weights for a line.
Copy-initializer constructor.
[in] | Instance | - instance of the LineNumericalIntegration class |
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.
[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 |
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.
[out] | NumberCoords | - number of integration points. |
[out] | NumberIndices | - number of indices of the table. |
[out] | Indices | - indices of table. |
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.
[in] | SetNumber | - the set number. |
[out] | NumberIntegrationPoints | - number of integration points |
long LineNumericalIntegration::GetIntegrationPointsSetNumber | ( | NumericalIntegrationAttributes_S & | NIAttributes, |
unsigned long | IntegrandOrder | ||
) |
Returns the set number of the integration points for the given order of the integrand.
[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. |
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.
[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 |
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.
[out] | NumberWeights | - number of integration points |
[out] | NumberIndices | - size of array indices of weights table. |
[out] | Indices | - indices of table. |
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.
[in] | SetNumber | - the set number. |
[out] | NumberIntegrationPoints | - number of integration points |
unsigned long LineNumericalIntegration::GetMaxNumberIntegrationPoints | ( | ) |
Returns the maximum number of integration points.
unsigned long LineNumericalIntegration::GetMaxNumberIntegrationPointsSets | ( | ) |
Returns the maximum number of sets of integration points.
unsigned long LineNumericalIntegration::GetMaxPolyOrder | ( | ) |
Returns the maximum polynomial order.
unsigned long LineNumericalIntegration::GetNumberIntegPointsUsingSetNumber | ( | long | IPSetNumber | ) |
Returns the number of integration points for a given set number.
[in] | IPSetNumber | - number of the integration point set which stores the coordinates. |
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.
[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. |
unsigned long LineNumericalIntegration::GetNumberIntegrationPoints | ( | long | IPSetNumberIndex | ) |
Returns the number of integration points for a given set number.
[in] | IPSetNumberIndex | - index of the integration point set which stores the coordinates. |
unsigned long LineNumericalIntegration::GetNumberIntegrationPointsSets | ( | ) |
Returns the number of sets of integration points.
unsigned long LineNumericalIntegration::GetTotalNumberIntegrationPoints | ( | ) |
Returns the total number of integration points.
LineNumericalIntegration & LineNumericalIntegration::operator= | ( | LineNumericalIntegration & | Instance | ) |
Copies the contents of instance to the object.
[in] | Instance | - instance of the LineNumericalIntegration class. |
void LineNumericalIntegration::Print | ( | FILE * | File | ) |
: Prints the numerical integration attributes and values to the given ascii file.
[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..
[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.
[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.
[in] | NumberRow | - Number of table row. |
[in] | NumberData | - Number of table coefficients. |
void LineNumericalIntegration::SetNumberIntegrationPointsSets | ( | NumericalIntegrationAttributes_S & | NIAttributes, |
BuiltInArray< unsigned long > & | PolyOrder | ||
) |
Sets the maximum number of sets of integration points.
[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 |