Package PyFoam :: Package Paraview
[hide private]
[frames] | no frames]

Source Code for Package PyFoam.Paraview

  1  #  ICE Revision: $Id: __init__.py 12798 2013-03-04 10:41:53Z bgschaid $ 
  2  """ Paraview interaction 
  3   
  4  Classes that help to interact with a Python-enabled paraFoam/paraview 
  5  """ 
  6   
  7  hasSimpleModule=True 
  8  try: 
  9      from paraview import simple 
 10  except ImportError: 
 11      hasSimpleModule=False 
 12   
 13  # this import prevents python-source-tools that ude introspection from working 
 14  # because it prevents import into a normal python 
 15  from paraview import servermanager 
 16   
 17  from PyFoam.Error import warning 
 18  from PyFoam.RunDictionary.SolutionDirectory import SolutionDirectory 
 19   
 20  from math import sqrt 
 21  from os import path 
 22   
 23  from SourceBase import SourceBase 
 24   
 25  proxyManager=servermanager.ProxyManager() 
 26   
27 -def version():
28 """Tries to determine the paraview-version""" 29 try: 30 # old versions 31 return (proxyManager.GetVersionMajor(), 32 proxyManager.GetVersionMinor(), 33 proxyManager.GetVersionPatch()) 34 except AttributeError: 35 return (servermanager.vtkSMProxyManager.GetVersionMajor(), 36 servermanager.vtkSMProxyManager.GetVersionMinor(), 37 servermanager.vtkSMProxyManager.GetVersionPatch())
38
39 -def paraFoamReader():
40 """ Get the paraFoam reader. 41 Currently only works if there is only one reader""" 42 43 result=None 44 45 src=proxyManager.GetProxiesInGroup("sources") 46 47 try: 48 # test for OpenFOAM-Plugin 49 for s in src: 50 if type(src[s])==servermanager.sources.PV3FoamReader: 51 if result==None: 52 result=src[s] 53 else: 54 warning("Found a second paraFoam-reader:",s) 55 except AttributeError: 56 # test for native reader 57 for s in src: 58 if type(src[s])==servermanager.sources.OpenFOAMReader: 59 if result==None: 60 result=src[s] 61 else: 62 warning("Found a second paraFoam-reader:",s) 63 64 if result==None: 65 warning("No paraFoam-reader found") 66 67 return result
68
69 -def readerObject():
70 """Gets the only reader wrapped as a SourceBase-object""" 71 return SourceBase(paraFoamReader())
72
73 -def renderView():
74 """ Get the render view. 75 Currently just takes the first view""" 76 77 result=None 78 79 src=proxyManager.GetProxiesInGroup("views") 80 81 for s in src: 82 if result==None: 83 result=src[s] 84 else: 85 warning("Found a second render view:",s) 86 87 if result==None: 88 warning("No render view found") 89 90 return result
91
92 -def getBounds():
93 """Return the size of the object covered by the paraFoam-Reader""" 94 return readerObject().getBounds()
95
96 -def getCenter():
97 """Return the center of the object covered by the paraFoam-Reader""" 98 return readerObject().getCenter()
99
100 -def characteristicLength():
101 """The characteristic length of the geometry""" 102 return readerObject().characteristicLength()
103
104 -def viewTime():
105 """Time that is currently displayed""" 106 try: 107 # old school paraview 108 return renderView().ViewTime.GetData() 109 except AttributeError: 110 return renderView().ViewTime
111
112 -def caseDirectory():
113 """The directory in which the case is stored""" 114 try: 115 # old school paraview 116 fName=path.dirname(paraFoamReader().FileName.GetData()) 117 except AttributeError: 118 fName=path.dirname(paraFoamReader().FileName) 119 120 return SolutionDirectory( 121 fName, 122 archive=None, 123 paraviewLink=False)
124
125 -def timeDirectory():
126 return caseDirectory()[viewTime()]
127
128 -def transformsModule():
129 """Workaround to get to the transformations in Paraview 3.4""" 130 return servermanager.createModule("transforms")
131