You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							241 lines
						
					
					
						
							12 KiB
						
					
					
				
			
		
		
	
	
							241 lines
						
					
					
						
							12 KiB
						
					
					
				| <!-------- @HEADER
 | |
|  !
 | |
|  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
|  !
 | |
|  !  Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
 | |
|  !                  Copyright 2012 Sandia Corporation
 | |
|  !
 | |
|  ! Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
 | |
|  ! the U.S. Government retains certain rights in this software.
 | |
|  !
 | |
|  ! Redistribution and use in source and binary forms, with or without
 | |
|  ! modification, are permitted provided that the following conditions are
 | |
|  ! met:
 | |
|  !
 | |
|  ! 1. Redistributions of source code must retain the above copyright
 | |
|  ! notice, this list of conditions and the following disclaimer.
 | |
|  !
 | |
|  ! 2. Redistributions in binary form must reproduce the above copyright
 | |
|  ! notice, this list of conditions and the following disclaimer in the
 | |
|  ! documentation and/or other materials provided with the distribution.
 | |
|  !
 | |
|  ! 3. Neither the name of the Corporation nor the names of the
 | |
|  ! contributors may be used to endorse or promote products derived from
 | |
|  ! this software without specific prior written permission.
 | |
|  !
 | |
|  ! THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
 | |
|  ! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
|  ! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 | |
|  ! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
 | |
|  ! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 | |
|  ! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 | |
|  ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 | |
|  ! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 | |
|  ! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 | |
|  ! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | |
|  ! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | |
|  !
 | |
|  ! Questions? Contact Karen Devine	kddevin@sandia.gov
 | |
|  !                    Erik Boman	egboman@sandia.gov
 | |
|  !
 | |
|  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
|  !
 | |
|  ! @HEADER
 | |
| -------> 
 | |
| <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
 | |
| <html>
 | |
| <head>
 | |
|    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 | |
|    <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
 | |
|    <meta name="sandia.approved" content="SAND99-1376">
 | |
|    <meta name="author" content="lee ann fisk, lafisk@sandia.gov">
 | |
|    <title> Zoltan Developer's Guide: Visualization of Geometric Partitions</title>
 | |
| 
 | |
| </head>
 | |
| <body bgcolor="#FFFFFF">
 | |
| 
 | |
| <div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a>  |  <a href="dev_test_script.html">Next</a>  |  <a href="dev_driver.html">Previous</a></i></b></div>
 | |
| 
 | |
| 
 | |
| <h2>
 | |
| <a NAME="Visualization"></a>Appendix: Visualization of Geometric Partitions 
 | |
| </h2>
 | |
| 
 | |
| Graphical images of partitioned meshes can help you to understand the
 | |
| geometric partitioning algorithms of Zoltan and to debug new or existing
 | |
| algorithms.  The following sections describe methods for visualizing the
 | |
| partitions computed by the <a href="dev_driver.html">test drivers</a>.
 | |
| 
 | |
| <h3>
 | |
| <a NAME="Vis_2D"></a>2D problems with <I>gnuplot</I>
 | |
| </h3>
 | |
| 
 | |
| To view the result of a 2D decomposition performed by the 
 | |
| <a href="dev_driver.html">test driver</a>, 
 | |
| use the "gnuplot output" option of the test driver input file, 
 | |
| as described in <i><a href="zdrive.inp">zdrive.inp</a></i>.  The test driver
 | |
| will write a file that can be loaded into <a href="https://www.gnuplot.info/">gnuplot</a>.
 | |
| The result for the test mesh in directory <I>ch_hammond</I>, partitioned into four
 | |
| regions with RCB, is show below. The first picture is obtained from the input file 
 | |
| <i> zdrive.inp.gnuplot1</i> with <i>gnuplot output = 1</i>. The second
 | |
| picture is obtained from the input file <i> zdrive.inp.gnuplot2</i>
 | |
| with <i>gnuplot output = 2</i>.  Both pictures have been zoomed so
 | |
| that the xrange is [-0.2,1.2] and the yrange is [-0.3,0.35].
 | |
| <p>
 | |
| <img src="hammondPoints.png" alt="[gnuplot 2D view]" border=2 height=488 width=654>
 | |
| <p>
 | |
| <p>
 | |
| <img src="hammondMesh.png" alt="[gnuplot 2D view]" border=2 height=488 width=654>
 | |
| <p>
 | |
| 
 | |
| <h3>
 | |
| <a NAME="Vis_3D"></a>3D problems with <I>vtk_view</I>
 | |
| </h3>
 | |
| 3D visualization requires downloading and compiling the 
 | |
| <a href="https://www.vtk.org">Visualization Toolkit</a> (VTK) library (version
 | |
| 5.0 or later).  You can then use the Zoltan top level makefile to build
 | |
| the <I>vtk_view</I> application found in the <I>util</I> directory of
 | |
| Zoltan.  Build details can be found in the <I>Config.generic</I> file
 | |
| in <I>Utilities/Config</I>.  Note that you will have to download and
 | |
| build <a href = "https://www.cmake.org">CMake</a>, the makefile generator
 | |
| used by <a href="https://www.vtk.org">VTK</a>, before you can build VTK.
 | |
| <p>
 | |
| <I>vtk_view</I> is a parallel MPI program.  It does not need to be
 | |
| run with the same number of processes with which you ran <I>zdrive</I>.  You
 | |
| can choose the number of processes based on the size of the input mesh you
 | |
| will be visualizing, and the computational load of rendering it to an image
 | |
| at interactive rates.
 | |
| <p>
 | |
| If you run <I>vtk_view</I> in the directory in which you ran
 | |
| the test driver, the following will happen:
 | |
| <UL>
 | |
| <LI><I>vtk_view</I> will read <I><a href="zdrive.inp">zdrive.inp</a></I>, or another input parameter file
 | |
| if you specify a different file on the command line.
 | |
| <LI>It will read in the same input Chaco or Exodus II mesh that the test driver
 | |
| read in.
 | |
| <LI>It will read in the <i>file_name</i>.out.<i>p</i>.<i>n</i> files that the
 | |
| test driver wrote listing the part assigned to every global ID.
 | |
| <LI>It will open a window on your display, showing the input mesh.  For
 | |
| Chaco files, the mesh vertices will be colored by the part into which
 | |
| Zoltan placed them.  For Exodus II files, the mesh elements will be so colored.
 | |
| A scalar bar in the window indicates the mapping from colors to part
 | |
| numbers.  A caption describes the input file name, the decomposition
 | |
| method, the Zoltan parameter settings, and so on.  You can use your mouse
 | |
| to rotate the volume, pan and zoom in and out. 
 | |
| </UL>
 | |
| <p>
 | |
| The example below shows how <I>vtk_view</I> displays the mesh in the test directory
 | |
| <I>ch_brack2_3</I> after it has been partitioned with HSFC across 5 processes.
 | |
| <p>
 | |
| <img src="brack3d.png" alt="[vtk_view 3D view]" border=2 height=466 width=473>
 | |
| <p>
 | |
| If no test driver output files are found, <I>vtk_view</I> will 
 | |
| display the mesh without part IDs.
 | |
| <p>
 | |
| There are a few additional options that can be added to the test driver
 | |
| input file, that are specifically for <I>vtk_view</I>.
 | |
| <P><TABLE rules=cols,rows frame=box align=center cellpadding=5>
 | |
| <TR> <TD>zdrive count = <number></TD>
 | |
|      <TD>the number of <i>file_name</i>.out.<i>p</i>.<i>n</i> files, also the value of <i>p</i></TD>
 | |
| <TR> <TD>image height = <number></TD>
 | |
|      <TD>number of pixels in height of image (default is <I>300</I>)</TD>
 | |
| <TR> <TD>image width = <number></TD>
 | |
|      <TD>number of pixels in width of image (<I>300</I>)</TD>
 | |
| <TR> <TD>omit caption = <1 or 0></TD>
 | |
|      <TD>do not print default caption in window if "1" (<I>0</I>) </TD>
 | |
| <TR> <TD>omit scalar bar = <1 or 0></TD>
 | |
|      <TD>do not print scalar bar in window if "1" (<I>0</I>)</TD>
 | |
| <TR> <TD>add caption = <text of caption></TD>
 | |
|      <TD>display indicated text in the window (<I>no caption</I>)</TD>
 | |
| </TABLE>
 | |
| <p>
 | |
| The <I>zdrive count</I> option may be required if you have more than one
 | |
| set of test driver output files in the directory.  Otherwise, <I>vtk_view</I>
 | |
| will look for files of the form <i>file_name</i>.out.<i>p</i>.<i>n</i> for
 | |
| any value <i>p</i>.  Note that since the window may be resized with the
 | |
| mouse, you may not need <i>image height</i> and <i>image width</i>
 | |
| unless you must have a very specific window size.  Also note that if you
 | |
| ran the Fortan test driver <I>zfdrive</I>, you will need to rename the
 | |
| output files from <i>file_name</i>.<B>f</B>out.<i>p</i>.<i>n</i> to
 | |
| <i>file_name</i>.out.<i>p</i>.<i>n</i>.
 | |
| 
 | |
| <h3>
 | |
| <a NAME="Vis_offscreen"></a>Off-screen rendering with <I>vtk_write</I>
 | |
| </h3>
 | |
| In some situations it is not possible or not convenient to open a window 
 | |
| on a display.  In that case, you can compile <I>util/vtk_view.cpp</I> with the flag
 | |
| <B>OUTPUT_TO_FILE</B> and it will create a program that renders the image
 | |
| to a file instead of opening a window on a display.  (The Zoltan top level makefile
 | |
| does exactly this when you use the <I>vtk_write</I> target.)
 | |
| <p>
 | |
| Note that while
 | |
| <I>vtk_view</I> is built with OpenGL and <a href=https://www.vtk.org>VTK</a>, 
 | |
| <I>vtk_write</I> must be built
 | |
| with <a href = https://www.mesa3d.org>Mesa</a> GL and a version of the 
 | |
| <a href=https://www.vtk.org>VTK</a> libraries that you have compiled with
 | |
| special Mesa flags and with the Mesa header files.  This is because
 | |
| OpenGL implementations are not
 | |
| in general capable of off-screen rendering, and Mesa GL is.  The
 | |
| <I>Config.generic</I> file in <I>Utilities/Config</I> describes in
 | |
| detail how to build Mesa and then VTK for off-screen rendering.
 | |
| <p>
 | |
| <I>vtk_write</I> goes through the same steps that <I>vtk_view</I> does,
 | |
| except at the end it writes one or more image files instead of opening
 | |
| a window on your display.  The images begin with a camera focused on the
 | |
| mesh, pointing in the direction of the negative Z-axis.  The positive
 | |
| Y-axis is the "up" direction, and we use a right-handed coordinate
 | |
| system.  (So the X-axis is pointing to the right.)  The camera can
 | |
| revolve around the mesh in 1 degree increments.
 | |
| <p>
 | |
| The <I>zdrive count</I>, <I>image width</I>,  and <I>image height</I> 
 | |
| options listed above also apply to <I>vtk_write</I>.  In addition, you
 | |
| can use these options to govern the output images.
 | |
| 
 | |
| <P><TABLE rules=cols,rows frame=box align=center cellpadding=5>
 | |
| <TR> <TD>output format = <format name></TD>
 | |
|      <TD>choices are tiff, png, jpeg, ps and bmp (default is <I>tiff</I>)</TD>
 | |
| <TR> <TD>output name = <file name></TD>
 | |
|      <TD>base name of image file or files (<I>outfile</I>)</TD>
 | |
| <TR> <TD>output frame start = <number></TD>
 | |
|      <TD>first frame, between 0 and 360 (<I>0</I>)</TD>
 | |
| <TR> <TD>output frame stop = <number></TD>
 | |
|      <TD>last frame, between 0 and 360 (<I>0</I>)</TD>
 | |
| <TR> <TD>output frame stride = <number></TD>
 | |
|      <TD>the difference in degrees from one frame to the next (<I>1</I>)</TD>
 | |
| <TR> <TD>output view up = <x y z></TD>
 | |
|      <TD>the direction of "up" as camera points at mesh (<I>0 1 0</I>)</TD>
 | |
| </TABLE>
 | |
| 
 | |
| <h3>
 | |
| <a NAME="Vis_other"></a>Other file formats
 | |
| </h3>
 | |
| <I>vtk_view</I> was written to post-process <I>zdrive</I> runs, so it
 | |
| only reads Chaco or Exodus II/Nemesis meshes.
 | |
| If you are working with a different mesh-based file format, it
 | |
| is still possible that you could use <I>vtk_view</I> or <I>vtk_write</I>
 | |
| to view the parts assigned to your mesh by some application using the
 | |
| Zoltan library.  <a href=https://www.vtk.org>VTK</a>
 | |
| at this point in time has readers for many different file formats.  If VTK
 | |
| has a reader for your format, then
 | |
| modify the <I>read_mesh</I> function in <I>util/vtk_view.cpp</I> to use that
 | |
| reader.  
 | |
| <p>
 | |
| You can then hard-code <I>vtk_view</I> to read your file, or you can
 | |
| modify <I>read_cmd_file</I> in <I>driver/dr_input.c</I> to accept
 | |
| a specification of your file type in addition to Chaco and Nemesis.  If
 | |
| you do the latter you can create a <a href="zdrive.inp">zdrive-style
 | |
| input file</a> in which to specify your file name and other visualization
 | |
| parameters.
 | |
| <p>
 | |
| Finally, you need to create text files listing each global ID you supplied
 | |
| to Zoltan, followed by the part ID assigned by Zoltan, with only
 | |
| one global ID/part ID pair per line.  Name this
 | |
| file or files using the conventions used by the 
 | |
| <a href=dev_driver.html>test drivers</a>.
 | |
| 
 | |
| <hr WIDTH="100%">
 | |
| <br>[<a href="dev.html">Table of Contents</a>  |  <a href="dev_test_script.html">Next: 
 | |
| Using the Test Script</a>  |  <a href="dev_driver.html">Previous: 
 | |
| Using the Test Drivers</a>  |  <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
 | |
| </body>
 | |
| </html
 | |
| 
 |