void Line1D::compute_centroid(const NodesT& nodes , CoordsT& centroid) { cf3_assert(nodes.rows()==2); cf3_assert(nodes.cols()==1); cf3_assert(centroid.size()==1); centroid[0] = 0.5*(nodes(0,XX)+nodes(1,XX)); }
void Triag2DLagrangeP2::mapped_coordinates(const CoordsT& coord, const NodeMatrixT& nodes, MappedCoordsT& map_coord) { throw Common::NotImplemented( FromHere(), "" ); cf_assert(coord.size() == 2); cf_assert(map_coord.size() == 2); cf_assert(nodes.size() == 6); const Real invDet = 1. / jacobian_determinant(nodes); map_coord[KSI] = invDet * ((nodes(2, YY) - nodes(0, YY))*coord[XX] + (nodes(0, XX) - nodes(2, XX))*coord[YY] - nodes(0, XX)*nodes(2, YY) + nodes(2, XX)*nodes(0, YY)); map_coord[ETA] = invDet * ((nodes(0, YY) - nodes(1, YY))*coord[XX] + (nodes(1, XX) - nodes(0, XX))*coord[YY] + nodes(0, XX)*nodes(1, YY) - nodes(1, XX)*nodes(0, YY)); }