def METHOD_NAME(self):
    if (self.Mesh == None):
        self.PrintError('Error: no Mesh.')
    if (self.Source == None):
        self.PrintError('Error: no Source surface.')
    if (self.FirstTimeStep == None or self.LastTimeStep == None or self.IntervalTimeStep == None):
        timesteps = self.Mesh.GetFieldData().GetArray("timesteps")
        if (timesteps == None):
            self.PrintError('Error: no Timesteps.')
        indexList = []
        i = 0
        while i < self.Mesh.GetFieldData().GetArray("timesteps").GetNumberOfTuples():
            indexList.append(int(timesteps.GetTuple(i)[0]))
            i+=1
        firstTimeStep = indexList[0]
    else:
        indexList = list(range(self.FirstTimeStep,self.LastTimeStep+1,self.IntervalTimeStep))
        firstTimeStep = self.FirstTimeStep
    indexColumn = vtk.vtkIntArray()
    indexColumn.SetName("index")
    timeColumn = vtk.vtkDoubleArray()
    timeColumn.SetName("time")
    time = 0
    timeStepsTable = vtk.vtkTable()
    timeStepsTable.AddColumn(indexColumn)
    timeStepsTable.AddColumn(timeColumn)
    for index in indexList:
        time+=(1./(len(indexList)-1))
        indexColumn.InsertNextValue(index)
        timeColumn.InsertNextValue(time)
    u = self.Source.GetPointData().GetArray("u")
    if u:
        v = self.Source.GetPointData().GetArray("v")
        w = self.Source.GetPointData().GetArray("w")
    else:
        u = self.Source.GetPointData().GetArray("u_"+str(firstTimeStep))
        v = self.Source.GetPointData().GetArray("v_"+str(firstTimeStep))
        w = self.Source.GetPointData().GetArray("w_"+str(firstTimeStep))
    speed = vtk.vtkFloatArray()
    speed.SetNumberOfComponents(u.GetNumberOfComponents())
    speed.SetNumberOfTuples(u.GetNumberOfTuples())
    speed.SetName('speed')
    i=0
    while i<u.GetNumberOfTuples():
        speed.InsertTuple1(i, vtk.vtkMath.Norm((u.GetTuple(i)[0],v.GetTuple(i)[0],w.GetTuple(i)[0])))
        i+=1
    self.Source.GetPointData().AddArray(speed)
    if self.Subdivide:
        sd = vtk.vtkLinearSubdivisionFilter()
        sd.SetInputData(self.Source)
        sd.SetNumberOfSubdivisions(1)
        sd.Update()
        self.Source = sd.GetOutput()
    self.Source.GetPointData().SetActiveScalars('speed')
    cp = vtk.vtkClipPolyData()
    cp.SetInputData(self.Source)
    cp.GenerateClipScalarsOff()
    cp.SetValue(self.MinSpeed)
    cp.Update()
    self.Source = cp.GetOutput()
    tracer = vtkvmtk.vtkvmtkStaticTemporalStreamTracer()
    tracer.SetInputData(self.Mesh)
    tracer.SetIntegratorTypeToRungeKutta45()
    tracer.SetTimeStepsTable(timeStepsTable)
    tracer.SetSeedTime(self.SeedTime)
    tracer.SetMaximumPropagation(self.MaximumPropagation)
    tracer.SetInitialIntegrationStep(self.InitialIntegrationStep)
    tracer.SetMinimumIntegrationStep(self.MinimumIntegrationStep)
    tracer.SetMaximumIntegrationStep(self.MaximumIntegrationStep)
    tracer.SetMaximumNumberOfSteps(self.MaximumNumberOfSteps)
    if self.Vorticity:
        tracer.SetComputeVorticity(1)
    if self.IntegrationDirectionBoth:
        tracer.SetIntegrationDirectionToBoth()
    tracer.SetSourceData(self.Source)
    tracer.SetVelocityScale(self.VelocityScale)
    if self.VectorComponents:
        tracer.UseVectorComponentsOn()
    tracer.SetComponent0Prefix(self.Component0Prefix)
    tracer.SetComponent1Prefix(self.Component1Prefix)
    tracer.SetComponent2Prefix(self.Component2Prefix)
    if self.Periodic:
        tracer.PeriodicOn()
    tracer.Update()
    self.Traces = tracer.GetOutput()