/// ==================================================================================== /// <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); }
/// ==================================================================================== /// <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; }