def _build_regular_mesh_dict(self,
                                 maxArea=1000,
                                 is_segments=True,
                                 save=False,
                                 geo=None):
        # make a normalised mesh
        # pretty regular size, with some segments thrown in.

        # don't pass in the geo ref.
        # it is applied in domain
        m = Mesh()  #geo_reference=geo)
        m.addUserVertex(0, 0)
        m.addUserVertex(1.0, 0)
        m.addUserVertex(0, 1.0)
        m.addUserVertex(1.0, 1.0)

        m.auto_segment(alpha=100)

        if is_segments:
            dict = {}
            dict['points'] = [[.10, .10], [.90, .20]]
            dict['segments'] = [[0, 1]]
            dict['segment_tags'] = ['wall1']
            m.addVertsSegs(dict)

            dict = {}
            dict['points'] = [[.10, .90], [.40, .20]]
            dict['segments'] = [[0, 1]]
            dict['segment_tags'] = ['wall2']
            m.addVertsSegs(dict)

            dict = {}
            dict['points'] = [[.20, .90], [.60, .60]]
            dict['segments'] = [[0, 1]]
            dict['segment_tags'] = ['wall3']
            m.addVertsSegs(dict)

            dict = {}
            dict['points'] = [[.60, .20], [.90, .90]]
            dict['segments'] = [[0, 1]]
            dict['segment_tags'] = ['wall4']
            m.addVertsSegs(dict)

        m.generateMesh(mode="Q", maxArea=maxArea, minAngle=20.0)
        if save is True:
            m.export_mesh_file("aaaa.tsh")
        mesh_dict = m.Mesh2IOTriangulationDict()

        #Add vert attribute info to the mesh
        mesh_dict['vertex_attributes'] = []
        # There has to be a better way of doing this..
        for vertex in mesh_dict['vertices']:
            mesh_dict['vertex_attributes'].append([10.0])

        return mesh_dict