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; } }
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; }