Beispiel #1
0
        public Analysis(FeModel m)
        {
            modell = m;
            if (modell == null)
            {
                throw new AnalysisException("Modelleingabedaten noch nicht eingelesen");
            }
            // set System Indices
            var k = 0;

            foreach (var item in modell.Knoten)
            {
                node = item.Value;
                k    = node.SetSystemIndices(k);
            }
            SetReferences(m);
        }
Beispiel #2
0
        // object references are initially established only on the basis of unique identifiers, i.e. before object instantiation ****
        // when analyis is started, object references must be established using the unique identifiers ******************************
        private void SetReferences(FeModel m)
        {
            modell = m;

            // Referenzen für Querschnittsverweise von 2D Elementen setzen
            foreach (var abstractElement in
                     from KeyValuePair <string, AbstractElement> item in modell.Elemente
                     where item.Value != null
                     where item.Value is Abstract2D
                     let element = item.Value
                                   select element)
            {
                var element2D = (Abstract2D)abstractElement;
                element2D.SetCrossSectionReferences(modell);
            }
            // setzen aller notwendigen Elementreferenzen und der Systemindizes aller Elemente
            foreach (var abstractElement in modell.Elemente.Select(item => item.Value))
            {
                abstractElement.SetReferences(modell);
                abstractElement.SetSystemIndicesOfElement();
            }

            foreach (var support in modell.Randbedingungen.Select(item => item.Value))
            {
                support.SetReferences(modell);
            }
            foreach (var load in modell.ElementLasten.Select(item => item.Value))
            {
                load.SetReferences(modell);
            }
            foreach (var timeDepLoad in modell.ZeitabhängigeKnotenLasten.Select(item => item.Value))
            {
                timeDepLoad.SetReferences(modell);
            }
            foreach (var timeDepLoad in modell.ZeitabhängigeElementLasten.Select(item => item.Value))
            {
                timeDepLoad.SetReferences(modell);
            }
            foreach (var timeDepBc in modell.ZeitabhängigeRandbedingung.Select(item => item.Value))
            {
                timeDepBc.SetReferences(modell);
            }
        }