| | |
| | | from . import trisurf |
| | | |
| | | |
| | | def analysis(*args): |
| | | """Decorator for adding the analysis functions to function lists""" |
| | | def analysis_decorator(analysis_function): |
| | | trisurf._analysis_list[analysis_name]=analysis_function |
| | | def wrapper(*args, **kwargs): |
| | | analysis_function(*args,**kwargs) |
| | | return wrapper |
| | | if len(args) == 1 and callable(args[0]): #no arguments |
| | | analysis_name=args[0].__name__ |
| | | return analysis_decorator(args[0]) |
| | | else: |
| | | analysis_name=args[0] |
| | | return analysis_decorator |
| | | |
| | | |
| | | @analysis |
| | | def demo(run, **kwargs): |
| | | host=kwargs.get('host', None) |
| | | print("Demo analysis") |
| | |
| | | print(kwargs.get('args',None)) |
| | | |
| | | |
| | | def plotrunningavginteractive(run, **kwargs): |
| | | # can be wrapped to specify scalar_field) |
| | | @analysis('plotrunningavginteractive') |
| | | def plotrunningavginteractive(run, scalar_field='vertices_idx', **kwargs): |
| | | import matplotlib.pyplot as plt |
| | | from trisurf import VTKRendering as vtk |
| | | import math |
| | | from multiprocessing import Process |
| | | table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable() |
| | | table=trisurf.Statistics(run.Dir.fullpath(),filename='poststat.csv').getTable() |
| | | def running_avg(col): |
| | | import numpy as np |
| | | avg=[] |
| | |
| | | avg.append(np.average(col[:-i])) |
| | | return avg |
| | | def spawned_viewer(n): |
| | | vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, n) |
| | | vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, timestep=n,scalar_field=scalar_field) |
| | | |
| | | fig=plt.figure(1) |
| | | ra=running_avg(table['hbar']) |
| | |
| | | # ------------------------------- |
| | | # these functions should be wrapped |
| | | # ------------------------------- |
| | | |
| | | def plotColumnFromPostProcess(run, filename='data_tspoststat.csv', column='hbar', **kwargs): |
| | | @analysis('plotColumnFromPostProcess') |
| | | def plotColumnFromPostProcess(run, filename='poststat.csv', column='hbar', **kwargs): |
| | | import matplotlib.pyplot as plt |
| | | |
| | | def smooth(y, box_pts): |