public static MatrixFEM GenerateMatrixFEM_WithStDerative(UniversalDeriative universalDeriative = UniversalDeriative.Without) { MatrixFEM matrix = new MatrixFEM(); for (var i = 0; i < MatrixFEM.N; ++i) { matrix[0, i] = func_N1(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative); matrix[1, i] = func_N2(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative); matrix[2, i] = func_N3(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative); matrix[3, i] = func_N4(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative); } return(matrix); }
static Double func_N4(Double xi, Double eta, UniversalDeriative universalDeriative = UniversalDeriative.Without) { Double value = 0; switch (universalDeriative) { case UniversalDeriative.Without: value = 0.25f * (1 - xi) * (1 + eta); break; case UniversalDeriative.DerEta: value = 0.25f * (1 - xi); break; case UniversalDeriative.DerXi: value = -0.25f * (1 + eta); break; } return(value); }