Example #1
0
        /// <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();
        }