protected override KeyedVector <NodalDegreeOfFreedom> Solve(StiffnessMatrix stiffnessMatrix, KeyedVector <NodalDegreeOfFreedom> forceVector) { KeyedSquareMatrix <NodalDegreeOfFreedom> inverse = stiffnessMatrix.Inverse(); KeyedVector <NodalDegreeOfFreedom> solution = inverse.Multiply(forceVector); return(solution); }
public CartesianPoint ConvertLocalCoordinatesToGlobalCoordinates(CartesianPoint localPoint) { KeyedSquareMatrix <DegreeOfFreedom> rotationMatrix = CalculateElementRotationMatrix().Transpose(); CartesianPoint globalCoordRelativeToLocalOrigin = new CartesianPoint(rotationMatrix.Multiply(localPoint)); GeometricVector globalCoord = globalCoordRelativeToLocalOrigin.Add(this.LocalOrigin); return(new CartesianPoint(globalCoord)); }
public CartesianPoint ConvertGlobalCoordinatesToLocalCoordinates(CartesianPoint globalPoint) { GeometricVector localCoordRelativeToLocalOrigin = globalPoint.Subtract(this.LocalOrigin); KeyedSquareMatrix <DegreeOfFreedom> rotationMatrix = CalculateElementRotationMatrix(); CartesianPoint localCoord = new CartesianPoint(rotationMatrix.Multiply(localCoordRelativeToLocalOrigin)); return(new CartesianPoint(localCoord)); }