//get control points
</pre><pre name="code" class="cpp">template <class T, int ParDim, int codim>
void gsGenericGeometryEvaluator<T,ParDim,codim>::computeValues()
{
const gsMatrix<T> & coefs = m_geo.coefs();
m_values.resize(coefs.cols(), m_numPts);
for (index_t j=0; j < m_numPts; ++j) // for all evaluation points
{
m_values.col(j) = coefs.row( m_active(0,j) ) * m_basisVals(0,j);
for ( index_t i=1; i< m_active.rows() ; i++ ) // for all non-zero basis functions
m_values.col(j) += coefs.row( m_active(i,j) ) * m_basisVals(i,j);
}
}
gsGeometryEvaluator<T> geoEval;
在visitor的assemble()函数中,geoEval.values()返回当前单元高斯积分点对应的坐标值,例如3×3高斯积分,二维几何场,返回一个2×9矩阵,第一行为x坐标,第二行为y坐标;
geoEval.evaluateAt (gsMatrix<T> quNodes) ; 平面问题下,9个高斯点,quNodes为2×9矩阵
设置quNodes为参数点;