本文整理汇总了Python中underworld.rank函数的典型用法代码示例。如果您正苦于以下问题:Python rank函数的具体用法?Python rank怎么用?Python rank使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rank函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: show
def show(self, type="image"):
"""
Shows the generated image inline within an ipython notebook
Parameters
----------
type: str
Type of visualisation to display ('Image' or 'WebGL'). Default is 'Image'.
Returns
-------
Ipython HTML object (for type 'Image')
Ipython IFrame object (for type 'Webgl')
Note that if IPython is not installed, this method will return nothing.
"""
try:
from IPython.display import Image,HTML
self._generate_DB()
if uw.rank() == 0:
if type.lower() == "webgl":
return self._generate_HTML()
else:
return self._generate_image()
except ImportError:
pass
except RuntimeError, e:
print "Error creating image: "
print e
pass
示例2: max_global_auxiliary
def max_global_auxiliary(self):
"""
Returns the results of the auxiliary function evaluated at the
location corresponding to the primary function maximum. This
method considers results across all processes (ie, globally).
Notes
-----
This method must be called by collectively all processes.
Returns
-------
FunctionIO: value at global maximum.
"""
# first make sure that we have determined the rank with the max
self.max_global()
import underworld as uw
# if we are the rank with the max result, extract result
if uw.rank() == self.max_rank():
auxout = self.max_local_auxiliary()
else:
auxout = None
from mpi4py import MPI
comm = MPI.COMM_WORLD
# broadcast
data = comm.bcast(auxout, root=self.max_rank())
return data
示例3: show
def show(self, type="Image"):
"""
Shows the generated image inline within an ipython notebook.
Parameters
----------
type: str
Type of visualisation to display ('Image' or 'WebGL').
If IPython is installed, displays the result image or WebGL content inline
If IPython is not installed, this method will call the default image/web
output routines to save the result with a default filename in the current directory
"""
try:
if type.lower() != "webgl" and lavavu.is_notebook():
self._generate_DB()
if uw.rank() > 0:
return
from IPython.display import display,Image,HTML
#Return inline image result
filename = self._generate_image()
display(HTML("<img src='%s'>" % filename))
else:
#Fallback to export image or call viewer webgl export
self.save(filename=self.name, type=type)
except RuntimeError as e:
print("Error creating image: ", e)
pass
except:
raise
示例4: open_viewer
def open_viewer(self, args=[], background=True):
""" Open the external viewer.
"""
fname = self.db.filename
if not fname:
fname = os.path.join(tmpdir, "gluciferDB" + self.db._id + ".gldb")
self.save_database(fname)
# Already open?
if self._viewerProc and self._viewerProc.poll() == None:
return
global lavavu
if lavavu and uw.rank() == 0:
# Open viewer with local web server for interactive/iterative use
if background:
self._viewerProc = subprocess.Popen(
[self.db._lvbin, "-" + str(self.db.step), "-p9999", "-q90", fname] + args,
stdout=PIPE,
stdin=PIPE,
stderr=STDOUT,
)
from IPython.display import HTML
return HTML(
"""<a href='#' onclick='window.open("http://" + location.hostname + ":9999");'>Open Viewer Interface</a>"""
)
else:
lv = self.db.lvrun(db=fname, port=9999)
示例5: send_command
def send_command(self, cmd, retry=True):
"""
Run command on an open viewer instance.
Parameters
----------
cmd: str
Command to send to open viewer.
"""
if uw.rank() == 0:
self.open_viewer()
url = "http://localhost:9999/command=" + urllib2.quote(cmd)
try:
#print url
response = urllib2.urlopen(url).read()
#print response
except:
print("Send command '" + cmd + "' failed, no response")
if retry:
#Wait a few seconds so server has time to start then try again
print("... retrying in 1s ...")
time.sleep(1)
self.send_command(cmd, False)
else:
print("... failed, skipping ...")
pass
示例6: print_stats
def print_stats(self):
purple = "\033[0;35m"
endcol = "\033[00m"
boldpurple = "\033[1;35m"
if 0==uw.rank():
print boldpurple
print( " " )
print( "Pressure iterations: %3d" % (self._cself.stats.pressure_its) )
print( "Velocity iterations: %3d (presolve) " % (self._cself.stats.velocity_presolve_its) )
print( "Velocity iterations: %3d (pressure solve)" % (self._cself.stats.velocity_pressuresolve_its) )
print( "Velocity iterations: %3d (backsolve) " % (self._cself.stats.velocity_backsolve_its) )
print( "Velocity iterations: %3d (total solve) " % (self._cself.stats.velocity_total_its) )
print( " " )
print( "SCR RHS setup time: %.4e" %(self._cself.stats.velocity_presolve_setup_time) )
print( "SCR RHS solve time: %.4e" %(self._cself.stats.velocity_presolve_time) )
print( "Pressure setup time: %.4e" %(self._cself.stats.velocity_pressuresolve_setup_time) )
print( "Pressure solve time: %.4e" %(self._cself.stats.pressure_time) )
print( "Velocity setup time: %.4e (backsolve)" %(self._cself.stats.velocity_backsolve_setup_time) )
print( "Velocity solve time: %.4e (backsolve)" %(self._cself.stats.velocity_backsolve_time) )
print( "Total solve time : %.4e" %(self._cself.stats.total_time) )
print( " " )
print( "Velocity solution min/max: %.4e/%.4e" % (self._cself.stats.vmin,self._cself.stats.vmax) )
print( "Pressure solution min/max: %.4e/%.4e" % (self._cself.stats.pmin,self._cself.stats.pmax) )
print( " " )
print endcol
示例7: save_image
def save_image(self,filename):
"""
Saves the generated image to the provided filename.
Parameters
----------
filename :str
Filename to save file to. May include an absolute or relative path.
"""
if not isinstance(filename, str):
raise TypeError("Provided parameter 'filename' must be of type 'str'. ")
self._generate_DB()
if uw.rank() == 0:
self._generate_image(asfile=True)
generatedFilename=self._find_generated_file()
absfilename = os.path.abspath(filename)
# lets set the final extension to that of the glucifer generated file
splitabsfilename = os.path.splitext(absfilename)
splitgenfilename = os.path.splitext(generatedFilename)
if splitabsfilename[1].lower() in [".png", ".jpg", ".jpeg"]:
frontpart = splitabsfilename[0]
else:
frontpart = absfilename
finaloutFile = frontpart+splitgenfilename[1]
os.rename(generatedFilename,finaloutFile)
示例8: print_stats
def print_stats(self):
if 0==uw.rank():
print( "Pressure iterations: %d" % (self._cself.stats.pressure_its) )
print( "Velocity iterations: %d (backsolve)" % (self._cself.stats.velocity_backsolve_its) )
print( " " )
print( "Pressure solve time: %.4e" %(self._cself.stats.pressure_time) )
print( "Velocity solve time: %.4e (backsolve)" %(self._cself.stats.velocity_backsolve_time) )
print( "Total solve time : %.4e" %(self._cself.stats.total_time) )
print( " " )
print( "Velocity solution min/max: %.4e/%.4e" % (self._cself.stats.vmin,self._cself.stats.vmax) )
print( "Pressure solution min/max: %.4e/%.4e" % (self._cself.stats.pmin,self._cself.stats.pmax) )
示例9: _generate_image
def _generate_image(self, asfile=False):
if uw.rank() == 0:
#Render with viewer
args = [self._lvbin, self._db.path, "-" + str(self._db.timeStep), "-p0", "-z" + str(self.antialias)]
if asfile:
starting_directory = os.getcwd()
lavavu.initViewer(args + ["-I", ":"] + self._script)
else:
imagestr = lavavu.initViewer(args + ["-u", ":"] + self._script)
from IPython.display import Image,HTML
return HTML("<img src='%s'>" % imagestr)
示例10: viewer
def viewer(self):
""" Open the inline viewer.
"""
fname = self.db.filename
if not fname:
fname = os.path.join(tmpdir, "gluciferDB" + self.db._id + ".gldb")
self.save_database(fname)
global lavavu
if lavavu and uw.rank() == 0:
lavavu.viewer = self.db.lvrun(db=fname)
lavavu.control.viewer()
return lavavu.viewer
示例11: _generate_image
def _generate_image(self, filename="", size=(0, 0)):
global lavavu
if not lavavu or uw.rank() > 0:
return
try:
# Render with viewer
lv = self.db.lvrun(quality=self.quality, script=self._script)
imagestr = lv.image(filename, size[0], size[1])
# Return the generated filename
return imagestr
except RuntimeError, e:
print "LavaVu error: " + str(e)
pass
示例12: set_penalty
def set_penalty(self, penalty):
"""
By setting the penalty, the Augmented Lagrangian Method is used as the solve.
This method is not recommended for normal use as there is additional memory and cpu overhead.
This method can often help improve convergence issues for subduction-type problems with large viscosity
contrasts that are having trouble converging.
A penalty of roughly 0.1 of the maximum viscosity contrast is not a bad place to start as a guess. (check notes/paper)
"""
if isinstance(self.options.main.penalty, float) and self.options.main.penalty >= 0.0:
self.options.main.penalty=penalty
elif 0==uw.rank():
print( "Invalid penalty number chosen. Penalty must be a positive float." )
示例13: _generate_HTML
def _generate_HTML(self):
if uw.rank() == 0:
#Export encoded json string
jsonstr = lavavu.initViewer([self._lvbin, "-" + str(self._db.timeStep), "-U", "-p0", self._db.path, ":"] + self._script)
if not os.path.isdir("html"):
#Create link to web content directory
os.symlink(self._lvpath + 'html', 'html')
text_file = open("html/input.json", "w")
text_file.write(jsonstr);
text_file.close()
from IPython.display import IFrame
return IFrame("html/index.html#input.json", width=1000, height=800)
return ""
示例14: window
def window(self, *args, **kwargs):
""" Open an inline viewer.
This returns a new LavaVu instance to display the figure
and opens it as an interactive viewing window.
"""
#Open a new viewer instance and display window
if uw.rank() == 0:
v = self.viewer(new=True, *args, **kwargs)
#Ensure correct figure selected
v.figure(self.name)
#Show the inline window,
v.window()
return v
示例15: open_viewer
def open_viewer(self, args=[]):
""" Open the viewer.
"""
if uw.rank() == 0:
fname = os.path.join(tmpdir,"gluciferDB"+self._id+".gldb")
self.save_database(fname)
if self._viewerProc and self._viewerProc.poll() == None:
return
#Open viewer with local web server for interactive/iterative use
args = [self._lvbin, "-" + str(self._db.timeStep), "-L", "-p8080", "-q90", "-Q", fname] + args
self._viewerProc = subprocess.Popen(args, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
from IPython.display import HTML
return HTML('''<a href='#' onclick='window.open("http://" + location.hostname + ":8080");'>Open Viewer Interface</a>''')