コード例 #1
0
ファイル: CCrSc_0_01.cs プロジェクト: 777ondro/sw-en
 protected override void loadCrScIndices()
 {
     CCrSc_0_00 oTemp = new CCrSc_0_00();
     oTemp.loadCrScIndices_00_01(ITotNoPoints);
     TriangleIndices = new Int32Collection();
     TriangleIndices = oTemp.TriangleIndices;
 }
コード例 #2
0
ファイル: CExample_2D_12.cs プロジェクト: 777ondro/sw-en
        public CExample_2D_12()
        {
            m_eSLN = ESLN.e2DD_1D; // 1D members in 2D model
            m_eNDOF = (int)ENDOF.e2DEnv; // DOF in 2D
            m_eGCS = EGCS.eGCSLeftHanded; // Global coordinate system

            m_arrNodes = new BaseClasses.CNode[5];
            m_arrMembers = new CMember[4];
            m_arrMat = new CMat_00[1];
            m_arrCrSc = new CRSC.CCrSc[3];
            m_arrNSupports = new BaseClasses.CNSupport[1];
            m_arrMLoads = new BaseClasses.CMLoad[1];
            m_arrLoadCases = new BaseClasses.CLoadCase[1];
            m_arrLoadCombs = new BaseClasses.CLoadCombination[1];

            // Auxiliary
            // Use basic SI units
            // Sobota, J. > Statika stavebnych konstrukcii 2

            // Load
            float fq = 20f;   // Unit [N/m]

            // Geometry
            float fa = 3.0f,
                  fb = 4.0f,
                  fc = 1.0f,
                  fd = 2.0f,
                  fe = 2.5f;// Unit [m]

            // Materials
            // Materials List - Materials Array - Fill Data of Materials Array
            m_arrMat[0] = new CMat_00();

            // Auxiliary, dopocitat
            m_arrMat[0].m_fE = 10000000f;          // Unit [Pa]
            m_arrMat[0].m_fNu = 0.3f;              // Unit [-]
            m_arrMat[0].m_fG = 4000000;            // Unit [Pa]

            // Cross-sections
            // CrSc List - CrSc Array - Fill Data of Cross-sections Array
            // Cross-section
            m_arrCrSc[0] = new CCrSc_0_00();  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            m_arrCrSc[0].FA_g = 1.18095238095E-02f; // Unit [m^2]
            m_arrCrSc[0].FI_y = 9.52380952381E-05f; // Unit [m^4]
            m_arrCrSc[0].m_Mat = m_arrMat[0]; // Set CrSc Material

            m_arrCrSc[1] = new CCrSc_0_00();  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            m_arrCrSc[1].FA_g = 1.48571428571E-02f; // Unit [m^2]
            m_arrCrSc[1].FI_y = 1.90476190476E-04f; // Unit [m^4]
            m_arrCrSc[1].m_Mat = m_arrMat[0]; // Set CrSc Material

            m_arrCrSc[2] = new CCrSc_0_00();  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            m_arrCrSc[2].FA_g = 1.35238095238E-02f; // Unit [m^2]
            m_arrCrSc[2].FI_y = 1.42857142857E-07f; // Unit [m^4]
            m_arrCrSc[2].m_Mat = m_arrMat[0]; // Set CrSc Material

            // Nodes
            // Nodes List - Nodes Array

            // Node 1
            m_arrNodes[0] = new CNode();
            m_arrNodes[0].ID = 1;
            m_arrNodes[0].X = 0f;
            m_arrNodes[0].Y = 0f;
            m_arrNodes[0].Z = 0f;

            // Node 2
            m_arrNodes[1] = new CNode();
            m_arrNodes[1].ID = 2;
            m_arrNodes[1].X = 0f;
            m_arrNodes[1].Y = -fc - fd;
            m_arrNodes[1].Z = 0f;

            // Node 3
            m_arrNodes[2] = new CNode();
            m_arrNodes[2].ID = 3;
            m_arrNodes[2].X = fa;
            m_arrNodes[2].Y = -fc - fd - fe;
            m_arrNodes[2].Z = 0f;

            // Node 4
            m_arrNodes[3] = new CNode();
            m_arrNodes[3].ID = 4;
            m_arrNodes[3].X = fa + fb;
            m_arrNodes[3].Y = -fc - fd - fe;
            m_arrNodes[3].Z = 0f;

            // Node 5
            m_arrNodes[4] = new CNode();
            m_arrNodes[4].ID = 5;
            m_arrNodes[4].X = fa + fb;
            m_arrNodes[4].Y = fc;
            m_arrNodes[4].Z = 0f;

            // Sort by ID
            //Array.Sort(m_arrNodes, new BaseClasses.CCompare_NodeID());

            // Members
            // Members List - Members Array

            // Member 1 - 1-2
            m_arrMembers[0] = new CMember();
            m_arrMembers[0].ID = 1;
            m_arrMembers[0].NodeStart = m_arrNodes[0];
            m_arrMembers[0].NodeEnd = m_arrNodes[1];
            m_arrMembers[0].CrScStart = m_arrCrSc[0];

            // Member 2 - 2-3
            m_arrMembers[1] = new CMember();
            m_arrMembers[1].ID = 2;
            m_arrMembers[1].NodeStart = m_arrNodes[1];
            m_arrMembers[1].NodeEnd = m_arrNodes[2];
            m_arrMembers[1].CrScStart = m_arrCrSc[1];

            // Member 3 - 3-4
            m_arrMembers[2] = new CMember();
            m_arrMembers[2].ID = 3;
            m_arrMembers[2].NodeStart = m_arrNodes[2];
            m_arrMembers[2].NodeEnd = m_arrNodes[3];
            m_arrMembers[2].CrScStart = m_arrCrSc[1];

            // Member 4 - 4-5
            m_arrMembers[3] = new CMember();
            m_arrMembers[3].ID = 4;
            m_arrMembers[3].NodeStart = m_arrNodes[3];
            m_arrMembers[3].NodeEnd = m_arrNodes[4];
            m_arrMembers[3].CrScStart = m_arrCrSc[2];

            //Sort by ID
            //Array.Sort(m_arrMembers, new BaseClasses.CCompare_MemberID());

            // Nodal Supports - fill values
            // Support 1 - NodeIDs: 1,5
            m_arrNSupports[0] = new CNSupport(m_eNDOF);
            m_arrNSupports[0].ID = 1;
            m_arrNSupports[0].m_bRestrain[0] = true; // true - 1 restraint (infinity) / false - 0 - free (zero rigidity)
            m_arrNSupports[0].m_bRestrain[1] = true;
            m_arrNSupports[0].m_bRestrain[2] = true;
            m_arrNSupports[0].m_iNodeCollection = new int[2];
            m_arrNSupports[0].m_iNodeCollection[0] = 1;
            m_arrNSupports[0].m_iNodeCollection[1] = 5;

            // Sort by ID
            Array.Sort(m_arrNSupports, new BaseClasses.CCompare_NSupportID());

            // Member loads
            // Load 1 - MemberIDs: 3
            CMLoad_21 MLoad_q = new CMLoad_21(fq);
            MLoad_q.ID = 1;
            MLoad_q.MLoadTypeDistr = EMLoadTypeDistr.eMLT_QUF_W_21;
            MLoad_q.MLoadType = EMLoadType.eMLT_F;
            MLoad_q.EDirPPC = EMLoadDirPCC1.eMLD_PCC_FYU_MZV;
            MLoad_q.IMemberCollection = new int[1];
            MLoad_q.IMemberCollection[0] = 3;

            m_arrMLoads[0] = MLoad_q;

            // Load Cases
            // Load Case 1
            CLoadCase LoadCase0 = new CLoadCase();
            LoadCase0.ID = 1;

            m_arrLoadCases[0] = LoadCase0;

            // Load Combinations
            // Load Combination 1
            CLoadCombination LoadComb0 = new CLoadCombination();
            LoadComb0.ID = 1;

            m_arrLoadCombs[0] = LoadComb0;
        }
コード例 #3
0
ファイル: CExample_3D_21.cs プロジェクト: 777ondro/sw-en
        public CExample_3D_21()
        {
            m_eSLN = ESLN.e3DD_1D; // 1D members in 3D model
            m_eNDOF = (int)ENDOF.e3DEnv; // DOF in 3D
            m_eGCS = EGCS.eGCSLeftHanded; // Global coordinate system

            m_arrNodes = new BaseClasses.CNode[62];
            m_arrMembers = new CMember[31];
            m_arrMat = new CMat_00[1];
            m_arrCrSc = new CRSC.CCrSc[31];
            m_arrNSupports = new BaseClasses.CNSupport[3];
            //m_arrNLoads = new BaseClasses.CNLoad[3];

            // Materials
            // Materials List - Materials Array - Fill Data of Materials Array
            m_arrMat[0] = new CMat_03_00();

            // TEMP CROSS-SECTIONS TEST

            // Half Circle Bar
            // Quater Circle Bar
            // load_0_00_01_TriangelsIndices();
            // Round or Ellipse Bar
            // load_0_02_03_TriangelIndices();
            // Triangular Prism
            // load_0_04_TriangelsIndices();
            // Flat Bar
            // load_0_05_TriangelIndices();
            // Half Circle
            // load_0_20_TriangelIndices();
            // TUBE / PIPE Circle or Ellipse Shape
            // load_0_22_23_TriangelIndices();
            // Triangular Prism with Opening
            // load_0_24_TriangelsIndices();
            // HL-section / Rectanglular Hollow Cross-section
            // load_0_25_TriangelIndices();
            // Polygonal Hollow Section
            // load_0_26_28_TriangelIndices(0,test1.objCrScHollow.INoPoints);
            // I - section
            // load_0_50_TriangelIndices();
            // U-section
            // load_0_52_TriangelIndices();
            // L-section / Angle section
            // load_0_54_TriangelIndices();
            // T-section / T section
            // load_0_56_TriangelIndices();
            // Z-section / Z section
            // load_0_58_TriangelIndices();
            // Cruciform Bar
            // load_0_60_TriangelIndices(test1.objCrScSolid.ITotNoPoints);
            // Y-section / Y section
            // load_0_61_TriangelIndices();

            // OPRAVIT I a BOX !!!!!!!! NIECO SA POKAZILO :)!!!!!!!!!!!!!!!!!!!!!!!!!!!
            // Temp

            // Rolled I doubly symmetric profile, Tapered or parallel flanges
            // CCrSc obj_CrSc = new CCrSc_3_00(0, 8, 200, 90, 11.3f, 7.5f, 7.5f, 4.5f, 159.1f);
            // load_3_00_TriangelIndices(0, 12,8); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(1,8, 8); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(2, 4, 8); // Shape ID, number of auxiliary points , number of segments of arc

            // Rolled I monosymmetric profile, Tapered or parallel flanges
            // load_3_00_TriangelIndices(0, 12, 8); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(1,8,4); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(2, 4, 4); // Shape ID, number of auxiliary points , number of segments of arc

            // Rolled U profile, Tapered or parallel flanges, channel section
            // load_3_02_TriangelIndices(0,6, 8); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_02_TriangelIndices(2,2, 8); // Shape ID,number of auxiliary points , number of segments of arc
            // Rolled L profile, angle section
            // load_3_03_04_TriangelIndices(3, 8); // Number of auxiliary points, number of segments of arc
            // Rectanglular Hollow Cross-section
            // load_3_07_TriangelIndices(0, 4, 4); // Shape ID, number of auxiliary points per section, number of segments of one arc
            // load_3_07_TriangelIndices(2, 4, 4); // Shape ID, number of auxiliary points per section, number of segments of one arc
            // load_3_07_TriangelIndices(3, 4, 4); // Shape ID, number of auxiliary points per section, number of segments of one arc (iAux = 4)
            // load_3_07_TriangelIndices(5, 0, 0); // Shape ID, number of auxiliary points per section, number of segments of one arc
            // Rolled T profile, Tapered flanges
            // load_3_08_TriangelIndices(1,6,4); // Shape ID, number of auxiliary points, number of segments of arc
            // load_3_08_TriangelIndices(2,4,4); // Shape ID, number of auxiliary points, number of segments of arc
            // load_3_08_TriangelIndices(3, 2, 4); // Shape ID, number of auxiliary points, number of segments of arc

            // Cross-sections
            // CrSc List - CrSc Array - Fill Data of Cross-sections Array
            m_arrCrSc[00] = new CCrSc_0_00(0.1f, 20); // Solid Half Circle / Semicircle shape
            m_arrCrSc[01] = new CCrSc_0_01(0.1f, 20); // Solid Quater Cirlce - chyba nezobrazuje sa jedna strana
            m_arrCrSc[02] = new CCrSc_0_02(0.1f, 20); // Rolled round bar
            m_arrCrSc[03] = new CCrSc_0_03(0.2f, 0.1f, 21); // Solid Ellipse
            m_arrCrSc[04] = new CCrSc_0_04(0.3f, 0.5f); // Triangular Prism / Equilateral
            m_arrCrSc[05] = new CCrSc_0_05(0.1f, 0.05f); // Solid square section
            m_arrCrSc[06] = new CCrSc_0_06(0.1f); // Solid Penthagon
            m_arrCrSc[07] = new CCrSc_0_07(0.1f); // Solid Hexagon
            m_arrCrSc[08] = new CCrSc_0_08(0.1f); // Solid Octagon
            m_arrCrSc[09] = new CCrSc_0_09(0.1f); // Solid Dodecagon
            m_arrCrSc[10] = new CCrSc_0_20(0.2f, 0.010f, 25); // Semicircle Curve
            m_arrCrSc[11] = new CCrSc_0_22(0.2f, 0.05f, 12); // Circular Hollow Section (Tube, Pipe)
            m_arrCrSc[12] = new CCrSc_0_23(0.2f, 0.1f, 0.020f, 24); // Elliptical Hollow Section
            m_arrCrSc[13] = new CCrSc_0_24(0.2f, 0.05f); // Triangular Prism / Equilateral with Opening
            m_arrCrSc[14] = new CCrSc_0_25(0.2f, 0.15f, 0.01f, 0.008f); // Welded hollow section - doubly symmetrical
            m_arrCrSc[15] = new CCrSc_0_26(0.2f, 0.05f); // Empty (Hollow) Penthagon
            m_arrCrSc[16] = new CCrSc_0_27(0.2f, 0.05f); // Empty (Hollow) Hexagon
            m_arrCrSc[17] = new CCrSc_0_28(0.2f, 0.05f); // Empty (Hollow) Octagon
            m_arrCrSc[18] = new CCrSc_0_50(0.2f, 0.1f, 0.015f, 0.006f); // Doubly symmetric I section
            m_arrCrSc[19] = new CCrSc_0_52(0.2f, 0.1f, 0.015f, 0.006f, -0.05f); // Monosymmetric U/C section
            m_arrCrSc[20] = new CCrSc_0_54(0.2f, 0.1f, 0.015f, 0.010f, 0.050f, 0.010f); // Welded Angle section
            m_arrCrSc[21] = new CCrSc_0_56(0.2f, 0.1f, 0.015f, 0.010f, 0.15f); // Welded monosymmetric T section
            m_arrCrSc[22] = new CCrSc_0_58(0.2f, 0.1f, 0.015f, 0.010f); // Welded centrally symmetric Z section
            m_arrCrSc[23] = new CCrSc_0_60(0.2f, 0.1f, 0.015f); // Doubly symmetric Cruciform
            m_arrCrSc[24] = new CCrSc_0_61(0.2f, 0.010f); // Y-section

            // Rolled I doubly symmetric profile, Tapered or parallel flanges
            m_arrCrSc[25] = new CCrSc_3_00(0, 8, 0.200f, 0.090f, 0.0113f, 0.0075f, 0.0075f, 0.0045f, 0.1654f);
            m_arrCrSc[26] = new CCrSc_3_00(1, 8, 0.200f, 0.090f, 0.0113f, 0.0075f, 0.0075f, 0.1699f);
            m_arrCrSc[27] = new CCrSc_3_00(2, 8, 0.200f, 0.090f, 0.0113f, 0.0075f, 0.0075f, 0.1699f);

            // load_3_00_TriangelIndices(0, 12,8); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(1,8, 8); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(2, 4, 8); // Shape ID, number of auxiliary points , number of segments of arc

            // Rolled I monosymmetric profile, Tapered or parallel flanges
            m_arrCrSc[28] = new CCrSc_3_01(0, 8, 0.200f, 0.190f, 0.150f, 0.0113f, 0.0075f, 0.0075f, 0.0045f, 0.1654f);
            m_arrCrSc[29] = new CCrSc_3_01(1, 8, 0.200f, 0.150f, 0.100f, 0.0113f, 0.0075f, 0.0075f, 0.1699f);
            m_arrCrSc[30] = new CCrSc_3_01(2, 8, 0.200f, 0.090f, 0.150f, 0.0113f, 0.0075f, 0.0075f, 0.1699f);

            // load_3_00_TriangelIndices(0, 12, 8); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(1,8,4); // Shape ID, number of auxiliary points , number of segments of arc
            // load_3_00_TriangelIndices(2, 4, 4); // Shape ID, number of auxiliary points , number of segments of arc

            //m_arrCrSc[0] = new CCrSc_3_07(1,0.2f, 0.05f, 0.005f, 0.005f, 0.003f); // rectangular hollow section

            // Nodes
            // Nodes List - Nodes Array

            m_arrNodes[0]  = new BaseClasses.CNode(1, 0.0f, 0.0f, 0.0f, 0);
            m_arrNodes[1]  = new BaseClasses.CNode(2, 5.0f, 0.0f, 0.0f, 0);
            m_arrNodes[2]  = new BaseClasses.CNode(3, 0.0f, 1.0f, 0.0f, 0);
            m_arrNodes[3]  = new BaseClasses.CNode(4, 5.0f, 1.0f, 0.0f, 0);
            m_arrNodes[4]  = new BaseClasses.CNode(5, 0.0f, 2.0f, 0.0f, 0);
            m_arrNodes[5]  = new BaseClasses.CNode(6, 5.0f, 2.0f, 0.0f, 0);
            m_arrNodes[6]  = new BaseClasses.CNode(7, 0.0f, 3.0f, 0.0f, 0);
            m_arrNodes[7]  = new BaseClasses.CNode(8, 5.0f, 3.0f, 0.0f, 0);
            m_arrNodes[8]  = new BaseClasses.CNode(9, 0.0f, 4.0f, 0.0f, 0);
            m_arrNodes[9]  = new BaseClasses.CNode(10, 5.0f, 4.0f, 0.0f, 0);
            m_arrNodes[10] = new BaseClasses.CNode(11, 0.0f, 5.0f, 0.0f, 0);
            m_arrNodes[11] = new BaseClasses.CNode(12, 5.0f, 5.0f, 0.0f, 0);
            m_arrNodes[12] = new BaseClasses.CNode(13, 0.0f, 6.0f, 0.0f, 0);
            m_arrNodes[13] = new BaseClasses.CNode(14, 5.0f, 6.0f, 0.0f, 0);
            m_arrNodes[14] = new BaseClasses.CNode(15, 0.0f, 7.0f, 0.0f, 0);
            m_arrNodes[15] = new BaseClasses.CNode(16, 5.0f, 7.0f, 0.0f, 0);
            m_arrNodes[16] = new BaseClasses.CNode(17, 0.0f, 8.0f, 0.0f, 0);
            m_arrNodes[17] = new BaseClasses.CNode(18, 5.0f, 8.0f, 0.0f, 0);
            m_arrNodes[18] = new BaseClasses.CNode(19, 0.0f, 9.0f, 0.0f, 0);
            m_arrNodes[19] = new BaseClasses.CNode(20, 5.0f, 9.0f, 0.0f, 0);
            m_arrNodes[20] = new BaseClasses.CNode(21, 0.0f, 10.0f, 0.0f, 0);
            m_arrNodes[21] = new BaseClasses.CNode(22, 5.0f, 10.0f, 0.0f, 0);
            m_arrNodes[22] = new BaseClasses.CNode(23, 0.0f, 11.0f, 0.0f, 0);
            m_arrNodes[23] = new BaseClasses.CNode(24, 5.0f, 11.0f, 0.0f, 0);
            m_arrNodes[24] = new BaseClasses.CNode(25, 0.0f, 12.0f, 0.0f, 0);
            m_arrNodes[25] = new BaseClasses.CNode(26, 5.0f, 12.0f, 0.0f, 0);
            m_arrNodes[26] = new BaseClasses.CNode(27, 0.0f, 13.0f, 0.0f, 0);
            m_arrNodes[27] = new BaseClasses.CNode(28, 5.0f, 13.0f, 0.0f, 0);
            m_arrNodes[28] = new BaseClasses.CNode(29, 0.0f, 14.0f, 0.0f, 0);
            m_arrNodes[29] = new BaseClasses.CNode(30, 5.0f, 14.0f, 0.0f, 0);
            m_arrNodes[30] = new BaseClasses.CNode(31, 0.0f, 15.0f, 0.0f, 0);
            m_arrNodes[31] = new BaseClasses.CNode(32, 5.0f, 15.0f, 0.0f, 0);
            m_arrNodes[32] = new BaseClasses.CNode(33, 0.0f, 16.0f, 0.0f, 0);
            m_arrNodes[33] = new BaseClasses.CNode(34, 5.0f, 16.0f, 0.0f, 0);
            m_arrNodes[34] = new BaseClasses.CNode(35, 0.0f, 17.0f, 0.0f, 0);
            m_arrNodes[35] = new BaseClasses.CNode(36, 5.0f, 17.0f, 0.0f, 0);
            m_arrNodes[36] = new BaseClasses.CNode(37, 0.0f, 18.0f, 0.0f, 0);
            m_arrNodes[37] = new BaseClasses.CNode(38, 5.0f, 18.0f, 0.0f, 0);
            m_arrNodes[38] = new BaseClasses.CNode(39, 0.0f, 19.0f, 0.0f, 0);
            m_arrNodes[39] = new BaseClasses.CNode(40, 5.0f, 19.0f, 0.0f, 0);
            m_arrNodes[40] = new BaseClasses.CNode(41, 0.0f, 20.0f, 0.0f, 0);
            m_arrNodes[41] = new BaseClasses.CNode(42, 5.0f, 20.0f, 0.0f, 0);
            m_arrNodes[42] = new BaseClasses.CNode(43, 0.0f, 21.0f, 0.0f, 0);
            m_arrNodes[43] = new BaseClasses.CNode(44, 5.0f, 21.0f, 0.0f, 0);
            m_arrNodes[44] = new BaseClasses.CNode(45, 0.0f, 22.0f, 0.0f, 0);
            m_arrNodes[45] = new BaseClasses.CNode(46, 5.0f, 22.0f, 0.0f, 0);
            m_arrNodes[46] = new BaseClasses.CNode(47, 0.0f, 23.0f, 0.0f, 0);
            m_arrNodes[47] = new BaseClasses.CNode(48, 5.0f, 23.0f, 0.0f, 0);
            m_arrNodes[48] = new BaseClasses.CNode(49, 0.0f, 24.0f, 0.0f, 0);
            m_arrNodes[49] = new BaseClasses.CNode(50, 5.0f, 24.0f, 0.0f, 0);
            m_arrNodes[50] = new BaseClasses.CNode(51, 0.0f, 25.0f, 0.0f, 0);
            m_arrNodes[51] = new BaseClasses.CNode(52, 5.0f, 25.0f, 0.0f, 0);
            m_arrNodes[52] = new BaseClasses.CNode(53, 0.0f, 26.0f, 0.0f, 0);
            m_arrNodes[53] = new BaseClasses.CNode(54, 5.0f, 26.0f, 0.0f, 0);
            m_arrNodes[54] = new BaseClasses.CNode(55, 0.0f, 27.0f, 0.0f, 0);
            m_arrNodes[55] = new BaseClasses.CNode(56, 5.0f, 27.0f, 0.0f, 0);
            m_arrNodes[56] = new BaseClasses.CNode(57, 0.0f, 28.0f, 0.0f, 0);
            m_arrNodes[57] = new BaseClasses.CNode(58, 5.0f, 28.0f, 0.0f, 0);
            m_arrNodes[58] = new BaseClasses.CNode(59, 0.0f, 29.0f, 0.0f, 0);
            m_arrNodes[59] = new BaseClasses.CNode(60, 5.0f, 29.0f, 0.0f, 0);
            m_arrNodes[60] = new BaseClasses.CNode(61, 0.0f, 30.0f, 0.0f, 0);
            m_arrNodes[61] = new BaseClasses.CNode(62, 5.0f, 30.0f, 0.0f, 0);

            // Sort by ID
            //Array.Sort(m_arrNodes, new BaseClasses.CCompare_NodeID());

            // Members
            // Members List - Members Array

            m_arrMembers[0] = new BaseClasses.CMember(1, m_arrNodes[0], m_arrNodes[1], m_arrCrSc[0], 0);
            m_arrMembers[1] = new BaseClasses.CMember(2, m_arrNodes[2], m_arrNodes[3], m_arrCrSc[1], 0);
            m_arrMembers[2] = new BaseClasses.CMember(3, m_arrNodes[4], m_arrNodes[5], m_arrCrSc[2], 0);
            m_arrMembers[3] = new BaseClasses.CMember(4, m_arrNodes[6], m_arrNodes[7], m_arrCrSc[3], 0);
            m_arrMembers[4] = new BaseClasses.CMember(5, m_arrNodes[8], m_arrNodes[9], m_arrCrSc[4], 0);
            m_arrMembers[5] = new BaseClasses.CMember(6, m_arrNodes[10], m_arrNodes[11], m_arrCrSc[5], 0);
            m_arrMembers[6] = new BaseClasses.CMember(7, m_arrNodes[12], m_arrNodes[13], m_arrCrSc[6], 0);
            m_arrMembers[7] = new BaseClasses.CMember(8, m_arrNodes[14], m_arrNodes[15], m_arrCrSc[7], 0);
            m_arrMembers[8] = new BaseClasses.CMember(9, m_arrNodes[16], m_arrNodes[17], m_arrCrSc[8], 0);
            m_arrMembers[9] = new BaseClasses.CMember(10, m_arrNodes[18], m_arrNodes[19], m_arrCrSc[9], 0);
            m_arrMembers[10] = new BaseClasses.CMember(11, m_arrNodes[20], m_arrNodes[21], m_arrCrSc[10], 0);
            m_arrMembers[11] = new BaseClasses.CMember(12, m_arrNodes[22], m_arrNodes[23], m_arrCrSc[11], 0);
            m_arrMembers[12] = new BaseClasses.CMember(13, m_arrNodes[24], m_arrNodes[25], m_arrCrSc[12], 0);
            m_arrMembers[13] = new BaseClasses.CMember(14, m_arrNodes[26], m_arrNodes[27], m_arrCrSc[13], 0);
            m_arrMembers[14] = new BaseClasses.CMember(15, m_arrNodes[28], m_arrNodes[29], m_arrCrSc[14], 0);
            m_arrMembers[15] = new BaseClasses.CMember(16, m_arrNodes[30], m_arrNodes[31], m_arrCrSc[15], 0);
            m_arrMembers[16] = new BaseClasses.CMember(17, m_arrNodes[32], m_arrNodes[33], m_arrCrSc[16], 0);
            m_arrMembers[17] = new BaseClasses.CMember(18, m_arrNodes[34], m_arrNodes[35], m_arrCrSc[17], 0);
            m_arrMembers[18] = new BaseClasses.CMember(19, m_arrNodes[36], m_arrNodes[37], m_arrCrSc[18], 0);
            m_arrMembers[19] = new BaseClasses.CMember(20, m_arrNodes[38], m_arrNodes[39], m_arrCrSc[19], 0);
            m_arrMembers[20] = new BaseClasses.CMember(21, m_arrNodes[40], m_arrNodes[41], m_arrCrSc[20], 0);
            m_arrMembers[21] = new BaseClasses.CMember(22, m_arrNodes[42], m_arrNodes[43], m_arrCrSc[21], 0);
            m_arrMembers[22] = new BaseClasses.CMember(23, m_arrNodes[44], m_arrNodes[45], m_arrCrSc[22], 0);
            m_arrMembers[23] = new BaseClasses.CMember(24, m_arrNodes[46], m_arrNodes[47], m_arrCrSc[23], 0);
            m_arrMembers[24] = new BaseClasses.CMember(25, m_arrNodes[48], m_arrNodes[49], m_arrCrSc[24], 0);
            m_arrMembers[25] = new BaseClasses.CMember(26, m_arrNodes[50], m_arrNodes[51], m_arrCrSc[25], 0);
            m_arrMembers[26] = new BaseClasses.CMember(27, m_arrNodes[52], m_arrNodes[53], m_arrCrSc[26], 0);
            m_arrMembers[27] = new BaseClasses.CMember(28, m_arrNodes[54], m_arrNodes[55], m_arrCrSc[27], 0);
            m_arrMembers[28] = new BaseClasses.CMember(29, m_arrNodes[56], m_arrNodes[57], m_arrCrSc[28], 0);
            m_arrMembers[29] = new BaseClasses.CMember(30, m_arrNodes[58], m_arrNodes[59], m_arrCrSc[29], 0);
            m_arrMembers[30] = new BaseClasses.CMember(31, m_arrNodes[60], m_arrNodes[61], m_arrCrSc[30], 0);

            //Sort by ID
            //Array.Sort(m_arrMembers, new BaseClasses.CCompare_MemberID());

            // Nodal Supports - fill values
            // Set values
            bool[] bSupport1 = { true, false, true, false, true, false };
            bool[] bSupport2 = { false, false, true, false, true, false };
            bool[] bSupport3 = { true, false, false, false, false, false };

            // Create Support Objects
            // Pozn. Jednym z parametrov by malo byt pole ID uzlov v ktorych je zadefinovana tato podpora
            // objekt podpory bude len jeden a dotknute uzly budu vediet ze na ich podpora existuje a ake je konkretne ID jej nastaveni
            m_arrNSupports[0] = new BaseClasses.CNSupport(6, 1, m_arrNodes[0], bSupport1, 0);
            m_arrNSupports[1] = new BaseClasses.CNSupport(6, 2, m_arrNodes[2], bSupport2, 0);
            m_arrNSupports[2] = new BaseClasses.CNSupport(6, 3, m_arrNodes[5], bSupport3, 0);

            // Sort by ID
            Array.Sort(m_arrNSupports, new BaseClasses.CCompare_NSupportID());
        }
コード例 #4
0
ファイル: CExample_2D_11.cs プロジェクト: 777ondro/sw-en
        public CExample_2D_11()
        {
            m_eSLN = ESLN.e2DD_1D; // 1D members in 2D model
            m_eNDOF = (int)ENDOF.e2DEnv; // DOF in 2D
            m_eGCS = EGCS.eGCSLeftHanded; // Global coordinate system

            m_arrNodes = new BaseClasses.CNode[5];
            m_arrMembers = new CMember[4];
            m_arrMat = new CMat_00[1];
            m_arrCrSc = new CRSC.CCrSc[1];
            m_arrNSupports = new BaseClasses.CNSupport[3];
            m_arrNReleases = new BaseClasses.CNRelease[1];
            m_arrNLoads = new BaseClasses.CNLoad[1];
            m_arrMLoads = new BaseClasses.CMLoad[4];
            m_arrLoadCases = new BaseClasses.CLoadCase[1];
            m_arrLoadCombs = new BaseClasses.CLoadCombination[1];

            // Auxiliary
            // Load
            float fF1 = 45000f;   // Unit [N]
            float fF2 = 55000f;   // Unit [N]
            float fM = 60000000f;   // Unit [Nm]
            float fq = 22f;   // Unit [N/m]

            // Geometry
            float fa = 2.8f,
                  fb = 5.6f,
                  fc = 4.2f;     // Unit [m]

            // Materials
            // Materials List - Materials Array - Fill Data of Materials Array
            m_arrMat[0] = new CMat_00();

            m_arrMat[0].m_fE = 10000000f;          // Unit [Pa]
            m_arrMat[0].m_fNu = 0.3f;              // Unit [-]
            m_arrMat[0].m_fG = 4000000;            // Unit [Pa]

            // Cross-sections
            // CrSc List - CrSc Array - Fill Data of Cross-sections Array
            m_arrCrSc[0] = new CRSC.CCrSc_0_00();

            m_arrCrSc[0].FA_g = 0.12f;   // Unit [m^2]
            m_arrCrSc[0].FI_y = 0.0016f; // Unit [m^4]
            m_arrCrSc[0].FI_z = 0.0016f; // Unit [m^4]
            m_arrCrSc[0].m_Mat = m_arrMat[0]; // Set CrSc Material

            // Nodes
            // Nodes List - Nodes Array

            // Nodes
            // Node 1
            m_arrNodes[0] = new CNode();
            m_arrNodes[0].ID = 1;
            m_arrNodes[0].X = fa + fb;
            m_arrNodes[0].Y = fc;
            m_arrNodes[0].Z = 0f;

            // Node 2
            m_arrNodes[1] = new CNode();
            m_arrNodes[1].ID = 2;
            m_arrNodes[1].X = fb;
            m_arrNodes[1].Y = 0f;
            m_arrNodes[1].Z = 0f;

            // Node 3
            m_arrNodes[2] = new CNode();
            m_arrNodes[2].ID = 3;
            m_arrNodes[2].X = 0f;
            m_arrNodes[2].Y = 0f;
            m_arrNodes[2].Z = 0f;

            // Node 4
            m_arrNodes[3] = new CNode();
            m_arrNodes[3].ID = 4;
            m_arrNodes[3].X = 0f;
            m_arrNodes[3].Y = -fa;
            m_arrNodes[3].Z = 0f;

            // Node 5
            m_arrNodes[4] = new CNode();
            m_arrNodes[4].ID = 5;
            m_arrNodes[4].X = 0f;
            m_arrNodes[4].Y = fc;
            m_arrNodes[4].Z = 0f;

            // Sort by ID
            //Array.Sort(m_arrNodes, new BaseClasses.CCompare_NodeID());

            // Members
            // Members List - Members Array

            // Member 1 - 1-2
            m_arrMembers[0] = new CMember();
            m_arrMembers[0].ID = 1;
            m_arrMembers[0].NodeStart = m_arrNodes[0];
            m_arrMembers[0].NodeEnd = m_arrNodes[1];
            m_arrMembers[0].CrScStart = m_arrCrSc[0];

            // Member 2 - 2-3
            m_arrMembers[1] = new CMember();
            m_arrMembers[1].ID = 2;
            m_arrMembers[1].NodeStart = m_arrNodes[1];
            m_arrMembers[1].NodeEnd = m_arrNodes[2];
            m_arrMembers[1].CrScStart = m_arrCrSc[0];

            // Member 3 - 3-4
            m_arrMembers[2] = new CMember();
            m_arrMembers[2].ID = 3;
            m_arrMembers[2].NodeStart = m_arrNodes[2];
            m_arrMembers[2].NodeEnd = m_arrNodes[3];
            m_arrMembers[2].CrScStart = m_arrCrSc[0];

            // Member 4 - 3-5
            m_arrMembers[3] = new CMember();
            m_arrMembers[3].ID = 4;
            m_arrMembers[3].NodeStart = m_arrNodes[2];
            m_arrMembers[3].NodeEnd = m_arrNodes[4];
            m_arrMembers[3].CrScStart = m_arrCrSc[0];

            //Sort by ID
            //Array.Sort(m_arrMembers, new BaseClasses.CCompare_MemberID());

            // Nodal Supports - fill values
            // Support 1 - NodeIDs: 1,4
            m_arrNSupports[0] = new CNSupport(m_eNDOF);
            m_arrNSupports[0].ID = 1;
            m_arrNSupports[0].m_bRestrain[0] = true; // true - 1 restraint (infinity) / false - 0 - free (zero rigidity)
            m_arrNSupports[0].m_bRestrain[1] = true;
            m_arrNSupports[0].m_bRestrain[2] = true;
            m_arrNSupports[0].m_iNodeCollection = new int[2];
            m_arrNSupports[0].m_iNodeCollection[0] = 1;
            m_arrNSupports[0].m_iNodeCollection[1] = 4;

            // Support 2 - NodeIDs: 3
            m_arrNSupports[1] = new CNSupport(m_eNDOF);
            m_arrNSupports[1].ID = 2;
            m_arrNSupports[1].m_bRestrain[0] = true; // true - 1 restraint (infinity) / false - 0 - free (zero rigidity) - support in GCS X-axis
            m_arrNSupports[1].m_bRestrain[1] = false;
            m_arrNSupports[1].m_bRestrain[2] = false;
            m_arrNSupports[1].m_iNodeCollection = new int[1];
            m_arrNSupports[1].m_iNodeCollection[0] = 3;

            // Support 3 - NodeIDs: 5
            m_arrNSupports[2] = new CNSupport(m_eNDOF);
            m_arrNSupports[2].ID = 3;
            m_arrNSupports[2].m_bRestrain[0] = true; // true - 1 restraint (infinity) / false - 0 - free (zero rigidity) - support in GCS X and Y-axis
            m_arrNSupports[2].m_bRestrain[1] = true;
            m_arrNSupports[2].m_bRestrain[2] = false;
            m_arrNSupports[2].m_iNodeCollection = new int[1];
            m_arrNSupports[2].m_iNodeCollection[0] = 5;

            // Sort by ID
            Array.Sort(m_arrNSupports, new BaseClasses.CCompare_NSupportID());

            // Member releases
            bool?[] bRelTemp = new bool?[m_eNDOF];
            bRelTemp[0] = true; // true - 1 restraint (infinity rigidity) / false - 0 - free (zero rigidity) - support in LCS X and Y-axis
            bRelTemp[1] = true;
            bRelTemp[2] = false;

            CNRelease NRelease1 = new CNRelease(m_eNDOF, m_arrNodes[1], m_arrMembers[0], bRelTemp, 0);
            NRelease1.m_iNodeCollection = new int[1];
            NRelease1.m_iNodeCollection[0] = 2;
            NRelease1.m_iMembCollection = new int[2];
            NRelease1.m_iMembCollection[0] = 1;
            NRelease1.m_iMembCollection[1] = 2;
            m_arrNReleases[0] = NRelease1;
            m_arrMembers[0].CnRelease2 = m_arrNReleases[0]; // Release at end node
            m_arrMembers[1].CnRelease1 = m_arrNReleases[0]; // Release at start node

            // Nodal loads
            // Load 1 - NodeIDs: 2
            CNLoadSingle NLoad0 = new CNLoadSingle();
            NLoad0.INLoad_ID = 1;
            NLoad0.NLoadType = ENLoadType.eNLT_Fy;
            NLoad0.INodeCollection = new int[1];
            NLoad0.INodeCollection[0] = 2;
            NLoad0.Value = fF2; // Positive

            m_arrNLoads[0] = NLoad0;

            // Member loads
            // Load 1 and 2 - MemberIDs: 1

            float fAlpha_1 = (236.3099f / 360f) * 2 * MATH.MathF.fPI;  // Radians
            float fF1x = Math.Abs(fF1 * (float)Math.Cos(fAlpha_1));    // Force in local coordinate system of member + possitive orientation  in x-axis
            float fF1y = fF1 * (float)Math.Sin(fAlpha_1);              // Force in local coordinate system of member + negative orientation in y-axis

            CMLoad_11 MLoad_F1x = new CMLoad_11(fF1x, 0.5f * m_arrMembers[0].FLength);
            MLoad_F1x.ID = 1;
            MLoad_F1x.MLoadTypeDistr = EMLoadTypeDistr.eMLT_FS_H_12;
            MLoad_F1x.MLoadType = EMLoadType.eMLT_F;
            MLoad_F1x.EDirPPC = EMLoadDirPCC1.eMLD_PCC_FXX_MXX;
            MLoad_F1x.IMemberCollection = new int[1];
            MLoad_F1x.IMemberCollection[0] = 1;

            m_arrMLoads[0] = MLoad_F1x;

            CMLoad_11 MLoad_F1y = new CMLoad_11(fF1y, 0.5f * m_arrMembers[0].FLength);
            MLoad_F1y.ID = 2;
            MLoad_F1y.MLoadTypeDistr = EMLoadTypeDistr.eMLT_FS_H_12;
            MLoad_F1y.MLoadType = EMLoadType.eMLT_F;
            MLoad_F1y.EDirPPC = EMLoadDirPCC1.eMLD_PCC_FYU_MZV;
            MLoad_F1y.IMemberCollection = new int[1];
            MLoad_F1y.IMemberCollection[0] = 1;

            m_arrMLoads[1] = MLoad_F1y;

            // Load 3 - MemberIDs: 3
            CMLoad_21 MLoad_q = new CMLoad_21(fq);
            MLoad_q.ID = 3;
            MLoad_q.MLoadTypeDistr = EMLoadTypeDistr.eMLT_QUF_W_21;
            MLoad_q.MLoadType = EMLoadType.eMLT_F;
            MLoad_q.EDirPPC = EMLoadDirPCC1.eMLD_PCC_FYU_MZV;
            MLoad_q.IMemberCollection = new int[1];
            MLoad_q.IMemberCollection[0] = 2;

            m_arrMLoads[2] = MLoad_q;

            // Load 4 - MemberIDs: 4
            CMLoad_11 MLoad_M = new CMLoad_11(-fM, 0.5f * m_arrMembers[3].FLength);
            MLoad_M.ID = 4;
            MLoad_M.MLoadTypeDistr = EMLoadTypeDistr.eMLT_FS_H_12;
            MLoad_M.MLoadType = EMLoadType.eMLT_M;
            MLoad_M.EDirPPC = EMLoadDirPCC1.eMLD_PCC_FYU_MZV;
            MLoad_M.IMemberCollection = new int[1];
            MLoad_M.IMemberCollection[0] = 4;

            m_arrMLoads[3] = MLoad_M;

            // Load Cases
            // Load Case 1
            m_arrLoadCases[0] = new CLoadCase();
            m_arrLoadCases[0].ID = 1;

            // Load Combinations
            // Load Combination 1
            m_arrLoadCombs[0] = new CLoadCombination();
            m_arrLoadCombs[0].ID = 1;
        }