oomph::SecondInvariantHelper Namespace Reference

Functions

double second_invariant (const DenseMatrix< double > &tensor)
 Compute second invariant of tensor. More...
 

Detailed Description

Helper namespace containing function that computes second invariant of tensor

Function Documentation

◆ second_invariant()

double oomph::SecondInvariantHelper::second_invariant ( const DenseMatrix< double > &  tensor)

Compute second invariant of tensor.

164  {
165  // get size of tensor
166  unsigned n = tensor.nrow();
167  double trace_of_tensor = 0.0;
168  double trace_of_tensor_squared = 0.0;
169  for (unsigned i = 0; i < n; i++)
170  {
171  // Calculate the trace of the tensor: T_ii
172  trace_of_tensor += tensor(i, i);
173  // Calculate the trace of the tensor squared: T_ij T_ji
174  for (unsigned j = 0; j < n; j++)
175  {
176  trace_of_tensor_squared += tensor(i, j) * tensor(j, i);
177  }
178  }
179 
180  // return the second invariant: 1.0/2.0*[(T_ii)^2 - T_ij T_ji]
181  return 0.5 *
182  (trace_of_tensor * trace_of_tensor - trace_of_tensor_squared);
183  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
unsigned long nrow() const
Return the number of rows of the matrix.
Definition: matrices.h:485
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References i, j, n, and oomph::DenseMatrix< T >::nrow().

Referenced by oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::get_traction(), get_Z2_flux(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::max_and_min_invariant_and_viscosity(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::max_and_min_invariant_and_viscosity(), output(), square_of_norm_of_fixed_point(), square_of_norm_of_strain_invariant(), square_of_norm_of_viscosity(), and oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::traction().