示例#1
0
文件: CE_1D.cs 项目: 777ondro/sw-en
        public CE_1D(CFemNode NStart, CFemNode NEnd, EElemSuppType3D eSuppType, CCrSc ECrSc)
        {
            // Create and fill elements base data

            // Nodes
            NodeStart = NStart;
            NodeEnd   = NEnd;
            // Support type
            m_eSuppType3D = eSuppType;

            // Cross-section
            m_CrSc = ECrSc;

            FillBasic2();
        }
示例#2
0
文件: CE_1D.cs 项目: 777ondro/sw-en
        private void Get_iElemSuppType3D(FEM_CALC_BASE.Enums.EElemSuppType2D[] eArrSuppType)
        {
            // Is DOF rigid?
            // true - 1 - yes, it is
            // false - 0 - no, it isnt
            // true - 1 restraint (infinity rigidity) / false - 0 - free (zero rigidity)

            // Note: We can use 2D particular types or direct determination 3D (6 + 6 conditions of IsMemberDOFRigid)

            if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00
            )
            m_eSuppType3D = EElemSuppType3D.e3DEl_000000_000000;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00___ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00___ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00___
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl_000000_______;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl____00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl____00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl____00
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl________000000;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_0_ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_0_ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_0_
            )
            m_eSuppType3D = EElemSuppType3D.e3DEl_000000_000___;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__00
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl_000____000000;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00__0 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_0_
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl_000000_0_00_0;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl__0_00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__00
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl_0_00_0_000000;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl_0000___0000__;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00__0 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl_0000____000__;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl__0_00 &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl__000___0000__;
            else if
            (
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_ &&
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] == FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_
            )
                m_eSuppType3D = EElemSuppType3D.e3DEl_000____000___;
            else
            {
                // Not defined stiffeness matrix
                m_eSuppType3D = EElemSuppType3D.e3DEl______________;
            }
        }