/// <summary> /// Gets the internal force based on only this load at defined position <see cref="x"/>. /// </summary> /// <param name="elm">The elm.</param> /// <param name="x">The x.</param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public override Force GetInternalForceAt(Element1D elm, double x) { if (elm is FrameElement2Node) { var frElm = elm as FrameElement2Node; var l = (frElm.EndNode.Location - frElm.StartNode.Location).Length; var w = GetLocalDistributedLoad(elm); var gf1 = -GetGlobalEquivalentNodalLoads(elm)[0]; var f1 = new Force(); f1.Forces = frElm.TransformGlobalToLocal(gf1.Forces); f1.Moments = frElm.TransformGlobalToLocal(gf1.Moments); var f2 = new Force(new Vector(w.X * x, w.Y * x, w.Z * x), new Vector()); var buf = f1.Move(new Point(0, 0, 0), new Point(x, 0, 0)) + f2.Move(new Point(x / 2, 0, 0), new Point(x, 0, 0)); return(-buf); } throw new NotImplementedException(); }