예제 #1
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = YoungMod;
            double A     = area;
            string type  = "Quad4";
            string type2 = "ContactNtS2D";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i] = new ElementProperties(E, A, type);
            }

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }

            for (int i = totalElements + 1; i <= totalElements + totalContactElements - 1 + totalContactElements - 2 + totalContactElements - 3 + totalContactElements - 4; i++)
            {
                elementProperties[i]           = new ElementProperties(E, A, type2);
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }
            return(elementProperties);
        }
        private static Dictionary <int, IElementProperties> CreateThermalElementProperties()
        {
            double thermalCond = solidThermalCond;
            double A           = thickness * xIntervals;
            string type        = "Quad4Th2";
            string type2       = "ContactNtS2DTh";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i]                     = new ElementProperties();
                elementProperties[i].ElementType         = type;
                elementProperties[i].ThermalConductivity = thermalCond;
                elementProperties[i].A                   = xIntervals;
                elementProperties[i].B                   = yIntervals;
            }
            for (int i = totalElements + 1; i <= totalElements + totalContactElements - 1 + totalContactElements - 2 + totalContactElements - 3 + totalContactElements - 4; i++)
            {
                elementProperties[i]                            = new ElementProperties();
                elementProperties[i].ElementType                = type2;
                elementProperties[i].ThermalConductivity        = thermalCond;
                elementProperties[i].SectionArea                = A;
                elementProperties[i].SurfaceRoughness           = roughness;
                elementProperties[i].ContactThermalConductivity = contactCond;
                elementProperties[i].YieldStrength              = yieldStrength;
            }
            return(elementProperties);
        }
예제 #3
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E         = YoungMod;
            double E2        = YoungMod2;
            double A         = thickness * yIntervals;
            double CircularA = thickness * 2 * Math.PI * Radius / steps;
            //double A1 = thickness * (Math.PI * Radius * Radius - Math.PI * (Radius - ((Radius - radius) / (circles - 1))) * (Radius - ((Radius - radius) / (circles - 1))))/ (steps - 1);
            //double A2 = thickness * (Math.PI * (Radius- RD) * (Radius - RD) - Math.PI * ((Radius - RD) - ((Radius - radius) / (circles - 1))) * ((Radius - RD) - ((Radius - radius) / (circles - 1)))) / (steps - 1);
            //double A3 = thickness * (Math.PI * (Radius - 2 * RD) * (Radius - 2 *RD) - Math.PI * ((Radius - 2 * RD) - ((Radius - radius) / (circles - 1))) * ((Radius - 2 * RD) - ((Radius - radius) / (circles - 1)))) / (steps - 1);
            string type  = "Quad8";
            string type2 = "ContactNtS2D";
            string type3 = "ContactNtN2D";
            string type4 = "Quad4";


            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            //for (int j = 1; j < circles; j++)                                      // upper body element properties
            //{
            //double CircularSectorArea = thickness * (Math.PI * (Radius - (j - 1) * RD) * (Radius - (j - 1) * RD) - Math.PI * (Radius - j * RD) * (Radius - j * RD)) / steps;

            //int m = (j - 1) * steps + 1;
            for (int i = 1; i <= (circles - 1) * steps; i++)
            {
                elementProperties[i]           = new ElementProperties(E, CircularA, type);
                elementProperties[i].Density   = density * massScaleFactor;
                elementProperties[i].Thickness = thickness;
            }
            //}                                                                   // end of upper body properties


            for (int i = (circles - 1) * steps + 1; i <= elementsNumber; i++) //Lower Body elements properties
            {
                elementProperties[i]           = new ElementProperties(E2, A, type4);
                elementProperties[i].Density   = density2;
                elementProperties[i].Thickness = thickness;
            }
            for (int i = elementsNumber + 1; i <= elementsNumber + contacts; i++) //Contacts elements properties
            {
                if (i == elementsNumber + 7)
                {
                    elementProperties[i]           = new ElementProperties(E2, CircularA, type3);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
                else
                {
                    elementProperties[i]           = new ElementProperties(E2, CircularA, type2);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
            }
            return(elementProperties);
        }
예제 #4
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E    = 1.0;
            double A    = 1.0;
            double I    = 1.0; //inertia
            string type = "BeamNL2D";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1]         = new ElementProperties(E, A, I, type);
            elementProperties[1].Density = 1.0;

            return(elementProperties);
        }
예제 #5
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E    = YoungMod;
            double A    = thickness * yIntervals;
            string type = "Quad8";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= elementsNumber; i++)
            {
                elementProperties[i] = new ElementProperties(E, PoissonRatio, A, thickness, density, type);
            }
            return(elementProperties);
        }
예제 #6
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E    = 200.0e9;
            double A    = 1.0;
            string type = "Quad4";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int element = 1; element <= 15; element++)
            {
                elementProperties[element] = new ElementProperties(E, A, type);
            }
            return(elementProperties);
        }
예제 #7
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E    = 29.5e6;
            double A    = 1;
            string type = "Bar2D";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1] = new ElementProperties(E, A, type);
            elementProperties[2] = new ElementProperties(E, A, type);
            elementProperties[3] = new ElementProperties(E, A, type);
            elementProperties[4] = new ElementProperties(E, A, type);
            return(elementProperties);
        }
예제 #8
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E    = 200.0e9;
            double A    = 1.0;
            string type = "Hex8";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1]         = new ElementProperties(E, A, type);
            elementProperties[1].Density = 8000.0;

            return(elementProperties);
        }
예제 #9
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = 1000.0;
            double A     = 1.0;
            string type  = "Bar2D";
            string type2 = "ContactNtN2D";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1] = new ElementProperties(E, A, type);
            elementProperties[2] = new ElementProperties(E, A, type2);
            elementProperties[3] = new ElementProperties(E, A, type);

            return(elementProperties);
        }
예제 #10
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = 200.0e9;
            double A     = 0.01;
            double I     = 8.333e-6;
            string type  = "BeamNL2D";
            string type2 = "ContactNtS2Df";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1] = new ElementProperties(E, A, I, type);
            elementProperties[2] = new ElementProperties(E, A, I, type);
            elementProperties[3] = new ElementProperties(E, A, I, type);
            elementProperties[4] = new ElementProperties(E, A, I, type);
            elementProperties[5] = new ElementProperties(E, A, type2);
            return(elementProperties);
        }
예제 #11
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = YoungMod;
            double A     = sectionArea;
            string type  = "Bar2D";
            string type2 = "ContactNtN2D";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= elementsNumber; i++)
            {
                elementProperties[i]         = new ElementProperties(E, A, type);
                elementProperties[i].Density = density;
            }
            elementProperties[elementsNumber + 1]         = new ElementProperties(E, A, type2);
            elementProperties[elementsNumber + 1].Density = density;
            return(elementProperties);
        }
예제 #12
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double thermalCond = 60.5;
            double A           = 1.0;
            string type        = "Quad4Th";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1]                     = new ElementProperties();
            elementProperties[2]                     = new ElementProperties();
            elementProperties[1].ElementType         = type;
            elementProperties[2].ElementType         = type;
            elementProperties[1].ThermalConductivity = thermalCond;
            elementProperties[2].ThermalConductivity = thermalCond;

            return(elementProperties);
        }
예제 #13
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E = YoungMod;
            double A = thickness * yIntervals;
            double contactElemArea = thickness * xIntervals;
            string type            = "Quad4";
            string type2           = "ContactNtN2D";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= elementsNumber / 2; i++)
            {
                elementProperties[i] = new ElementProperties(E, A, type);
            }
            for (int i = 1; i <= elementsNumber / 2; i++)
            {
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }
            for (int i = elementsNumber / 2 + 1; i <= elementsNumber; i++)
            {
                elementProperties[i] = new ElementProperties(1000 * E, A, type);
            }
            for (int i = elementsNumber / 2 + 1; i <= elementsNumber; i++)
            {
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }
            for (int i = elementsNumber + 1; i <= elementsNumber + contacts; i++)
            {
                if (i == elementsNumber + 1 ||
                    i == elementsNumber + contacts)
                {
                    elementProperties[i]           = new ElementProperties(E, contactElemArea / 2, type2);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
                else
                {
                    elementProperties[i]           = new ElementProperties(E, contactElemArea, type2);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
            }
            return(elementProperties);
        }
예제 #14
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E    = 200.0e9;
            double A    = 0.01;
            string type = "Quad4";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1] = new ElementProperties(E, A, type);
            elementProperties[2] = new ElementProperties(E, A, type);
            for (int i = 1; i <= 2; i++)
            {
                elementProperties[i].Density   = 8000.0;
                elementProperties[i].Thickness = 0.1;
            }

            return(elementProperties);
        }
예제 #15
0
        private static Dictionary <int, IElementProperties> CreateThermalElementProperties()
        {
            double thermalCond = solidThermalCond;
            double A           = area;
            string type        = "Quad4Th";
            string type2       = "ContactNtS2DTh";
            string type3       = "Quad4Th2";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= (nodesInXCoor - 1) * (nodesInYCoor - 1); i++)
            {
                elementProperties[i]                     = new ElementProperties();
                elementProperties[i].ElementType         = type;
                elementProperties[i].ThermalConductivity = thermalCond;
            }
            for (int i = 1 + (nodesInXCoor - 1) * (nodesInYCoor - 1); i <= totalElements; i++)
            {
                elementProperties[i]                     = new ElementProperties();
                elementProperties[i].ElementType         = type3;
                elementProperties[i].ThermalConductivity = thermalCond;
                elementProperties[i].A                   = xIntervals2;
                elementProperties[i].B                   = yIntervals;
            }
            for (int i = totalElements + 1; i <= totalElements + totalContactElements; i++)
            {
                elementProperties[i]                     = new ElementProperties();
                elementProperties[i].ElementType         = type2;
                elementProperties[i].ThermalConductivity = thermalCond;
                if (i == totalElements + totalContactElements)
                {
                    elementProperties[i].SectionArea = A / 2;
                }
                else
                {
                    elementProperties[i].SectionArea = A;
                }
                elementProperties[i].SurfaceRoughness           = roughness;
                elementProperties[i].ContactThermalConductivity = contactCond;
                elementProperties[i].YieldStrength = yieldStrength;
            }
            return(elementProperties);
        }
예제 #16
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double thermaConductivity = 1.0;
            string type = "Quad4Th";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= 6; i++)
            {
                elementProperties[i] = new ElementProperties();
            }
            foreach (var element in elementProperties)
            {
                element.Value.ElementType         = type;
                element.Value.ThermalConductivity = thermaConductivity;
            }

            return(elementProperties);
        }
예제 #17
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double Ebeam = 30000.0;
            double Ebar  = 200000.0;
            double Abeam = 0.02;
            double Abar  = 0.001;
            double Ambar = 0.003;
            double I     = 0.004;
            string type  = "Beam2D";
            string type2 = "Bar2D";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1] = new ElementProperties(Ebeam, Abeam, I, type);
            elementProperties[2] = new ElementProperties(Ebeam, Abeam, I, type);
            elementProperties[3] = new ElementProperties(Ebar, Abar, type2);
            elementProperties[4] = new ElementProperties(Ebar, Ambar, type2);
            elementProperties[5] = new ElementProperties(Ebar, Abar, type2);
            return(elementProperties);
        }
예제 #18
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = 10.0e5;
            double A     = 1.0;
            double I     = 1.0;
            string type  = "Beam2D";
            string type2 = "ContactNtS2D";
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int elem = 1; elem <= 20; elem++)
            {
                elementProperties[elem]         = new ElementProperties(E, A, I, type);
                elementProperties[elem].Density = 1.0;
            }
            elementProperties[21]         = new ElementProperties(E, A, type2);
            elementProperties[21].Density = 8000.0;

            return(elementProperties);
        }
예제 #19
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E  = YoungMod;
            double E2 = YoungMod2;
            double A  = thickness * yIntervals;
            double contactElemArea = thickness * 0.17431 * Radius * scaleFactor;
            string type            = "Quad4";
            string type2           = "Triangle3";
            //string type2 = "ContactNtS2D";
            string type3 = "ContactNtN2D";
            string type4 = "ContactNtS2D";


            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= 12; i++)
            {
                elementProperties[i] = new ElementProperties(E, PoissonRatio, A, thickness, density, type2);
            }
            for (int i = 13; i <= 60; i++)
            {
                elementProperties[i] = new ElementProperties(E, PoissonRatio, A, thickness, density, type2);
            }
            for (int i = 61; i <= 3 * nodesInPerimeter + 60; i++)
            {
                elementProperties[i] = new ElementProperties(E, PoissonRatio, A, thickness, density2, type);
            }
            for (int i = 3 * nodesInPerimeter + 60 + 1; i <= elementsNumber; i++)
            {
                elementProperties[i] = new ElementProperties(E2, PoissonRatio, A, thickness, density, type);
            }
            elementProperties[elementsNumber + 1]           = new ElementProperties(E2, contactElemArea, type3);
            elementProperties[elementsNumber + 1].Density   = density;
            elementProperties[elementsNumber + 1].Thickness = thickness;
            for (int i = elementsNumber + 2; i <= elementsNumber + contacts; i++)
            {
                elementProperties[i]           = new ElementProperties(E2, contactElemArea, type4);
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }
            return(elementProperties);
        }
예제 #20
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E    = YoungMod;
            string type = "Quad4";
            double A    = 0;

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i] = new ElementProperties(E, A, type);
            }

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }
            return(elementProperties);
        }
예제 #21
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = 200.0e9;
            double A     = 1.0;
            string type  = "Hex8";
            string type2 = "ContactNtS3D";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= 5; i++)
            {
                elementProperties[i]         = new ElementProperties(E, A, type);
                elementProperties[i].Density = 8000.0;
                //elementProperties[i].Thickness = 0.1;
            }
            for (int i = 6; i <= 9; i++)
            {
                elementProperties[i] = new ElementProperties(E, A, type2);
            }
            return(elementProperties);
        }
예제 #22
0
        private Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = 200.0e9;
            double A     = 1.0;
            string type  = "Quad4";
            string type2 = "ContactNtN2D";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= ElementsNumber - 11; i++)
            {
                elementProperties[i]           = new ElementProperties(E, A, type);
                elementProperties[i].Density   = 8000.0;
                elementProperties[i].Thickness = 0.1;
            }
            for (int i = 201; i <= 211; i++)
            {
                elementProperties[i] = new ElementProperties(E, A, type2);
            }
            return(elementProperties);
        }
예제 #23
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E     = YoungMod;
            double A     = area;
            string type  = "Quad4";
            string type2 = "ContactNtS2D";
            string type3 = "Bar2D";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i] = new ElementProperties(E, A, type);
            }

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }

            for (int i = totalElements + 1; i <= totalElements + totalContactElements - 1; i++)
            {
                elementProperties[i]           = new ElementProperties(E, A, type2);
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }

            int count = elementProperties.Count;

            for (int i = count + 1; i <= count + AddedNodes; i++)
            {
                elementProperties[i] = new ElementProperties(E / 5000, A, type3);
            }
            //elementProperties[count + 4] = new ElementProperties(E / 10000, A, type3);
            //elementProperties[count + 5] = new ElementProperties(E / 10000, A, type3);

            return(elementProperties);
        }
예제 #24
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();
            string type        = "Quad4";
            string type2       = "ContactNtN2D";
            string type3       = "Bar2D";
            double density     = new double();
            double A           = xInterv * yInterv;
            double contactArea = xInterv * thickness;


            for (int i = 1; i <= elementsCount; i++)
            {
                elementProperties[i] = new ElementProperties(YoungMod, A, type);
            }
            for (int i = 1; i <= elementsCount; i++)
            {
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }
            for (int i = elementsCount + 1; i <= elementsCount + contactElementsCount; i++)
            {
                if (i == elementsCount + 1 || i == elementsCount + contactElementsCount)
                {
                    elementProperties[i]           = new ElementProperties(YoungMod, contactArea / 2, type2);
                    elementProperties[i].Thickness = thickness;
                }
                else
                {
                    elementProperties[i]           = new ElementProperties(YoungMod, contactArea, type2);
                    elementProperties[i].Thickness = thickness;
                }
            }
            int count = elementProperties.Count;

            elementProperties[count + 1] = new ElementProperties(YoungMod / 100, A / 2, type3);
            elementProperties[count + 2] = new ElementProperties(YoungMod / 100, A / 2, type3);
            return(elementProperties);
        }
예제 #25
0
        private static Dictionary <int, IElementProperties> CreateThermalElementProperties()
        {
            double thermalCond = solidThermalCond;
            double A           = area;
            string type        = "Quad4Th";
            string type2       = "ContactNtS2DTh";
            //string type3 = "ContactNtN2DTh";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= totalElements; i++)
            {
                elementProperties[i]                     = new ElementProperties();
                elementProperties[i].ElementType         = type;
                elementProperties[i].ThermalConductivity = thermalCond;
            }
            for (int i = totalElements + 1; i <= totalElements + totalContactElements - 1; i++)
            {
                elementProperties[i]                            = new ElementProperties();
                elementProperties[i].ElementType                = type2;
                elementProperties[i].ThermalConductivity        = thermalCond;
                elementProperties[i].SectionArea                = A;
                elementProperties[i].SurfaceRoughness           = roughness;
                elementProperties[i].ContactThermalConductivity = contactCond;
                elementProperties[i].YieldStrength              = yieldStrength;
            }
            //for (int i = totalElements + totalContactElements; i < totalElements + totalContactElements + RodElements; i++)
            //{
            //    elementProperties[i] = new ElementProperties();
            //    elementProperties[i].ElementType = type3;
            //    elementProperties[i].ThermalConductivity = 0;
            //    elementProperties[i].SectionArea = A;
            //    elementProperties[i].SurfaceRoughness = roughness;
            //    elementProperties[i].ContactThermalConductivity = contactCond;
            //    elementProperties[i].YieldStrength = yieldStrength;
            //}
            return(elementProperties);
        }
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double thermalCond = 60.5;
            double A           = 0.5;
            string type        = "Quad4Th";
            string type2       = "ContactNtN2DTh";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            elementProperties[1]                     = new ElementProperties();
            elementProperties[2]                     = new ElementProperties();
            elementProperties[3]                     = new ElementProperties();
            elementProperties[4]                     = new ElementProperties();
            elementProperties[1].ElementType         = type;
            elementProperties[2].ElementType         = type;
            elementProperties[3].ElementType         = type2;
            elementProperties[4].ElementType         = type2;
            elementProperties[1].ThermalConductivity = thermalCond;
            elementProperties[2].ThermalConductivity = thermalCond;
            elementProperties[3].SectionArea         = A;
            elementProperties[4].SectionArea         = A;

            return(elementProperties);
        }
예제 #27
0
        private static Dictionary <int, IElementProperties> CreateElementProperties()
        {
            double E  = YoungMod;
            double E2 = YoungMod2;
            double A  = thickness * yIntervals;
            double contactElemArea1 = thickness * yIntervals * scaleFactor;
            double contactElemArea2 = thickness * xIntervals * scaleFactor;
            string type             = "Quad4";
            string type2            = "ContactNtS2D";
            string type3            = "ContactNtN2D";

            Dictionary <int, IElementProperties> elementProperties = new Dictionary <int, IElementProperties>();

            for (int i = 1; i <= (nodesInY - 1) * (nodesInY - 1); i++)
            {
                elementProperties[i] = new ElementProperties(E, A * scaleFactor, type);
            }
            for (int i = 1; i <= (nodesInY - 1) * (nodesInY - 1); i++)
            {
                elementProperties[i].Density   = density;
                elementProperties[i].Thickness = thickness;
            }
            for (int i = (nodesInY - 1) * (nodesInY - 1) + 1; i <= elementsNumber; i++)
            {
                elementProperties[i] = new ElementProperties(E2, A, type);
            }
            for (int i = (nodesInY - 1) * (nodesInY - 1) + 1; i <= elementsNumber; i++)
            {
                elementProperties[i].Density   = density2;
                elementProperties[i].Thickness = thickness;
            }
            for (int i = elementsNumber + 1; i <= elementsNumber + nodesInY; i++)
            {
                if (i == elementsNumber + 1)
                {
                    elementProperties[i]           = new ElementProperties(E2, contactElemArea1 / 2, type2);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
                else if (i == elementsNumber + nodesInY)
                {
                    elementProperties[i]           = new ElementProperties(E2, contactElemArea1 / 2 + contactElemArea2 / 2, type3);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
                else
                {
                    elementProperties[i]           = new ElementProperties(E2, contactElemArea1, type2);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
            }
            for (int i = elementsNumber + nodesInY + 1; i <= elementsNumber + contacts; i++)
            {
                if (i == elementsNumber + contacts)
                {
                    elementProperties[i]           = new ElementProperties(E2, contactElemArea2 / 2, type2);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
                else
                {
                    elementProperties[i]           = new ElementProperties(E2, contactElemArea2, type2);
                    elementProperties[i].Density   = density;
                    elementProperties[i].Thickness = thickness;
                }
            }
            return(elementProperties);
        }