Problem:
How do I calculate the Lambda-2 criterion?
Solution:
Use a Tecplot Macro to automate the calculation.
Make sure Tecplot is aware of the variables representing your velocity field (Analyze->Field Variables menu).
The commands are as follow:
- Calculate the tensor of velocity gradients. This command can be obtained by recording the Analyze->Calculate Variables…->Velocity Gradient (tensor) action in Tecplot’s graphical user interface (GUI).
$!EXTENDEDCOMMAND COMMANDPROCESSORID = 'CFDAnalyzer4' COMMAND = 'Calculate Function=\'VELOCITYGRADIENT\' Normalization=\'None\' ValueLocation=\'Nodal\' CalculateOnDemand=\'F\' UseMorePointsForFEGradientCalculations=\'F\''
- Use the equations tool (Data->Alter->Specify Equations… menu) to define the symmetric (S) and anti-symmetric (Ω) components of ∇u . By definition: S(i,j) = (u(i,j)+u(j,i) )/2 and Ω(i,j) = (u(i,j)-u(j,i) )/2 :
$!ALTERDATA EQUATION = '{s11} = {dUdX}' $!ALTERDATA EQUATION = '{s12} = 0.5*({dUdY}+{dVdX})' $!ALTERDATA EQUATION = '{s13} = 0.5*({dUdZ}+{dWdX})' $!ALTERDATA EQUATION = '{s22} = {dVdY}' $!ALTERDATA EQUATION = '{s23} = 0.5*({dVdZ}+{dWdY})' $!ALTERDATA EQUATION = '{s33} = {dWdZ}' $!ALTERDATA EQUATION = '{Omga12} = 0.5*({dUdY}-{dVdX})' $!ALTERDATA EQUATION = '{Omga13} = 0.5*({dUdZ}-{dWdX})' $!ALTERDATA EQUATION = '{Omga23} = 0.5*({dVdZ}-{dWdY})'
- Build the S2+Ω2 tensor using the equations tool:
$!ALTERDATA EQUATION = '{s2o2_11} = {s11}**2 + {s12}**2 + {s13}**2 - {Omga12}**2 - {Omga13}**2' $!ALTERDATA EQUATION = '{s2o2_12} = {s11}*{s12} + {s12}*{s22} + {s13}*{s23} - {Omga13}*{Omga23}' $!ALTERDATA EQUATION = '{s2o2_13} = {s11}*{s13} + {s12}*{s23} + {s13}*{s33} - {Omga12}*{Omga23}' $!ALTERDATA EQUATION = '{s2o2_22} = {s12}**2 + {s22}**2 + {s23}**2 - {Omga12}**2 - {Omga23}**2' $!ALTERDATA EQUATION = '{s2o2_23} = {s12}*{s13} + {s22}*{s23} + {s23}*{s33} - {Omga12}*{Omga13}' $!ALTERDATA EQUATION = '{s2o2_33} = {s13}**2 + {s23}**2 + {s33}**2 - {Omga13}**2 - {Omga23}**2'
- Retrieve the variable numbers of the S2+Ω2 components, to be used for the calculation of the tensor eigenvalues:
$!GETVARNUMBYNAME |numVars2o2_11| NAME = "s2o2_11" $!GETVARNUMBYNAME |numVars2o2_12| NAME = "s2o2_12" $!GETVARNUMBYNAME |numVars2o2_13| NAME = "s2o2_13" $!GETVARNUMBYNAME |numVars2o2_22| NAME = "s2o2_22" $!GETVARNUMBYNAME |numVars2o2_23| NAME = "s2o2_23" $!GETVARNUMBYNAME |numVars2o2_33| NAME = "s2o2_33"
- Calculate the eigenvectors and the eigenvalues of S2+Ω2 using the Tensor Tools (Tools->Tensor Eigensystem… menu):
$!EXTENDEDCOMMAND COMMANDPROCESSORID = 'Tensor Eigensystem' COMMAND = 'T11VarNum = |numVars2o2_11|, T12VarNum = |numVars2o2_12|, T13VarNum = |numVars2o2_13|, T22VarNum = |numVars2o2_22|, T23VarNum = |numVars2o2_23|, T33VarNum = |numVars2o2_33|, SortEgnV = TRUE, SaveEgnVect = TRUE '
A set of new variables has been created: EgnVal(i)i={1,2,3} and EgnVec(ij)(i,j)={1,2,3}2. An iso-surface of Lambda-2 (EgnVal2) can be used to identify vortices.
Download Lambda_2Calculation.mcr from our handyscripts GitHub page.
Tip: For faster access, consider placing the macro in your Quick Macro Panel.