Esempio n. 1
0
        public void CanAddMultipleDisplacements()
        {
            FiniteElementNode node1 = model.NodeFactory.Create(1);

            NodalDegreeOfFreedom ndof1 = new NodalDegreeOfFreedom(node, DegreeOfFreedom.X);
            NodalDegreeOfFreedom ndof2 = new NodalDegreeOfFreedom(node, DegreeOfFreedom.Y);
            NodalDegreeOfFreedom ndof3 = new NodalDegreeOfFreedom(node1, DegreeOfFreedom.Y);

            IList <NodalDegreeOfFreedom> identifiers = new List <NodalDegreeOfFreedom>(3);

            identifiers.Add(ndof1);
            identifiers.Add(ndof2);
            identifiers.Add(ndof3);

            KeyedVector <NodalDegreeOfFreedom> displacements = new KeyedVector <NodalDegreeOfFreedom>(identifiers);

            displacements[ndof1] = 10;
            displacements[ndof2] = 12;
            displacements[ndof3] = 13;

            SUT.AddMultipleDisplacements(displacements);

            Assert.AreEqual(10, SUT.GetDisplacement(node).X);
            Assert.AreEqual(12, SUT.GetDisplacement(node).Y);
            Assert.AreEqual(13, SUT.GetDisplacement(node1).Y);
        }
Esempio n. 2
0
        /// <summary>
        /// Puts the data into the results data structure.
        /// </summary>
        /// <param name="displacements">The calculated displacements.  The index of the values in the vector matches the index of the displacement identifiers.</param>
        /// <param name="reactions">The calculated reactions.  The index of the values in the vector matches the index of the reaction identifiers.</param>
        /// <returns>The results in a presentable data structure</returns>
        protected FiniteElementResults CreateResults(KeyedVector <NodalDegreeOfFreedom> displacements, KeyedVector <NodalDegreeOfFreedom> reactions)
        {
            Guard.AgainstNullArgument(displacements, "displacements");
            Guard.AgainstNullArgument(reactions, "reactions");

            FiniteElementResults results = new FiniteElementResults(this.model.ModelType);

            results.AddMultipleDisplacements(displacements);
            results.AddMultipleReactions(reactions);
            return(results);
        }
Esempio n. 3
0
        /// <summary>
        /// Puts the data into the results data structure.
        /// </summary>
        /// <param name="displacements">The calculated displacements.  The index of the values in the vector matches the index of the displacement identifiers.</param>
        /// <param name="reactions">The calculated reactions.  The index of the values in the vector matches the index of the reaction identifiers.</param>
        /// <returns>The results in a presentable data structure</returns>
        protected FiniteElementResults CreateResults(KeyedVector<NodalDegreeOfFreedom> displacements, KeyedVector<NodalDegreeOfFreedom> reactions)
        {
            Guard.AgainstNullArgument(displacements, "displacements");
            Guard.AgainstNullArgument(reactions, "reactions");

            FiniteElementResults results = new FiniteElementResults(this.model.ModelType);
            results.AddMultipleDisplacements(displacements);
            results.AddMultipleReactions(reactions);
            return results;
        }