// now compute the
// two normals
- cross_product (orthonormals[0], vector, tmp);
- cross_product (orthonormals[1], vector, orthonormals[0]);
+ orthonormals[0] = cross_product (vector, tmp);
+ orthonormals[1] = cross_product (vector, orthonormals[0]);
break;
}
// associated with this face. We also must include the residuals from the
// shape funcations associated with edges.
Tensor<1, dim> tmp;
- Tensor<1, dim> cross_product_i,
- cross_product_j,
- cross_product_rhs;
+ Tensor<1, dim> cross_product_i;
+ Tensor<1, dim> cross_product_j;
+ Tensor<1, dim> cross_product_rhs;
// Loop to construct face linear system.
for (unsigned int q_point = 0;
const unsigned int j_face_idx = associated_face_dof_to_face_dof[j];
const unsigned int cell_j = fe.face_to_cell_index (j_face_idx, face);
- cross_product(cross_product_j,
- normal_vector,
- fe_face_values[vec].value(cell_j, q_point));
+ cross_product_j =
+ cross_product(normal_vector,
+ fe_face_values[vec].value(cell_j, q_point));
for (unsigned int i = 0; i < associated_face_dofs; ++i)
{
const unsigned int i_face_idx = associated_face_dof_to_face_dof[i];
const unsigned int cell_i = fe.face_to_cell_index (i_face_idx, face);
- cross_product(cross_product_i,
- normal_vector,
- fe_face_values[vec].value(cell_i, q_point));
-
- face_matrix(i,j)
- += fe_face_values.JxW (q_point)
- *cross_product_i
- *cross_product_j;
+ cross_product_i =
+ cross_product(normal_vector,
+ fe_face_values[vec].value(cell_i, q_point));
+ face_matrix(i, j) += fe_face_values.JxW(q_point) *
+ cross_product_i * cross_product_j;
}
// compute rhs
- cross_product(cross_product_rhs,
- normal_vector,
- tmp);
- face_rhs(j)
- += fe_face_values.JxW (q_point)
- *cross_product_rhs
- *cross_product_j;
-
+ cross_product_rhs = cross_product(normal_vector, tmp);
+ face_rhs(j) += fe_face_values.JxW(q_point) *
+ cross_product_rhs * cross_product_j;
}
}
// we get here only for dim==3, but at least one isn't
// quite smart enough to notice this and warns when
// compiling the function in 2d
- cross_product (tangent, normals[0], normals[dim-2]);
+ tangent = cross_product (normals[0], normals[dim-2]);
break;
default:
Assert (false, ExcNotImplemented());
Tensor<1,3>
wedge_product (const Tensor<1,3> (&derivative)[2])
{
- Tensor<1,3> result;
- cross_product (result, derivative[0], derivative[1]);
-
- return result;
+ result cross_product (derivative[0], derivative[1]);
}
-1 : +1);
break;
case 2:
- cross_product (output_data.boundary_forms[i], data.aux[0][i]);
+ output_data.boundary_forms[i] = cross_product(data.aux[0][i]);
break;
case 3:
- cross_product (output_data.boundary_forms[i], data.aux[0][i], data.aux[1][i]);
+ output_data.boundary_forms[i] =
+ cross_product(data.aux[0][i], data.aux[1][i]);
break;
default:
Assert(false, ExcNotImplemented());
if (dim==2)
{
- Tensor<1,spacedim> cell_normal;
const DerivativeForm<1,spacedim,dim> DX_t =
data.contravariant[point].transpose();
- cross_product(cell_normal,DX_t[0],DX_t[1]);
+
+ Tensor<1, spacedim> cell_normal =
+ cross_product(DX_t[0], DX_t[1]);
cell_normal /= cell_normal.norm();
// then compute the face normal from the face tangent
// and the cell normal:
- cross_product (output_data.boundary_forms[point],
- data.aux[0][point], cell_normal);
-
+ output_data.boundary_forms[point] =
+ cross_product(data.aux[0][point], cell_normal);
}
}
ExcMessage("There is no cell normal in codim 2."));
if (dim==1)
- cross_product(output_data.normal_vectors[point], -DX_t[0]);
+ output_data.normal_vectors[point] =
+ cross_product(-DX_t[0]);
else //dim == 2
- cross_product(output_data.normal_vectors[point],DX_t[0],DX_t[1]);
+ output_data.normal_vectors[point] =
+ cross_product(DX_t[0], DX_t[1]);
output_data.normal_vectors[point] /= output_data.normal_vectors[point].norm();
Assert( codim==1 , ExcMessage("There is no cell normal in codim 2."));
if (dim==1)
- cross_product(output_data.normal_vectors[point],
- -DX_t[0]);
+ output_data.normal_vectors[point] =
+ cross_product(-DX_t[0]);
else //dim == 2
- cross_product(output_data.normal_vectors[point],DX_t[0],DX_t[1]);
+ output_data.normal_vectors[point] =
+ cross_product(DX_t[0], DX_t[1]);
output_data.normal_vectors[point] /= output_data.normal_vectors[point].norm();
-1 : +1);
break;
case 2:
- cross_product (output_data.boundary_forms[i], data.aux[0][i]);
+ output_data.boundary_forms[i] =
+ cross_product(data.aux[0][i]);
break;
case 3:
- cross_product (output_data.boundary_forms[i], data.aux[0][i], data.aux[1][i]);
+ output_data.boundary_forms[i] =
+ cross_product(data.aux[0][i], data.aux[1][i]);
break;
default:
Assert(false, ExcNotImplemented());
if (dim==2)
{
- Tensor<1,spacedim> cell_normal;
const DerivativeForm<1,spacedim,dim> DX_t =
data.contravariant[point].transpose();
- cross_product(cell_normal,DX_t[0],DX_t[1]);
+
+ Tensor<1, spacedim> cell_normal =
+ cross_product(DX_t[0], DX_t[1]);
cell_normal /= cell_normal.norm();
// then compute the face normal from the face tangent
// and the cell normal:
- cross_product (output_data.boundary_forms[point],
- data.aux[0][point], cell_normal);
+ output_data.boundary_forms[point] =
+ cross_product(data.aux[0][point], cell_normal);
}
}
}
const Tensor<1,3> v01 = accessor.vertex(1) - accessor.vertex(0);
const Tensor<1,3> v02 = accessor.vertex(2) - accessor.vertex(0);
- Tensor<1,3> normal;
- cross_product(normal, v01, v02);
+ Tensor<1,3> normal = cross_product(v01, v02);
const Tensor<1,3> v03 = accessor.vertex(3) - accessor.vertex(0);
// the face is planar. then its area is 1/2 of the norm of the
// cross product of the two diagonals
const Tensor<1,3> v12 = accessor.vertex(2) - accessor.vertex(1);
- Tensor<1,3> twice_area;
- cross_product(twice_area, v03, v12);
+ Tensor<1,3> twice_area = cross_product(v03, v12);
return 0.5 * twice_area.norm();
}
Tensor<1,2>
normalized_alternating_product (const Tensor<1,2> (&basis_vectors)[1])
{
- Tensor<1,2> tmp;
- cross_product (tmp, basis_vectors[0]);
+ Tensor<1,2> tmp = cross_product (basis_vectors[0]);
return tmp/tmp.norm();
}
Tensor<1,3>
normalized_alternating_product (const Tensor<1,3> (&basis_vectors)[2])
{
- Tensor<1,3> tmp;
- cross_product (tmp, basis_vectors[0], basis_vectors[1]);
+ Tensor<1,3> tmp = cross_product (basis_vectors[0], basis_vectors[1]);
return tmp/tmp.norm();
}
{ {1,2},{3,0},{0,3},{2,1}};
for (unsigned int vertex=0; vertex<vertices_per_face; ++vertex)
{
- // first define the two tangent
- // vectors at the vertex by
- // using the two lines
- // radiating away from this
- // vertex
+ // first define the two tangent vectors at the vertex by using the
+ // two lines radiating away from this vertex
const Tensor<1,3> tangents[2]
= { face->vertex(neighboring_vertices[vertex][0])
- face->vertex(vertex),
- face->vertex(vertex)
};
- // then compute the normal by
- // taking the cross
- // product. since the normal is
- // not required to be
- // normalized, no problem here
- cross_product (face_vertex_normals[vertex],
- tangents[0], tangents[1]);
+ // then compute the normal by taking the cross product. since the
+ // normal is not required to be normalized, no problem here
+ face_vertex_normals[vertex] = cross_product(tangents[0], tangents[1]);
};
}