def normals():
        doc = """Face normals: calling this will average
        the computed normals so that there is one
        per face. This is especially relevant in
        3D, as there are up to 4 different normals
        for each face that will be different.

        To reshape the normals into a matrix and get the y component::

            NyX, NyY, NyZ = M.r(M.normals, 'F', 'Fy', 'M')
        """

        def fget(self):
            if(self._normals is None):
                self.area  # calling .area will create the face normals
            if self.dim == 2:
                return normalize2D(np.r_[self._normals[0], self._normals[1]])
            elif self.dim == 3:
                normal1 = 4/(self._normals[0][0] + self._normals[0][1] + self._normals[0][2] + self._normals[0][3])
                normal2 = (self._normals[1][0] + self._normals[1][1] + self._normals[1][2] + self._normals[1][3])/4
                normal3 = (self._normals[2][0] + self._normals[2][1] + self._normals[2][2] + self._normals[2][3])/4
                return normalize3D(np.r_[normal1, normal2, normal3])
        return locals()
dataset/ETHPy150Open simpeg/simpeg/SimPEG/Mesh/CurvilinearMesh.py/CurvilinearMesh.normals/swapped operands of `/`