return (Mapping<dim, spacedim>::InternalDataBase::memory_consumption() +
MemoryConsumption::memory_consumption(affine_component) +
MemoryConsumption::memory_consumption(linear_component) +
+ MemoryConsumption::memory_consumption(covariant) +
MemoryConsumption::memory_consumption(determinant) +
MemoryConsumption::memory_consumption(quadrature));
}
{
data.affine_component = cell->vertex(0);
data.linear_component = compute_linear_transformation<dim, spacedim>(cell);
+ data.covariant = data.linear_component.covariant_form();
data.determinant = data.linear_component.determinant();
}
ReferenceCells::get_simplex<dim>().template unit_normal_vectors<dim>(
face_no);
Tensor<1, spacedim> normal_vector =
- apply_transformation(data.linear_component.covariant_form(),
- ref_normal_vector);
+ apply_transformation(data.covariant, ref_normal_vector);
normal_vector /= normal_vector.norm();
std::fill(normal_vectors.begin(), normal_vectors.end(), normal_vector);
if (data.update_each & update_inverse_jacobians)
if (cell_similarity != CellSimilarity::translation)
{
- const auto inverse = data.linear_component.covariant_form().transpose();
+ const auto inverse = data.covariant.transpose();
std::fill(output_data.inverse_jacobians.begin(),
output_data.inverse_jacobians.end(),
inverse);
{
case mapping_covariant:
{
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
- output[i] = apply_transformation(covariant, input[i]);
+ output[i] = apply_transformation(data.covariant, input[i]);
return;
}
{
case mapping_covariant:
{
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
- output[i] = apply_transformation(covariant, input[i]);
+ output[i] = apply_transformation(data.covariant, input[i]);
return;
}
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_covariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
- output[i] = apply_transformation(covariant, input[i]);
+ output[i] = apply_transformation(data.covariant, input[i]);
return;
}
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_covariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
{
const DerivativeForm<1, spacedim, dim> A =
- apply_transformation(covariant, transpose(input[i]));
- output[i] = apply_transformation(covariant, A.transpose());
+ apply_transformation(data.covariant, transpose(input[i]));
+ output[i] = apply_transformation(data.covariant, A.transpose());
}
return;
}
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_covariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
{
const DerivativeForm<1, spacedim, dim> A =
apply_transformation(data.linear_component,
transpose(input[i]));
- output[i] = apply_transformation(covariant, A.transpose());
+ output[i] = apply_transformation(data.covariant, A.transpose());
}
return;
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_contravariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
- auto scaled_contravariant = data.linear_component;
+ auto scaled_contravariant = data.linear_component;
for (unsigned int d = 0; d < spacedim; ++d)
scaled_contravariant[d] /= data.determinant;
for (unsigned int i = 0; i < output.size(); ++i)
{
const DerivativeForm<1, spacedim, dim> A =
- apply_transformation(covariant, input[i]);
+ apply_transformation(data.covariant, input[i]);
const Tensor<2, spacedim> T =
apply_transformation(scaled_contravariant, A.transpose());
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_covariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
- output[i] = internal::apply_covariant_gradient(covariant, input[i]);
+ output[i] =
+ internal::apply_covariant_gradient(data.covariant, input[i]);
return;
}
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_contravariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
output[i] =
- internal::apply_contravariant_hessian(covariant,
+ internal::apply_contravariant_hessian(data.covariant,
data.linear_component,
input[i]);
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_covariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
- output[i] = internal::apply_covariant_hessian(covariant, input[i]);
+ output[i] =
+ internal::apply_covariant_hessian(data.covariant, input[i]);
return;
}
typename FEValuesBase<dim>::ExcAccessToUninitializedField(
"update_contravariant_transformation"));
- const auto covariant = data.linear_component.covariant_form();
for (unsigned int i = 0; i < output.size(); ++i)
- output[i] = internal::apply_piola_hessian(covariant,
+ output[i] = internal::apply_piola_hessian(data.covariant,
data.linear_component,
data.determinant,
input[i]);