Reads in convergence data either local or remotely via paraview
In [3]:
%pylab inline
from paraview.simple import *
paraview.simple._DisableFirstRenderCameraReset()
import pylab as pl
import math
import numpy as np
from scipy.optimize import curve_fit
remote_data = True
case_names = [ 'C13_2013-04-04-half-m0p5_report.csv',
'C13_2013-04-04-half-m0p8_report.csv',
'C13_2013-04-04-half-m1p1_report.csv',
'C13_2013-04-04-half-m1p3_report.csv']
In [4]:
from paraview.vtk.dataset_adapter import numpyTovtkDataArray
from paraview.vtk.dataset_adapter import Table
if remote_data:
#print 'Waiting for remote paraview server connection'
ReverseConnect('11111')
def residual_plot(file):
l2norm = CSVReader(FileName=[file])
l2norm.HaveHeaders = 0
l2norm.MergeConsecutiveDelimiters = 1
l2norm.UseStringDelimiter = 0
l2norm.DetectNumericColumns = 1
l2norm.FieldDelimiterCharacters = ' '
l2norm.UpdatePipeline()
l2norm_client = servermanager.Fetch(l2norm)
table = Table(l2norm_client)
fig = figure(figsize=(25, 10),dpi=100, facecolor='w', edgecolor='k')
#names=('Field 0','Field 1','Field 2','Field 3','Field 4','Field 5')
data = table.RowData
names = data.keys()
for i in range(1,6):
ax = fig.add_subplot(2,4,i)
ax.set_yscale('log')
ax.grid(True)
ax.title(file)
xlabel(names[0])
ylabel(names[i], multialignment='center')
ax.plot(data[names[0]], data[names[i]], color='r', label=names[i])
for case in case_names:
residual_plot(case)
if remote_data:
#print 'Disconnecting from remote paraview server connection'
Disconnect()