Go to the documentation of this file.
11 #ifndef geometryArrays_hh
12 #define geometryArrays_hh
23 template<
class F,
class G>
29 for (uint i = 0; i < p.
size(); ++i)
30 *coord++ = (cell.*fun)(*pAcc++);
42 template<
class F,
class G>
50 const Real* pxAcc = pX;
51 for (uint i = 0; i < pX.
size(); ++i) {
52 const Real* pyAcc = pY;
53 for (uint j = 0; j < pY.
size(); ++j)
54 *coord++ = (cell.*fun)(*pxAcc, *pyAcc++);
62 const Real* pxAcc = pX;
63 const Real* pyAcc = pY;
64 for (uint i = 0; i < pX.
size(); ++i)
65 *coord++ = (cell.*fun)(*pxAcc++, *pyAcc++);
78 template<
class F,
class G>
89 const Real* pxAcc = pX;
90 for (uint i = 0; i < pX.
size(); ++i) {
91 const Real* pyAcc = pY;
92 for (uint j = 0; j < pY.
size(); ++j) {
93 const Real* pzAcc = pZ;
94 for (uint k = 0; k < pZ.
size(); ++k)
95 *coord++ = (cell.*fun)(*pxAcc, *pyAcc, *pzAcc++);
106 const Real* pxAcc = pX;
107 const Real* pyAcc = pY;
108 const Real* pzAcc = pZ;
109 for (uint i = 0; i < pX.
size(); ++i)
110 *coord++ = (cell.*fun)(*pxAcc++, *pyAcc++, *pzAcc++);
175 template<
int gdim,
int ldim>
226 bool istensor =
true);
260 bool istensor =
true);
285 return (k == 0 && dim == 1) || (k == 3 && dim == 0)
286 || (k == 1 && dim == 0) || (k == 2 && dim == 1);
295 template<
int gdim,
int ldim>
321 #endif // geometryArrays_hh
uint size() const
Returns the requested size of the array.
ArrayCoord(const Quad2d &quad, const Array< Real > &qX, const Array< Real > &qY, bool tensor=true)
Constructor for a Quad2d.
A 2D cell: quadrilateral.
Array of local coordinates, e.g., inside a quad, but only along an edge.
ArrayJacobian(const QuadNd &quad, const Array< Real > &qX, const Array< Real > &qY, bool tensor=true)
Constructor for a QuadNd.
ArrayHessian(const EdgeNd &edge, const Array< Real > &p)
Constructor for a EdgeNd.
bool alongEdge(uint k, uint dim)
#define conceptsAssert(cond, exc)
Assert that a certain condition is fulfilled.
ArrayLocalCoord(const QuadNd &quad, uint k, uint dim, const Array< Real > &q)
Constructor for a QuadNd, where local coordinates are evaluated on the edge.
Array of jacobian matrices on quadrature points.
Array of hessian matrices on quadrature points.
ArrayJacobian(const QuadNd &quad, uint k, const Array< Real > &q)
Constructor for a QuadNd, evaluated on an edge.
Exception class for assertions.
Base class for a quadrilateral in any dimension.
ArrayJacobian(const Hexahedron3d &quad, const Array< Real > &qX, const Array< Real > &qY, const Array< Real > &qZ, bool istensor=true)
Constructor for a Hexahedron.
ArrayJacobian(const EdgeNd &edge, const Array< Real > &p)
Constructor for a EdgeNd.
void makeArray(const F &cell, const Array< Real > &p, G(F::*fun)(Real) const, Array< G > &array)
Creates an array array by applying an function fun of a cell cell for each value p.
ArrayJacobian(const QuadNd &quad, const Array< Real > &qX, const Array< Real > &qY, bool istensor=true)
Constructor for a QuadNd.
A 1D cell in any dimension: edge.
void resize(const uint sz)
Resizes the array.
Array with coordinates of a cell.
ArrayCoord(const Edge2d &edge, const Array< Real > &p)
Constructor for a Edge2d.
ArrayCoord(const Edge1d &edge, const Array< Real > &p)
Constructor for a Edge1d.
double Real
Type normally used for a floating point number.
Basic namespace for Concepts-2.