예제 #1
0
파일: CE_1D.cs 프로젝트: 777ondro/sw-en
        private FEM_CALC_BASE.Enums.EElemSuppType2D[] Get_iElemSuppType()
        {
            FEM_CALC_BASE.Enums.EElemSuppType2D[] eArrSuppType = new FEM_CALC_BASE.Enums.EElemSuppType2D[3];

            // Is DOF rigid?
            // true - 1 - yes, it is
            // false - 0 - no, it isnt
            // true - 1 restraint (infinity rigidity) / false - 0 - free (zero rigidity)

            if (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // 000_000
                eArrSuppType[(int) EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int) EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int) EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // 000____
                //eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType.eEl_00__0; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00___; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00___; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // ____000
                //eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType.eEl__0_00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl____00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl____00; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
               )
            {
                // 000_00_
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_0_; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // 00__000
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__00; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // 00___0_
                //eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType.eEl_00__0; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00___; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // _0__00_
                //eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType.eEl__0_00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl____00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // 00__00_
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_0__0_; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // 00__0__
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in x-axis and rotation about x-axis in PCS
                //eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType.eEl_0____; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl______; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else if
                (
                IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUX) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeStart.m_ArrNodeDOF, NodeStart.m_iMemberCollection, Member.CnRelease1, e2D_DOF.eRZ) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUX) &&
                IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eUY) &&
                !IsMemberDOFRigid(NodeEnd.m_ArrNodeDOF, NodeEnd.m_iMemberCollection, Member.CnRelease2, e2D_DOF.eRZ)
                )
            {
                // 0___00_
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in x-axis and rotation about x-axis in PCS
                //eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType.eEl____0_; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl_00_00; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
            else
            {
                // _______  // Not supported member !!!  or other not implemented restraint conditions
                eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl______; // Displacement in x-axis and rotation about x-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl______; // Displacement in y-axis and rotation about z-axis in PCS
                eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = FEM_CALC_BASE.Enums.EElemSuppType2D.eEl______; // Displacement in z-axis and rotation about y-axis in PCS
                return eArrSuppType;
            }
        }
예제 #2
0
파일: CE_1D.cs 프로젝트: 777ondro/sw-en
        private FEM_CALC_BASE.Enums.EElemSuppType2D[] Get_iElemSuppType2D()
        {
            FEM_CALC_BASE.Enums.EElemSuppType2D[] eArrSuppType = new FEM_CALC_BASE.Enums.EElemSuppType2D[3];

            // Is DOF rigid?
            // true - 1 - yes, it is
            // false - 0 - no, it isnt
            // true - 1 restraint (infinity rigidity) / false - 0 - free (zero rigidity)

            eArrSuppType[(int)EM_PCS_DIR1.eUXRX] = Get_iElemSuppType2D_Part_UR(e3D_DOF.eUX, e3D_DOF.eRX); // Displacement in x-axis and rotation about x-axis in PCS
            eArrSuppType[(int)EM_PCS_DIR1.eUYRZ] = Get_iElemSuppType2D_Part_UR(e3D_DOF.eUY, e3D_DOF.eRZ); // Displacement in y-axis and rotation about z-axis in PCS
            eArrSuppType[(int)EM_PCS_DIR1.eUZRY] = Get_iElemSuppType2D_Part_UR(e3D_DOF.eUZ, e3D_DOF.eRY); // Displacement in z-axis and rotation about y-axis in PCS

            return eArrSuppType;
        }