for (key, values) in data.items(): field = frame.FieldOutput(key, SCALAR, ELEMENT, self.V.mesh, s=1) field.add_data(eb.elements, [(a, ) for a in values]) self.time += increment return self def alpha(self): fo = self.steps.values()[0].frames[0].field_outputs return (self.V.mesh.dimension, self.V.mesh.num_node, self.V.mesh.nodes, self.V.mesh.vertices, self.V.mesh.num_elem, self.V.mesh.elements, self.V.mesh.connect, self.V.mesh.element_blocks, fo) if __name__ == '__main__': from mesh import Mesh from element import Element mesh = Mesh(type='uniform', ox=0., lx=1., nx=10) mesh.ElementBlock(name='Block-1', elements='all') mesh.extend(1., 10, block='Block-2') V = FunctionSpace(mesh, { 'Block-1': Element(type='link2'), 'Block-2': Element(type='link2') }) u = Function(V)