コード例 #1
0
 /// ====================================================================================
 /// <summary>
 /// This method performs the integration in y-direction
 /// torque.
 /// </summary>
 /// <param name="Grad_UARes">
 /// The gradient of the velocity.
 /// </param>
 /// <param name="pARes">
 /// The pressure.
 /// </param>
 /// <param name="NormalVector">
 /// The normal vector at the current node in the current cell.
 /// </param>
 /// <param name="FluidViscosity">
 /// The viscosity of the fluid.
 /// </param>
 /// <param name="k">
 /// The current node ID.
 /// </param>
 /// <param name="j">
 /// The current cell ID
 /// </param>
 /// ====================================================================================
 private double CalculateStressTensorY(MultidimensionalArray Grad_UARes, MultidimensionalArray pARes, MultidimensionalArray NormalVector, double FluidViscosity, int k, int j)
 {
     double[] SummandsVelGradient = new double[3];
     double SummandsPressure;
     SummandsVelGradient[0] = -2 * Grad_UARes[j, k, 1, 1] * NormalVector[j, k, 1];
     SummandsVelGradient[1] = -Grad_UARes[j, k, 1, 0] * NormalVector[j, k, 0];
     SummandsVelGradient[2] = -Grad_UARes[j, k, 0, 1] * NormalVector[j, k, 0];
     SummandsPressure = pARes[j, k] * NormalVector[j, k, 1];
     return ParticleAuxillary.SummationWithNeumaier(SummandsVelGradient, SummandsPressure, FluidViscosity);
 }
コード例 #2
0
 /// ====================================================================================
 /// <summary>
 /// This method calculates the stress tensor in case of a 3D-probem
 /// torque.
 /// </summary>
 /// <param name="Grad_UARes">
 /// The gradient of the velocity.
 /// </param>
 /// <param name="pARes">
 /// The pressure.
 /// </param>
 /// <param name="NormalVector">
 /// The normal vector at the current node in the current cell.
 /// </param>
 /// <param name="FluidViscosity">
 /// The viscosity of the fluid.
 /// </param>
 /// <param name="k">
 /// The current node ID.
 /// </param>
 /// <param name="j">
 /// The current cell ID
 /// </param>
 /// <param name="currentDimension">
 /// The current dimension to be calculated.
 /// </param>
 /// ====================================================================================
 private double CalculateStressTensor3D(MultidimensionalArray Grad_UARes, MultidimensionalArray pARes, MultidimensionalArray NormalVector, double FluidViscosity, int k, int j, int currentDimension)
 {
     double acc = 0.0;
     double[] SummandsVelGradient = new double[5];
     double SummandsPressure;
     switch (currentDimension)
     {
         case 0:
             SummandsPressure = pARes[j, k] * NormalVector[j, k, 0];
             SummandsVelGradient[0] = -2 * Grad_UARes[j, k, 0, 0] * NormalVector[j, k, 0];
             SummandsVelGradient[1] = -Grad_UARes[j, k, 0, 2] * NormalVector[j, k, 2];
             SummandsVelGradient[2] = -Grad_UARes[j, k, 0, 1] * NormalVector[j, k, 1];
             SummandsVelGradient[3] = -Grad_UARes[j, k, 1, 0] * NormalVector[j, k, 1];
             SummandsVelGradient[4] = -Grad_UARes[j, k, 2, 0] * NormalVector[j, k, 2];
             acc += ParticleAuxillary.SummationWithNeumaier(SummandsVelGradient, SummandsPressure, FluidViscosity);
             break;
         case 1:
             SummandsPressure = pARes[j, k] * NormalVector[j, k, 1];
             SummandsVelGradient[0] = -2 * Grad_UARes[j, k, 1, 1] * NormalVector[j, k, 1];
             SummandsVelGradient[1] = -Grad_UARes[j, k, 1, 2] * NormalVector[j, k, 2];
             SummandsVelGradient[2] = -Grad_UARes[j, k, 1, 0] * NormalVector[j, k, 0];
             SummandsVelGradient[3] = -Grad_UARes[j, k, 0, 1] * NormalVector[j, k, 0];
             SummandsVelGradient[4] = -Grad_UARes[j, k, 2, 1] * NormalVector[j, k, 2];
             acc += ParticleAuxillary.SummationWithNeumaier(SummandsVelGradient, SummandsPressure, FluidViscosity);
             break;
         case 2:
             SummandsPressure = pARes[j, k] * NormalVector[j, k, 2];
             SummandsVelGradient[0] = -2 * Grad_UARes[j, k, 2, 2] * NormalVector[j, k, 2];
             SummandsVelGradient[1] = -Grad_UARes[j, k, 2, 0] * NormalVector[j, k, 0];
             SummandsVelGradient[2] = -Grad_UARes[j, k, 2, 1] * NormalVector[j, k, 1];
             SummandsVelGradient[3] = -Grad_UARes[j, k, 0, 2] * NormalVector[j, k, 0];
             SummandsVelGradient[4] = -Grad_UARes[j, k, 1, 2] * NormalVector[j, k, 1];
             acc += ParticleAuxillary.SummationWithNeumaier(SummandsVelGradient, SummandsPressure, FluidViscosity);
             break;
         default:
             throw new NotImplementedException();
     }
     return acc;
 }