Пример #1
0
 public void GetInsertionPoint(string name,
                               ref Displacements offsetDistancesI,
                               ref Displacements offsetDistancesJ,
                               ref bool isStiffnessTransformed,
                               ref string coordinateSystem)
 {
 }
Пример #2
0
        /// <summary>
        /// Factories the specified unique name.
        /// </summary>
        /// <param name="uniqueName">Name of the unique.</param>
        /// <param name="nodeI">The node i.</param>
        /// <param name="nodeJ">The node j.</param>
        /// <param name="storyName">Name of the story.</param>
        /// <param name="angle">The angle.</param>
        /// <param name="pointIOffset">The point i offset.</param>
        /// <param name="pointJOffset">The point j offset.</param>
        /// <param name="cardinalInsertionPoint">The cardinal insertion point.</param>
        /// <param name="section">The section.</param>
        /// <returns>Frame.</returns>
        public static Frame Factory(string uniqueName, Node nodeI, Node nodeJ,
                                    string storyName           = "",
                                    double angle               = 0,
                                    Displacements pointIOffset = new Displacements(),
                                    Displacements pointJOffset = new Displacements(),
                                    eCardinalInsertionPoint cardinalInsertionPoint = eCardinalInsertionPoint.Centroid,
                                    FrameSection section = null)
        {
            if (Registry.Frames.Keys.Contains(uniqueName))
            {
                return(Registry.Frames[uniqueName]);
            }

            Frame frame = new Frame(nodeI, nodeJ, uniqueName)
            {
                Story                  = storyName,
                Angle                  = angle,
                PointIOffset           = pointIOffset,
                PointJOffset           = pointJOffset,
                CardinalInsertionPoint = cardinalInsertionPoint,
                Section                = section
            };

            Registry.Frames.Add(uniqueName, frame);
            return(Registry.Frames[uniqueName]);
        }
        /*
         #region fields for using in serialization - deserialization
         *
         * private List<double[]> DisplacementsValues;
         * private LoadCase[] DisplacementsCases;
         *
         * private LoadCase[] ForcesCases;
         * private List<double[]> ForcesValues;
         *
         #endregion
         *
         *
         * /// <summary>
         * /// Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo" /> with the data needed to serialize the target object.
         * /// </summary>
         * /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> to populate with data.</param>
         * /// <param name="context">The destination (see <see cref="T:System.Runtime.Serialization.StreamingContext" />) for this serialization.</param>
         * /// <exception cref="System.NotImplementedException"></exception>
         * public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
         * {
         *  info.AddValue("ReleasedMap",ReleasedMap);
         *  info.AddValue("FixedMap",FixedMap);
         *  info.AddValue("ReversedReleasedMap",ReversedReleasedMap);
         *  info.AddValue("ReversedFixedMap",ReversedFixedMap);
         *  info.AddValue("settlementsLoadCase",settlementsLoadCase);
         *
         *  FillArraysFromDictionary();
         *
         *  info.AddValue("DisplacementsCases", DisplacementsCases);
         *  info.AddValue("DisplacementsValues", DisplacementsValues);
         *  info.AddValue("ForcesCases", ForcesCases);
         *  info.AddValue("ForcesValues", ForcesValues);
         *
         *  //info.AddValue("KffCholesky", );
         *  //info.AddValue("KffLdl", KffLdl);
         *  info.AddValue("Kss", Kss);
         *  info.AddValue("Kfs", Kfs);
         * }
         *
         * private void FillArraysFromDictionary()
         * {
         *  DisplacementsCases = new LoadCase[displacements.Count];
         *  DisplacementsValues = new List<double[]>();
         *
         *  var cnt = 0;
         *
         *  foreach (var pair in displacements)
         *  {
         *      DisplacementsCases[cnt++] = pair.Key;
         *      DisplacementsValues.Add(pair.Value);
         *  }
         *
         *  ForcesCases = new LoadCase[displacements.Count];
         *  ForcesValues = new List<double[]>();
         *
         *  cnt = 0;
         *
         *  foreach (var pair in forces)
         *  {
         *      ForcesCases[cnt++] = pair.Key;
         *      ForcesValues.Add(pair.Value);
         *  }
         * }
         *
         * protected StaticLinearAnalysisResult(SerializationInfo info, StreamingContext context)
         * {
         *  ReleasedMap = info.GetValue<int[]>("ReleasedMap");
         *  FixedMap = info.GetValue<int[]>("FixedMap");
         *  ReversedReleasedMap = info.GetValue<int[]>("ReversedReleasedMap");
         *  ReversedFixedMap = info.GetValue<int[]>("ReversedFixedMap");
         *  settlementsLoadCase = info.GetValue<LoadCase>("settlementsLoadCase");
         *
         *  DisplacementsCases = info.GetValue<LoadCase[]>("DisplacementsCases");
         *  DisplacementsValues = info.GetValue<List<double[]>>("DisplacementsValues");
         *  ForcesCases = info.GetValue<LoadCase[]>("ForcesCases");
         *  ForcesValues = info.GetValue<List<double[]>>("ForcesValues");
         *
         *  KffCholesky = info.GetValue<CSparse.Double.Factorization.SparseCholesky>("KffCholesky");
         *  //KffLdl = info.GetValue<CSparse.Double.Factorization.SparseLDL>("KffLdl");
         *
         *  Kss = info.GetValue<CSparse.Double.CompressedColumnStorage>("Kss");
         *  Kfs = info.GetValue<CSparse.Double.CompressedColumnStorage>("Kfs");
         * }
         *
         * [OnDeserialized]
         * private void FillDictionaryFromArray(StreamingContext context)
         * {
         *  displacements.Clear();
         *  forces.Clear();
         *
         *  for (var i = 0; i < DisplacementsValues.Count; i++)
         *  {
         *      displacements[DisplacementsCases[i]] = DisplacementsValues[i];
         *  }
         *
         *  for (var i = 0; i < ForcesValues.Count; i++)
         *  {
         *      forces[ForcesCases[i]] = ForcesValues[i];
         *  }
         * }
         */
        #endregion

        public void Clear()
        {
            Displacements.Clear();
            Forces.Clear();
            ElementForces.Clear();
            ConcentratedForces.Clear();
            SupportReactions.Clear();
        }
Пример #4
0
 public void SetInsertionPoint(string name,
                               Displacements offsetDistancesI,
                               Displacements offsetDistancesJ,
                               bool isStiffnessTransformed,
                               string coordinateSystem = CoordinateSystems.Global,
                               eItemType itemType      = eItemType.Object)
 {
 }
Пример #5
0
 public void GetInsertionPoint(string name,
                               ref Displacements offsetDistancesI,
                               ref Displacements offsetDistancesJ,
                               ref eCardinalInsertionPoint cardinalPoint,
                               ref bool isMirroredLocal2,
                               ref bool isStiffnessTransformed,
                               ref string coordinateSystem)
 {
 }
 internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
 {
     if (id == "coordIndex")
     {
         CoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
     }
     else if (id == "displacements")
     {
         Displacements.AddRange(parser.ParseSFVec3fOrMFVec3fValue());
     }
     else if (id == "name")
     {
         Name = parser.ParseStringValue();
     }
     else if (id == "weight")
     {
         Weight = parser.ParseDoubleValue();
     }
     else
     {
         return(false);
     }
     return(true);
 }
Пример #7
0
        /// <summary>
        /// This function returns a list of ground displacement load assignments made to one or more specified point elements.
        /// </summary>
        /// <param name="name">The name of an existing point object, element or group of objects, depending on the value of <paramref name="itemType" />.</param>
        /// <param name="numberItems">This is the total number of ground displacement load assignments returned.</param>
        /// <param name="pointNames">The name of the point element to which the specified ground displacement load assignment applies.</param>
        /// <param name="loadPatterns">The name of the load pattern for each load.</param>
        /// <param name="loadPatternSteps">The load pattern step for each load.
        /// In most cases this item does not apply and will be returned as 0.</param>
        /// <param name="coordinateSystem">The name of the coordinate system for the ground displacement.
        /// This is either Local or the name of a defined coordinate system.</param>
        /// <param name="displacements">The ground displacements assigned along the local or global axis direction, depending on the specified <paramref name="coordinateSystem" />.</param>
        /// <param name="itemType">If this item is <see cref="eItemTypeElement.ObjectElement" />, the load assignments are retrieved for the elements corresponding to the object specified by the <paramref name="name" /> item.
        /// If this item is <see cref="eItemTypeElement.Element" />, the load assignments are retrieved for the element specified by the <paramref name="name" /> item.
        /// If this item is <see cref="eItemTypeElement.GroupElement" />, the load assignments are retrieved for the elements corresponding to all objects included in the group specified by the <paramref name="name" /> item.
        /// If this item is <see cref="eItemTypeElement.SelectionElement" />, the load assignments are retrieved for elements corresponding to all selected objects, and the <paramref name="name" /> item is ignored.</param>
        /// <exception cref="CSiException"></exception>
        public void GetLoadDisplacement(string name,
                                        ref int numberItems,
                                        ref string[] pointNames,
                                        ref string[] loadPatterns,
                                        ref int[] loadPatternSteps,
                                        ref string[] coordinateSystem,
                                        ref Displacements[] displacements,
                                        eItemTypeElement itemType = eItemTypeElement.Element)
        {
            double[] U1 = new double[0];
            double[] U2 = new double[0];
            double[] U3 = new double[0];
            double[] R1 = new double[0];
            double[] R2 = new double[0];
            double[] R3 = new double[0];

            _callCode = _sapModel.PointElm.GetLoadDispl(name, ref numberItems,
                                                        ref pointNames, ref loadPatterns, ref loadPatternSteps, ref coordinateSystem,
                                                        ref U1, ref U2, ref U3, ref R1, ref R2, ref R3,
                                                        EnumLibrary.Convert <eItemTypeElement, CSiProgram.eItemTypeElm>(itemType));
            if (throwCurrentApiException(_callCode))
            {
                throw new CSiException();
            }

            displacements = new Displacements[numberItems - 1];
            for (int i = 0; i < numberItems; i++)
            {
                displacements[i].UX = U1[i];
                displacements[i].UY = U2[i];
                displacements[i].UZ = U3[i];
                displacements[i].RX = R1[i];
                displacements[i].RY = R2[i];
                displacements[i].RZ = R3[i];
            }
        }
Пример #8
0
 public void GetInsertionPoint(string name,
                               ref Displacements offsetDistancesI,
                               ref Displacements offsetDistancesJ)
 {
 }