├── .github
└── workflows
│ ├── linkchecker.yml
│ └── spelling.yml
├── .typos.toml
├── LICENSE
├── README.md
├── Resources
├── .DS_Store
├── airfoil-animated.png
├── contours
│ ├── A.png
│ └── B.png
├── creatingAnAnnimation
│ ├── A.png
│ ├── B.png
│ ├── C.png
│ ├── D.png
│ └── E.png
├── cubeAndSphere.pvsm
└── threeStepsToNiceVisualization
│ ├── A.png
│ ├── B.png
│ ├── C.png
│ ├── D.png
│ └── E.png
├── Tutorials
├── FFMPEG-cheat-sheet.md
├── contours.md
├── creating-an-annimation.md
├── general-interactive-visualization.md
├── interactive-visualization-on-Phoenix.md
└── three-steps-to-nice-visualization.md
├── contributing.md
└── mlc_config.json
/.github/workflows/linkchecker.yml:
--------------------------------------------------------------------------------
1 | name: LinkChecker
2 |
3 | on: push
4 |
5 | jobs:
6 | markdown-link-check:
7 | runs-on: ubuntu-latest
8 | steps:
9 | - uses: actions/checkout@master
10 | - uses: gaurav-nelson/github-action-markdown-link-check@v1
11 | with:
12 | config-file: 'mlc_config.json'
13 |
--------------------------------------------------------------------------------
/.github/workflows/spelling.yml:
--------------------------------------------------------------------------------
1 | name: Spell Check
2 | on:
3 | push:
4 | workflow_dispatch:
5 |
6 | jobs:
7 | run:
8 | name: Spell Check
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout
12 | uses: actions/checkout@v3
13 |
14 | - name: Spell Check
15 | uses: crate-ci/typos@master
16 |
--------------------------------------------------------------------------------
/.typos.toml:
--------------------------------------------------------------------------------
1 | [default]
2 | extend-ignore-identifiers-re = [
3 | "AttributeID.*Supress.*",
4 | ]
5 |
6 | [default.extend-identifiers]
7 | AttributeIDSupressMenu = "AttributeIDSupressMenu"
8 |
9 | [default.extend-words]
10 | Daa = "Daa"
11 |
12 | [files]
13 | extend-exclude = ["Resources/"]
14 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Scientific Visualization
2 |
3 | This repository contains a collection of useful Paraview skills for scientific visualization that I've developed and condensed into one place.
4 | I've used the default MacOS keyboard shortcuts in this collection for brevity.
5 | If you are using a different operating system, the corresponding shortcuts can easily be found via a quick Google search.
6 | I've also assumed that anyone using this collection has the most recent version of Paraview.
7 | Here's an example visualization of inviscid flow over an airfoil from a simulation run with 2.25 billion grid cells.
8 |
9 |
10 | 
11 | Example Visualization (full video)
12 |
13 |
14 | ## Table of Contents
15 |
16 | ### General Visualization
17 |
18 | [Three Steps to Nicer Visualization](Tutorials/three-steps-to-nice-visualization.md)
19 |
20 | [Creating an Animation](Tutorials/creating-an-annimation.md)
21 |
22 | [FFMPEG Cheat Sheet](Tutorials/FFMPEG-cheat-sheet.md)
23 |
24 | ### Remote Visualization
25 |
26 | [Interactive Visualization on Phoenix](Tutorials/interactive-visualization-on-Phoenix.md)
27 |
28 | [General Interactive Visualization](Tutorials/general-interactive-visualization.md)
29 |
30 | ### Paraview Filters
31 |
32 | [Contours/Isosurfaces](Tutorials/contours.md)
33 |
34 | ### Volume Rendering
35 |
36 | Coming soon!
37 |
38 | ### Ray Tracing
39 |
40 | Coming soon!
41 |
42 | Have something to contribute? See the contributing guidelines [here.](contributing.md)
43 |
44 | ## Additional Resources
45 | Additional resources can be found in Paraview's documentation [Here](https://docs.paraview.org/en/latest/)
46 |
--------------------------------------------------------------------------------
/Resources/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/.DS_Store
--------------------------------------------------------------------------------
/Resources/airfoil-animated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/airfoil-animated.png
--------------------------------------------------------------------------------
/Resources/contours/A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/contours/A.png
--------------------------------------------------------------------------------
/Resources/contours/B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/contours/B.png
--------------------------------------------------------------------------------
/Resources/creatingAnAnnimation/A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/creatingAnAnnimation/A.png
--------------------------------------------------------------------------------
/Resources/creatingAnAnnimation/B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/creatingAnAnnimation/B.png
--------------------------------------------------------------------------------
/Resources/creatingAnAnnimation/C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/creatingAnAnnimation/C.png
--------------------------------------------------------------------------------
/Resources/creatingAnAnnimation/D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/creatingAnAnnimation/D.png
--------------------------------------------------------------------------------
/Resources/creatingAnAnnimation/E.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/creatingAnAnnimation/E.png
--------------------------------------------------------------------------------
/Resources/threeStepsToNiceVisualization/A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/threeStepsToNiceVisualization/A.png
--------------------------------------------------------------------------------
/Resources/threeStepsToNiceVisualization/B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/threeStepsToNiceVisualization/B.png
--------------------------------------------------------------------------------
/Resources/threeStepsToNiceVisualization/C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/threeStepsToNiceVisualization/C.png
--------------------------------------------------------------------------------
/Resources/threeStepsToNiceVisualization/D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/threeStepsToNiceVisualization/D.png
--------------------------------------------------------------------------------
/Resources/threeStepsToNiceVisualization/E.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comp-physics/Scientific-Visualization/b98ee9484258078c072648a86d1812b3cb6c5b32/Resources/threeStepsToNiceVisualization/E.png
--------------------------------------------------------------------------------
/Tutorials/FFMPEG-cheat-sheet.md:
--------------------------------------------------------------------------------
1 | # FFMPEG Cheat Sheet
2 | This file details a set of common things you may want to do with FFMPEG.
3 |
4 | ## Create a video from a sequence of PNG images
5 | The following command can be used to make a .mp4 video from a series of images padded with zeros (`pic.00001.png`, `pic.0002.png`, ...).
6 |
7 | ```
8 | ffmpeg -r 30 -f image2 -i pic.%04d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4
9 | ```
10 |
11 | The inputs are:
12 | * `-r` is the framerate
13 | * `-crf` is the quality, lower means better quality
14 | * `-S` (optional) video resolution in pixels
15 | * `-pix_fmt` specifies the pixel format
16 |
17 | ## Playing one video after another
18 | The following command can be used to play a sequence of videos with the same width and height.
19 | ```
20 | ffmpeg -f concat -i videos.txt -c copy joinedVideo.mp4
21 | ```
22 | The file `videos.txt` contains an ordered list of videos with the following syntax:
23 | ```
24 | file '/directory/Video1.mp4'
25 | file '/directory/Video2.mp4'
26 | ```
27 | ## Stacking videos
28 | The following command can be used to vertically stack two videos with the same width.
29 | ```
30 | ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex vstack out.mp4
31 | ```
32 | The following command can be used to horizontally stack two videos with the same height.
33 | ```
34 | ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex hstack out.mp4
35 | ```
36 | `N` videos can be stacked using the following.
37 | ```
38 | ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex hstack=N out.mp4
39 | ```
40 | A 2x2 array of compatible videos can be created using
41 | ```
42 | ffmpeg -i input0 -i input1 -i input2 -i input3 -filter_complex "[0:v][1:v][2:v][3:v]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0[v]" -map "[v]" output.mp4
43 | ```
44 |
45 | ## Dealing with an odd number of pixels
46 | Adding `-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"` to your FFMPEG command as shown below allows you to create a video from images that are not an even number of pixels in height and/or width.
47 | ```
48 | ffmpeg -r 30 -f image2 -i pic.%04d.png -vcodec libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -crf 25 -pix_fmt yuv420p test.mp4
49 | ```
50 |
51 | ## Adding an .mp3 to a video
52 | The following command can be used to add sound to video.
53 | ```
54 | ffmpeg -r 30 -f image2 -i pic.%04d.png -i MP3FILE.mp3 -vcodec libx264 -b 4M -vpre normal -acodec copy test.mp4
55 | ```
56 | The inputs are:
57 | * `-i MP3FILE.mp3` is the name of the audio file
58 | * `-acodec copy` copies the audio from the input to the output stream
59 |
60 | ## Converting a video to .mp4
61 | The following command can be used to convert a video to .mp4.
62 | ```
63 | ffmpeg -i INPUT.avi -vcodec libx264 -crf 25 OUTPUT.mp4
64 | ```
65 |
66 | ## Cropping a video
67 | The following command can be used to crop a video
68 | ```
69 | ffmpeg -i input.mp4 -vf "crop=w:h:x:y" output.mp4
70 | ```
71 | where the inputs are
72 | * `-vf` indicates the usage of a video filter
73 | * `crop` is the name of the filter
74 | * `w:h` is the width and height of the output video<
75 | * `x:y` is the coordinate from which the video will be
76 |
--------------------------------------------------------------------------------
/Tutorials/contours.md:
--------------------------------------------------------------------------------
1 | # Contours
2 | Contours (and isosurfaces) can be very useful in scientific visualization.
3 | To create contours in Paraview, you must first have point data.
4 | The `Cell Data to Point Data` filter must be applied if your data is cell data.
5 | After this, a `Contour` filter can be applied.
6 | The basic properties of a contour figure are shown below.
7 |
8 |
9 |
10 | - Contour by is the variable contours will be taken over
11 | - Isosurfaces is the list of values for which contours will be made.
12 | You can add and remove contour values using the plus and minus buttons.
13 | Also, note that the value range can help select contour values.
14 |
15 | ## Useful Settings
16 |
17 | - Opacity: Make the contours slightly see-through.
18 | This can be useful if you want to show the contours of one variable over a 2D image of another variable.
19 |
20 | - Line Width: Paraview's default linewidth of 1 pixel often needs to be thicker.
21 | Increasing this makes your lines easier to see.
22 |
23 | - Render Lines as Tubes: This renders lines as tubes and can make contours look better in 3D.
24 |
25 | ## Example
26 | The following is an image of contours of velocity magnitude for a jet impinging a solid wall.
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Tutorials/creating-an-annimation.md:
--------------------------------------------------------------------------------
1 | # Creating an Animation
2 |
3 | Animations (videos) are a nice way to show the evolution of transient data over time.
4 | This tutorial assumes that you have already opened a dataset that has multiple snapshots in time, selected a color bar for your data, and performed the steps in [Three Steps to Nicer Visualization](three-steps-to-nice-visualization.md).
5 |
6 | ## Step 1 - Frame your data
7 |
8 | If your data doesn't fill the render view in Paraview, it won't fill the video frame in your video.
9 | The easiest way to make your data fill the frame is to click the Reset Camera Closest or Zoom Closest to Data buttons.
10 |
11 | 
12 |
13 | For the data used in this tutorial, the resulting render view is shown below.
14 |
15 | 
16 |
17 | To fill the render view horizontally, split the viewing area in half by clicking Split Horizontal Axis and drag the separation line to the desired position.
18 | If your data fills the render view horizontally but not vertically, you can use Split Vertical Axis instead.
19 | These buttons are to the top and right of the render view as shown below.
20 |
21 | 
22 |
23 | Once you have your data framed in a way you like, move on to Step 2 to save screenshots of each snapshot in your data.
24 | An example of well-framed data is shown below.
25 |
26 | 
27 |
28 | ## Step 2 - Export Snapshots
29 |
30 | Once your data is framed, you can save screenshots by clicking `file -> Save Annimation...`.
31 | Once you give a filename, the following popup appears with a few useful options.
32 |
33 |
34 |
35 | The following options let you control how Paraview saves snapshots:
36 |
37 | - Image Resolution: As the name implies, this is the resolution of the snapshots.
38 | To preserve your well-framed data, the ratio of pixels in each direction must stay the same.
39 | It is also helpful to use an even number of pixels in both directions.
40 | This makes post-processing the images created by Paraview easier.
41 |
42 | - Override Color Palette: This gives you a few options for background colors.
43 |
44 | - Transparent Background: This creates images with transparent backgrounds.
45 | For still images, this feature works as expected.
46 | However, FFMPEG will add a background to transparent images when they are formed into a video.
47 | If you need a video with a transparent background, the easiest thing to do is set the background color in Paraview to match whatever the image will be placed on.
48 |
49 | The rest of the options can generally be left unchanged.
50 | Once you have a directory with a bunch of pictures in it, proceed to step 3.
51 |
52 | ## Step 3 - Merge Snapshots into a Video
53 |
54 | Navigate to the directory in which you saved the snapshots.
55 | You'll see all of the images with numbers appended to them indicating their frame number.
56 | For example, (`pic.00001.png`, `pic.00002.png`, ...)
57 |
58 | ```ffmpeg -r 30 -f image2 -i .%04d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4```
59 |
60 | The inputs are:
61 |
62 | - `-r` is the framerate
63 |
64 | - `crf` is the quality, lower means better quality
65 |
66 | - `-S` (optional) video resolution in pixels
67 |
68 | - `-pix_format` specifies the pixel format
69 |
70 | For additional details on the basics of FFMPEG, see the [FFMPEG Cheat Sheet](FFMPEG-cheat-sheet.md).
71 |
--------------------------------------------------------------------------------
/Tutorials/general-interactive-visualization.md:
--------------------------------------------------------------------------------
1 | # General Interactive Visualization
2 | This tutorial outlines how to perform interactive remove visualization on a general cluster.
3 | Using remote visualization allows for the visualization of much larger simulations interactively, without the need for Paraview's batch mode
4 |
5 | ## Step 1 - Setting up your Environment
6 | Begin by downloading the .zip file here (https://gatech.box.com/s/1diud4lgequvuie5fg2ac6hcvoelndu5).
7 | This file contains two things
8 |
9 | - A bash script to automate the job submission process and provide instructions for remote connection.
10 |
11 | - A prebuilt Paraview 5.11 binary
12 |
13 | Place the file `remoteParview.zip` in you scratch direction on Phoenix and unzip is using `unzip remoteParaview.zip`.
14 | Enter the new directory `remoteParaview` and run `tar -xvf ParaView-5.11.0-egl-MPI-Linux-Python3.9-x86_64.tar.gz` to decompress the compiled binary.
15 | Now that you have the binary on Phoenix, you'll need to download Paraview 5.11 on your local machine.
16 | Paraview binaries can be downloaded here (https://www.paraview.org/download/).
17 | Make sure to select `v5.11` from the version drop down bar and install a `5.11.0` version of Paraview.
18 |
19 | ## Step 2 - Customizing the Bash Script
20 | While all of the options for the bash script could be passed as command line arguments, it saves time to hard code certain options that are unlikely to change.
21 | The following is a list of required and suggested updates to make to `remote-paraview-server`.
22 |
23 | - (Optional) Update line 4 to customize the job name that will show up in the scheduler
24 |
25 | - (Required) Update line 6 to point towards the location of you Paraview bin directory
26 |
27 | - (Required) Update line 50 to reflect the number of GPUs per node you'll use
28 |
29 | - (Optional) Update line 51 to reflect the default account you'll use to run Paraview jobs
30 |
31 | - (Optional) Update line 52 to reflect the default wall time requested for your job
32 |
33 | - (Required) Update lines 128 through 140 to match the job scheduler on the machine you are using.
34 | Information on how to do this can be found in the documentation for the machine you're using.
35 |
36 | ## Step 3 - Running remote-paraview-server
37 | Before running `remote-paraview-server` for the first time, you'll need to update its permissions by running `chmod u+x remote-paraview-server` in your command line.
38 | Once this has been done, you can run `./remote-paraview-server` with the following options:
39 |
40 | - `--account` specifies the charge account to use for the job.
41 | If you updated line 51 of `remote-paraview-server` to reflect a default account, this option is optional, otherwise it is required.
42 |
43 | - `--nodes` specifies the number of nodes to request (default 1)
44 |
45 | - `--mem` specifies the memory per node to request (default is to request all memory)
46 |
47 | - `--gres` specifies the GPU resources to request.
48 | These instructions have only been verified to work with `--gres gpu:V100:2`.
49 |
50 | - `--time` specifies the time limit for your job.
51 | This option is optional and defaults to whatever is set on line 52 of `remote-paraview-server`.
52 |
53 | Once you run `./remote-paraview-server `, it'll take a bit to start up.
54 | In the meantime, you'll see the below message:
55 |
56 | ```
57 | Submitted batch job
58 | Waiting for ParaView server to start. This may take several minutes ...
59 | ```
60 |
61 | When it's done initializing, you should see a dialogue with some recommended next steps numbered 1-4.
62 | Below is a slightly altered version of that dialogue:
63 |
64 |
65 | 1) Create the appropriate port forwarding for your local ParaView session to connect with.
66 | * On your local machine, run the following from a terminal where `nodeIdentifier` is the remote node running the ParaView server process (given in the output of the batch script) and `SystemIdentifier` is the name of the PACE system (however this is configured with your `.ssh/config`).
67 | * This terminal session must not be killed for the duration of your ParaView session as it maintains the port forwarding.
68 | * `ssh -L 8722::53723 `
69 |
70 | 2) Once you have `Paraview5.11.0` open on your machine, select `file -> Connect..` to open the remote connection dialogue box.
71 | * If you've already set up the pace connection, simply double-click the existing configuration.
72 | * If you have not yet set up the pace connection, click `Add Server`.
73 | This will bring up a new dialogue box where you can specify a configuration name and set the `Port` to 8722.
74 | Once this is done, click `configure` and then `save` on the next dialogue box.
75 |
--------------------------------------------------------------------------------
/Tutorials/interactive-visualization-on-Phoenix.md:
--------------------------------------------------------------------------------
1 | # Interactive Visualization on Phoenix
2 | This tutorial outlines how to perform interactive remove visualization on GATechs Phoenix cluster.
3 | Using remote visualization allows for the visualization of much larger simulations interactively, without the need for Paraview's batch mode
4 |
5 | > [!IMPORTANT]
6 | > Note: Do not use VSCode terminals for the following steps. Use a bare, 'system' terminal instead as some connection oddities have been seen when using remote VSCode terminals for visualization setup.
7 |
8 | ## Step 1 - Setting up your Environment
9 | Begin by downloading the .zip file here (https://gatech.box.com/s/1diud4lgequvuie5fg2ac6hcvoelndu5).
10 | This file contains two things
11 |
12 | - A bash script to automate the job submission process and provide instructions for remote connection.
13 |
14 | - A prebuilt Paraview 5.11 binary
15 |
16 | Place the file `paceParview.zip` in you scratch direction on Phoenix and unzip is using `unzip paceParaview.zip`.
17 | Enter the new directory `paceParaview` and run `tar -xvf ParaView-5.11.0-egl-MPI-Linux-Python3.9-x86_64.tar.gz` to decompress the compiled binary.
18 | Now that you have the binary on Phoenix, you'll need to download Paraview 5.11 on your local machine.
19 | Paraview binaries can be downloaded here (https://www.paraview.org/download/).
20 | Make sure to select `v5.11` from the version drop down bar and install a `5.11.0` version of Paraview.
21 |
22 | ## Step 2 - Customizing the Bash Script
23 | While all of the options for the bash script could be passed as command line arguments, it saves time to hard code certain options that are unlikely to change.
24 | The following is a list of required and suggested updates to make to `pace-paraview-server`.
25 |
26 | - (Optional) Update line 4 to customize the job name that will show up in the scheduler
27 |
28 | - (Required) Update line 6 to point towards the location of you Paraview bin directory
29 |
30 | - (Optional) Update line 51 to reflect the default account you'll use to run Paraview jobs
31 |
32 | - (Optional) Update line 52 to reflect the default wall time requested for your job
33 |
34 | ## Step 3 - Running pace-paraview-server
35 | Before running `pace-paraview-server` for the first time, you'll need to update its permissions by running `chmod u+x pace-paraview-server` in your command line.
36 | Once this has been done, you can run `./pace-paraview-server` with the following options:
37 |
38 | - `--account` specifies the charge account to use for the job.
39 | If you updated line 51 of `pace-paraview-server` to reflect a default account, this option is optional, otherwise it is required.
40 |
41 | - `--nodes` specifies the number of nodes to request (default 1)
42 |
43 | - `--mem` specifies the memory per node to request (default is to request all memory)
44 |
45 | - `--gres` specifies the GPU resources to request.
46 | These instructions have only been verified to work with `--gres gpu:V100:2`.
47 |
48 | - `--time` specifies the time limit for your job.
49 | This option is optional and defaults to whatever is set on line 52 of `pace-paraview-server`.
50 |
51 | Once you run `./pace-paraview-server `, it'll take a bit to start up.
52 | In the meantime, you'll see the below message:
53 |
54 | ```
55 | Submitted batch job
56 | Waiting for ParaView server to start. This may take several minutes ...
57 | ```
58 |
59 | When it's done initializing, you should see a dialogue with some recommended next steps numbered 1-4.
60 | Below is a slightly altered version of that dialogue:
61 |
62 |
63 | 1) Create the appropriate port forwarding for your local ParaView session to connect with.
64 | * On your local machine, run the following from a terminal where `nodeIdentifier` is the remote node running the ParaView server process (given in the output of the batch script) and `paceSystemIdentifier` is the name of the PACE system (however this is configured with your `.ssh/config`).
65 | * This terminal session must not be killed for the duration of your ParaView session as it maintains the port forwarding.
66 | * `ssh -L 8722::53723 `
67 |
68 | 2) Once you have `Paraview5.11.0` open on your machine, select `file -> Connect..` to open the remote connection dialogue box.
69 | * If you've already set up the pace connection, simply double-click the existing configuration.
70 | * If you have not yet set up the pace connection, click `Add Server`.
71 | This will bring up a new dialogue box where you can specify a configuration name and set the `Port` to 8722.
72 | Once this is done, click `configure` and then `save` on the next dialogue box.
73 |
--------------------------------------------------------------------------------
/Tutorials/three-steps-to-nice-visualization.md:
--------------------------------------------------------------------------------
1 | # Three Steps to Nicer Visualization
2 |
3 | Advanced features like opacity mapping, ray tracing, and volume rendering can all be used to make nice renderings of scientific data.
4 | However, there are three simple things you can do to turn the default settings in Paraview into visualizations that are nice enough to share with the outside world.
5 | This short set of tips will show you how to do this and get you started on making nice visualizations of scientific data.
6 | To follow along with this tutorial, start by opening the Paraview state file `Resources/cubeAndSphere.pvsm` in the most recent version of Paraview.
7 |
8 | ## Change the default background color
9 | Paraview's default background color is instantly recognizable to anyone who uses the software regularly.
10 | While there's nothing wrong with the default background color, changing it can indicate to others that you've put time and effort into making nice visualizations, and will often look better.
11 | For all but a small subset of visualizations, a black or white background will look much nicer than the default gray background.
12 | To change the background color, scroll to the bottom of the properties tab and unselect Use Color Palette for Background shown below.
13 |
14 | 
15 |
16 | To select a color, click the background dropdown shown below and use the resulting popup window to select your desired color.
17 |
18 | 
19 |
20 | ## Remove the orientation axis
21 |
22 | The orientation axis is shown by default in the lower left-hand corner of the rear view.
23 | In many cases, it is not relevant to visualization and can be removed.
24 | To do this, unselect Orientation Axis Visibility in the properties tab as shown below.
25 |
26 | 
27 |
28 | ## Remove the color bar
29 |
30 | Knowing the values of the color bar is not always pertinent to scientific visualization.
31 | If this is the case, it can be removed, yielding a cleaner visualization.
32 | This can be done by changing the visibility toggle in the properties tab as shown below.
33 |
34 | 
35 |
36 | Note that each visible item in the pipeline browser can have its color bar toggled on or off individually.
37 | The render view after making these three changes is shown below.
38 |
39 | 
40 |
--------------------------------------------------------------------------------
/contributing.md:
--------------------------------------------------------------------------------
1 | # Contributing Guidelines
2 | The following guidelines ensure uniformity of the resources in this repository.
3 |
4 | - Filenames, filter names, terminal commands, and terminal command options should be wrapped with \`'s, ie. \`\- \`
5 |
6 | - When possible, screenshots should be made using "Capture selected window," or whatever your screenshotting tool uses.
7 | [Three Steps to Nicer Visualization](Tutorials/three-steps-to-nice-visualization.md) provides a good example of this.
8 |
9 | - Paraview dark mode is strongly preferred.
10 |
11 | - Black or white backgrounds should be used in all screenshots (no Paraview default background color please)
12 |
13 | - Boxes with 3pt borders and an RGB value of (255,0,0) should be used to highlight regions in screenshots
14 |
15 | - Screenshots should be placed in `Resources/` and named `A.png`, `B.png`, etc.
16 |
17 | - All tutorials should be listed in the table of contents in the [README](README.md)
18 |
--------------------------------------------------------------------------------
/mlc_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "aliveStatusCodes": [417, 403, 200, 429, 206, 0]
3 | }
4 |
--------------------------------------------------------------------------------