Point<spacedim>
TriaAccessor<structdim, dim, spacedim>::intermediate_point (const Point<structdim> &coordinates) const
{
- // We use an FE_Q<structdim>(1) to extract the "weights" of each
- // vertex, used to get a point from the manifold.
- static FE_Q<structdim> fe(1);
-
// Surrounding points and weights.
std::vector<Point<spacedim> > p(GeometryInfo<structdim>::vertices_per_cell);
std::vector<double> w(GeometryInfo<structdim>::vertices_per_cell);
for (unsigned int i=0; i<GeometryInfo<structdim>::vertices_per_cell; ++i)
{
p[i] = this->vertex(i);
- w[i] = fe.shape_value(i, coordinates);
+ w[i] = GeometryInfo<structdim>::d_linear_shape_function(coordinates, i);
}
return this->get_manifold().get_new_point(p, w);
for (unsigned int i=0; i<facedim; ++i)
xi[i] = 1./2;
- FE_Q<facedim> linear_fe(1);
-
const double eps = 1e-12;
Tensor<1,spacedim> grad_F[facedim];
unsigned int iteration = 0;
{
Point<spacedim> F;
for (unsigned int v=0; v<GeometryInfo<facedim>::vertices_per_cell; ++v)
- F += face->vertex(v) * linear_fe.shape_value(v, xi);
+ F += face->vertex(v) * GeometryInfo<facedim>::d_linear_shape_function(xi, v);
for (unsigned int i=0; i<facedim; ++i)
{
grad_F[i] = 0;
for (unsigned int v=0; v<GeometryInfo<facedim>::vertices_per_cell; ++v)
- grad_F[i] += face->vertex(v) * linear_fe.shape_grad(v, xi)[i];
+ grad_F[i] += face->vertex(v) *
+ GeometryInfo<facedim>::d_linear_shape_function_gradient(xi, v)[i];
}
Tensor<1,facedim> J;
#include "tria_boundary.inst"
DEAL_II_NAMESPACE_CLOSE
-