def getFinalFiberDirection(odb, setName, sysC, tetMesh=False):
    if tetMesh:
        LD1 = getFinalLD_1(odb, setName, sysC)
        LD2 = getFinalLD_2(odb, setName, sysC)
        LD3 = getFinalLD_3(odb, setName, sysC)
    else:
        LD1 = odbTools.computeMeanOverElement(getFinalLD_1(odb, setName, sysC))
        LD2 = odbTools.computeMeanOverElement(getFinalLD_2(odb, setName, sysC))
        LD3 = odbTools.computeMeanOverElement(getFinalLD_3(odb, setName, sysC))
    nbNodes = len(LD3)
    fiberDirectionVector = np.empty((3, nbNodes))
    fiberDirectionVector[0, :] = LD1
    fiberDirectionVector[1, :] = LD2
    fiberDirectionVector[2, :] = LD3
    return fiberDirectionVector
def getFinalFiberDirection(odb,setName,sysC,tetMesh=False):
    if tetMesh:
        LD1 = getFinalLD_1(odb,setName,sysC)
        LD2 = getFinalLD_2(odb,setName,sysC)
        LD3 = getFinalLD_3(odb,setName,sysC)
    else:
        LD1 = odbTools.computeMeanOverElement(getFinalLD_1(odb,setName,sysC))
        LD2 = odbTools.computeMeanOverElement(getFinalLD_2(odb,setName,sysC))
        LD3 = odbTools.computeMeanOverElement(getFinalLD_3(odb,setName,sysC))
    nbNodes = len(LD3)
    fiberDirectionVector = np.empty((3,nbNodes))
    fiberDirectionVector[0,:] = LD1
    fiberDirectionVector[1,:] = LD2
    fiberDirectionVector[2,:] = LD3
    return fiberDirectionVector
def getFinalLogStrain(odb, setName, sysC, tetMesh=False):
    if tetMesh:
        E11 = ext.getFinalE_11(odb, setName, sysC)
        E22 = ext.getFinalE_22(odb, setName, sysC)
        E33 = ext.getFinalE_33(odb, setName, sysC)
        E12 = ext.getFinalE_12(odb, setName, sysC)
        E13 = ext.getFinalE_13(odb, setName, sysC)
        E23 = ext.getFinalE_23(odb, setName, sysC)
    else:
        E11 = odbTools.computeMeanOverElement(
            ext.getFinalE_11(odb, setName, sysC))
        E22 = odbTools.computeMeanOverElement(
            ext.getFinalE_22(odb, setName, sysC))
        E33 = odbTools.computeMeanOverElement(
            ext.getFinalE_33(odb, setName, sysC))
        E12 = odbTools.computeMeanOverElement(
            ext.getFinalE_12(odb, setName, sysC))
        E13 = odbTools.computeMeanOverElement(
            ext.getFinalE_13(odb, setName, sysC))
        E23 = odbTools.computeMeanOverElement(
            ext.getFinalE_23(odb, setName, sysC))
    nbNodes = len(E23)
    strainTensor = np.empty((3, 3, nbNodes))
    strainTensor[0, 0, ] = E11
    strainTensor[1, 1, ] = E22
    strainTensor[2, 2, ] = E33
    strainTensor[0, 1, ] = E12
    strainTensor[0, 2, ] = E13
    strainTensor[1, 2, ] = E23
    strainTensor[1, 0, ] = E12
    strainTensor[2, 0, ] = E13
    strainTensor[2, 1, ] = E23
    return strainTensor
def getFinalLogStrain(odb,setName,sysC,tetMesh=False):
    if tetMesh:
        E11 = ext.getFinalE_11(odb,setName,sysC)
        E22 = ext.getFinalE_22(odb,setName,sysC)
        E33 = ext.getFinalE_33(odb,setName,sysC)
        E12 = ext.getFinalE_12(odb,setName,sysC)
        E13 = ext.getFinalE_13(odb,setName,sysC)
        E23 = ext.getFinalE_23(odb,setName,sysC)
    else:
        E11 = odbTools.computeMeanOverElement(ext.getFinalE_11(odb,setName,sysC))
        E22 = odbTools.computeMeanOverElement(ext.getFinalE_22(odb,setName,sysC))
        E33 = odbTools.computeMeanOverElement(ext.getFinalE_33(odb,setName,sysC))
        E12 = odbTools.computeMeanOverElement(ext.getFinalE_12(odb,setName,sysC))
        E13 = odbTools.computeMeanOverElement(ext.getFinalE_13(odb,setName,sysC))
        E23 = odbTools.computeMeanOverElement(ext.getFinalE_23(odb,setName,sysC))
    nbNodes = len(E23)
    strainTensor = np.empty((3,3,nbNodes))
    strainTensor[0,0,] = E11
    strainTensor[1,1,] = E22
    strainTensor[2,2,] = E33
    strainTensor[0,1,] = E12
    strainTensor[0,2,] = E13
    strainTensor[1,2,] = E23
    strainTensor[1,0,] = E12
    strainTensor[2,0,] = E13
    strainTensor[2,1,] = E23
    return strainTensor