/*** Private methods ***************************************************************************************************/ private static double GetAlongTheMemberResult(IScheme scheme, IModel model, Dictionary <int, double[, ]> elementBoundaryDisplacements, double x, int startNodeNumber, int elementNumber) { IBeamProperty beamProperty = model.Beam.Properties.Where(beam => beam.Number == elementNumber).FirstOrDefault(); double L = beamProperty.Lb; double s = ResultHelper.GetScalingParameter(scheme, x, startNodeNumber, L); double[,] currentShapeFunctionsVector = GetShapeFunctionsVector(s, L); double[,] result = MatrixTransformation.Multiply(currentShapeFunctionsVector, elementBoundaryDisplacements[elementNumber]); return(result[0, 0]); }
private static double GetAlongTheMemberResult(IModel model, Dictionary <int, double[, ]> elementBoundaryDisplacements, int elementNumber) { IBeamProperty beamProperty = model.Beam.Properties.Where(beam => beam.Number == elementNumber).FirstOrDefault(); double L = beamProperty.Lb; double[,] currentShapeFunctionsVector = GetShapeFunctionsVector(L); double[,] result; result = MatrixTransformation.Multiply(currentShapeFunctionsVector, elementBoundaryDisplacements[elementNumber]); double resultFactor = beamProperty.Ey * beamProperty.Iy / Math.Pow(beamProperty.Lb, 3); result = MatrixTransformation.Multiply(result, resultFactor); return(result[0, 0]); }