ASMbase::getElementCoordinates: add flag to force integration basis
required as this is used to obtain coordinates for integration elements in CFL calculations and in ASMu2D evalPoint
This commit is contained in:
parent
1e01b45c9b
commit
574bffdfb1
@ -233,9 +233,11 @@ public:
|
||||
virtual void getNodalCoordinates(Matrix& X) const = 0;
|
||||
//! \brief Returns a matrix with nodal coordinates for an element.
|
||||
//! \param[in] iel 1-based element index local to current patch
|
||||
//! \param[in] forceItg If true force returning integration basis coordinates
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const = 0;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel,
|
||||
bool forceItg = false) const = 0;
|
||||
|
||||
//! \brief Finds the global (or patch-local) node numbers on a patch boundary.
|
||||
//! \param[in] lIndex Local index of the boundary face/edge
|
||||
|
@ -652,7 +652,7 @@ Tensor ASMs1D::getRotation (size_t inod) const
|
||||
}
|
||||
|
||||
|
||||
bool ASMs1D::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMs1D::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
return this->getElementCoordinates(X,iel,MNPC,curv);
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ public:
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
//! \param[in] iel Element index
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = false) const;
|
||||
|
||||
//! \brief Returns a matrix with nodal coordinates for an element.
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
|
@ -130,7 +130,7 @@ Vec3 ASMs1DLag::getCoord (size_t inod) const
|
||||
}
|
||||
|
||||
|
||||
bool ASMs1DLag::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMs1DLag::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
if (iel < 1 || (size_t)iel > MNPC.size())
|
||||
{
|
||||
|
@ -55,7 +55,7 @@ public:
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
//! \param[in] iel Element index
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = true) const;
|
||||
|
||||
//! \brief Returns a matrix with all nodal coordinates within the patch.
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
|
@ -1353,7 +1353,7 @@ Vec3 ASMs2D::getCoord (size_t inod) const
|
||||
}
|
||||
|
||||
|
||||
bool ASMs2D::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMs2D::getElementCoordinates (Matrix& X, int iel, bool forceItg) const
|
||||
{
|
||||
#ifdef INDEX_CHECK
|
||||
if (iel < 1 || (size_t)iel > MNPC.size())
|
||||
@ -1364,7 +1364,7 @@ bool ASMs2D::getElementCoordinates (Matrix& X, int iel) const
|
||||
}
|
||||
#endif
|
||||
|
||||
const Go::SplineSurface* geo = this->getBasis(ASM::GEOMETRY_BASIS);
|
||||
const Go::SplineSurface* geo = forceItg ? surf : this->getBasis(ASM::GEOMETRY_BASIS);
|
||||
|
||||
int lnod0 = this->getFirstItgElmNode();
|
||||
if (geo != surf) {
|
||||
|
@ -241,7 +241,8 @@ public:
|
||||
//! \param[in] iel Element index
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
//! \param[in] forceItg If true return integration basis element coordinates
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool forceItg = false) const;
|
||||
|
||||
//! \brief Returns a matrix with all nodal coordinates within the patch.
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
|
@ -221,7 +221,7 @@ void ASMs2DLag::setCoord (size_t inod, const Vec3& Xnod)
|
||||
}
|
||||
|
||||
|
||||
bool ASMs2DLag::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMs2DLag::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
if (iel < 1 || (size_t)iel > MNPC.size())
|
||||
{
|
||||
|
@ -111,7 +111,7 @@ public:
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
//! \param[in] iel Element index
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = true) const;
|
||||
|
||||
//! \brief Returns a matrix with all nodal coordinates within the patch.
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
|
@ -1622,7 +1622,7 @@ Vec3 ASMs3D::getCoord (size_t inod) const
|
||||
}
|
||||
|
||||
|
||||
bool ASMs3D::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMs3D::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
#ifdef INDEX_CHECK
|
||||
if (iel < 1 || (size_t)iel > MNPC.size())
|
||||
|
@ -256,7 +256,7 @@ public:
|
||||
//! \param[in] iel Element index
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = false) const;
|
||||
|
||||
//! \brief Returns a matrix with all nodal coordinates within the patch.
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
|
@ -246,7 +246,7 @@ void ASMs3DLag::setCoord (size_t inod, const Vec3& Xnod)
|
||||
}
|
||||
|
||||
|
||||
bool ASMs3DLag::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMs3DLag::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
if (iel < 1 || (size_t)iel > MNPC.size())
|
||||
{
|
||||
|
@ -111,7 +111,7 @@ public:
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
//! \param[in] iel Element index
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = true) const;
|
||||
|
||||
//! \brief Returns a matrix with all nodal coordinates within the patch.
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
|
@ -391,7 +391,7 @@ void ASMs3Dmx::closeBoundaries (int dir, int, int)
|
||||
}
|
||||
|
||||
|
||||
bool ASMs3Dmx::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMs3Dmx::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
#ifdef INDEX_CHECK
|
||||
if (iel < 1 || (size_t)iel > MNPC.size())
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
//! \param[in] iel Element index
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = true) const;
|
||||
|
||||
//! \brief Returns the global coordinates for the given node.
|
||||
//! \param[in] inod 1-based node index local to current patch
|
||||
|
@ -197,7 +197,7 @@ void ASMsupel::getNodalCoordinates (Matrix& X) const
|
||||
}
|
||||
|
||||
|
||||
bool ASMsupel::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMsupel::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
if (iel != 1)
|
||||
return false;
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
//! \param[in] iel 1-based element index local to current patch
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = false) const;
|
||||
|
||||
//! \brief Finds the global (or patch-local) node numbers on a patch boundary.
|
||||
//! \param[in] lIndex Local index of the boundary face/edge
|
||||
|
@ -974,7 +974,7 @@ bool ASMu2D::getCoordinates (Matrix& X, unsigned char nsd,
|
||||
}
|
||||
|
||||
|
||||
bool ASMu2D::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMu2D::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
#ifdef INDEX_CHECK
|
||||
if (iel < 1 || iel > lrspline->nElements())
|
||||
@ -1909,7 +1909,7 @@ int ASMu2D::evalPoint (int iel, const double* param, Vec3& X) const
|
||||
return -1;
|
||||
|
||||
Matrix Xnod;
|
||||
if (!this->getElementCoordinates(Xnod,1+iel))
|
||||
if (!this->getElementCoordinates(Xnod,1+iel,true))
|
||||
return -1;
|
||||
|
||||
X = Xnod * fe.N;
|
||||
|
@ -161,7 +161,7 @@ public:
|
||||
//! \param[in] iel 1-based element index
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = false) const;
|
||||
|
||||
//! \brief Obtain element neighbours.
|
||||
virtual void getElmConnectivities(IntMat& neighs) const;
|
||||
|
@ -705,7 +705,7 @@ double ASMu3D::getParametricVolume (int iel) const
|
||||
}
|
||||
|
||||
|
||||
bool ASMu3D::getElementCoordinates (Matrix& X, int iel) const
|
||||
bool ASMu3D::getElementCoordinates (Matrix& X, int iel, bool) const
|
||||
{
|
||||
#ifdef INDEX_CHECK
|
||||
if (iel < 1 || (size_t)iel > MNPC.size())
|
||||
|
@ -147,7 +147,7 @@ public:
|
||||
//! \param[in] iel 1-based element index
|
||||
//! \param[out] X 3\f$\times\f$n-matrix, where \a n is the number of nodes
|
||||
//! in one element
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel) const;
|
||||
virtual bool getElementCoordinates(Matrix& X, int iel, bool = false) const;
|
||||
|
||||
//! \brief Obtain element neighbours.
|
||||
virtual void getElmConnectivities(IntMat& neighs) const;
|
||||
|
Loading…
Reference in New Issue
Block a user