<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.uni-due.de/agk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dennis</id>
	<title>Arbeitsgruppe Kuiper - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uni-due.de/agk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dennis"/>
	<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Special:Contributions/Dennis"/>
	<updated>2026-05-30T18:04:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.uni-due.de/agk/index.php?title=Scaling_tests&amp;diff=242</id>
		<title>Scaling tests</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Scaling_tests&amp;diff=242"/>
		<updated>2024-04-22T08:57:24Z</updated>

		<summary type="html">&lt;p&gt;Dennis: added information for scaling tests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
The [https://hpc-wiki.info/hpc/Scaling HPC Wiki] provides a good source for the theory and how to perform scaling tests.&lt;br /&gt;
&lt;br /&gt;
== Scaling Tests for Belt ==&lt;br /&gt;
To perform scaling tests for belt, you can use the &#039;&#039;&#039;-maxsteps n&#039;&#039;&#039; starting option, which tells belt to only run for &#039;&#039;&#039;n&#039;&#039;&#039; steps and then print out the walltime and time step information. One can then proceed by taking the &#039;&#039;&#039;average time/step&#039;&#039;&#039; of the different runs&lt;br /&gt;
and compute the speedup and efficiency for the strong and weak scaling tests.&lt;br /&gt;
&lt;br /&gt;
Note: There is a bug in the current belt version, which leads to wrong &#039;&#039;&#039;average time/step&#039;&#039;&#039; when restarting a simulation. When restarting, belt measures the new walltime from the restart of the simulation and then divides by the number of time steps since the start of the simulation.&lt;br /&gt;
To work around this bug, one could change this line in the main.c:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if (g_stepNumber &amp;gt; 0) print (&amp;quot;&amp;gt; Average time/step       %10.2e  (sec)  \n&amp;quot;, &lt;br /&gt;
                              difftime(tend,tbeg)/(double)g_stepNumber);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and swap &#039;&#039;&#039;g_stepNumber&#039;&#039;&#039; with the actual amount of time steps that you want to do. This is not a nice fix and is luckily also not necessary:&lt;br /&gt;
&lt;br /&gt;
If you want to do a scaling test it is recommended to start with a simulation that has already evolved for some time (ideally it is in an equilibrium state). To not always start a new simulation and let it run to this point for every resolution that you want to test, you can use the Pluto interpolation function to start a new simulation with any snapshot as initial condition. This feature is well documented in the [https://plutocode.ph.unito.it/userguide.pdf Pluto user guide] and requires us to add the following lines of code to &#039;&#039;&#039;void InitDomain (Data *d, Grid *grid)&#039;&#039;&#039; in the &#039;&#039;&#039;init.c&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int i, j, k, id, size[3];&lt;br /&gt;
  long int offset, offset1;&lt;br /&gt;
  double *x1 = grid-&amp;gt;x[IDIR], *x1r = grid-&amp;gt;xr[IDIR];&lt;br /&gt;
  double *x2 = grid-&amp;gt;x[JDIR], *x2r = grid-&amp;gt;xr[JDIR];&lt;br /&gt;
  double *x3 = grid-&amp;gt;x[KDIR], *x3r = grid-&amp;gt;xr[KDIR];&lt;br /&gt;
  char grid_file[32];&lt;br /&gt;
  char data_input_file[32];&lt;br /&gt;
  sprintf (grid_file,&amp;quot;data/grid_input.out&amp;quot;);&lt;br /&gt;
  sprintf (data_input_file,&amp;quot;data/data.0050.dbl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  // Interpolate density (1st record in the file) &lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;, 0, CENTER);&lt;br /&gt;
  InputDataGridSize (id, size); // Get grid data size &lt;br /&gt;
  offset = (long)size[0]*(long)size[1]*(long)size[2]; // Offset of a single data block&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;Vc[RHO][k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&lt;br /&gt;
  // Interpolate x-velocity (2nd record in the file) &lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;,1*offset, CENTER);&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;Vc[VX1][k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&lt;br /&gt;
  // Interpolate y-velocity (3rd record in the file) &lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;,2*offset, CENTER);&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;Vc[VX2][k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&lt;br /&gt;
  // Interpolate z-velocity (4th record in the file)&lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;,3*offset, CENTER);&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;Vc[VX3][k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  // Interpolate pressure (5th record in the file) &lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;,4*offset, CENTER);&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;Vc[PRS][k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&lt;br /&gt;
  // Interpolate erad (9th record in the file) &lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;,8*offset, CENTER);&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;RadiationEnergyDensity[k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&lt;br /&gt;
  // Interpolate Tdust (7th record in the file) &lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;,6*offset, CENTER);&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;DustTemperature[k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&lt;br /&gt;
  // Interpolate Tgas (8th record in the file) &lt;br /&gt;
  id = InputDataOpen(data_input_file,grid_file,&amp;quot; &amp;quot;,7*offset, CENTER);&lt;br /&gt;
  TOT_LOOP(k,j,i) d-&amp;gt;GasTemperature[k][j][i] = InputDataInterpolate (id,x1[i],x2[j],x3[k]);&lt;br /&gt;
  InputDataClose(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code expects a &#039;&#039;&#039;&amp;quot;grid_input.out&amp;quot;&#039;&#039;&#039; for the grid that we interpolate from and &#039;&#039;&#039;&amp;quot;data.0050.dbl&amp;quot;&#039;&#039;&#039; for the data. This code was written for the &#039;&#039;&#039;single_file&#039;&#039;&#039; output option, for multiple files the code has to be changed accordingly.&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/agk/index.php?title=Scaling_tests&amp;diff=241</id>
		<title>Scaling tests</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Scaling_tests&amp;diff=241"/>
		<updated>2024-04-22T08:25:39Z</updated>

		<summary type="html">&lt;p&gt;Dennis: Created page with &amp;quot;== Sources == The [https://hpc-wiki.info/hpc/Scaling HPC Wiki] provides a good source for the theory and how to perform scaling tests.  == Scaling Tests for Belt == To perform scaling tests for belt, you can use the &amp;#039;&amp;#039;&amp;#039;-maxsteps n&amp;#039;&amp;#039;&amp;#039; starting option, which tells belt to only run for &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; steps and then print out the walltime and time step information. One can then proceed by taking the &amp;#039;&amp;#039;&amp;#039;average time/step&amp;#039;&amp;#039;&amp;#039; of the different runs and compute the speedup and efficienc...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
The [https://hpc-wiki.info/hpc/Scaling HPC Wiki] provides a good source for the theory and how to perform scaling tests.&lt;br /&gt;
&lt;br /&gt;
== Scaling Tests for Belt ==&lt;br /&gt;
To perform scaling tests for belt, you can use the &#039;&#039;&#039;-maxsteps n&#039;&#039;&#039; starting option, which tells belt to only run for &#039;&#039;&#039;n&#039;&#039;&#039; steps and then print out the walltime and time step information. One can then proceed by taking the &#039;&#039;&#039;average time/step&#039;&#039;&#039; of the different runs&lt;br /&gt;
and compute the speedup and efficiency for the strong and weak scaling tests.&lt;br /&gt;
&lt;br /&gt;
Note: There is a bug in the current belt version, which leads to wrong &#039;&#039;&#039;average time/step&#039;&#039;&#039; when restarting a simulation. When restarting, belt measures the new walltime from the restart of the simulation and then divides by the number of time steps since the start of the simulation.&lt;br /&gt;
To work around this bug, one could change this line in the main.c:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;if (g_stepNumber &amp;gt; 0) print (&amp;quot;&amp;gt; Average time/step       %10.2e  (sec)  \n&amp;quot;, &lt;br /&gt;
 difftime(tend,tbeg)/(double)g_stepNumber);&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/agk/index.php?title=Software&amp;diff=240</id>
		<title>Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Software&amp;diff=240"/>
		<updated>2024-04-22T07:59:23Z</updated>

		<summary type="html">&lt;p&gt;Dennis: +Scaling tests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
* Astro stuff:&lt;br /&gt;
** [https://git.uni-due.de/agkuiper/belt Belt] (which needs [[PETSc]]): Rolf&#039;s PLUTO version ([[compile-belt|manual]] for compiling)&lt;br /&gt;
** [[Visit]] Tips and tricks&lt;br /&gt;
** [[pyPLUTO]]: a Python module to read and analyse PLUTO output&lt;br /&gt;
** [[Scaling tests]] (for belt)&lt;br /&gt;
* [[Software#Two-Factor Authentification|Two-Factor Authentification (2FA)]]&lt;br /&gt;
* [[VPN]]&lt;br /&gt;
* [[SSH and SCP]]&lt;br /&gt;
* [https://git.uni-due.de/ University Gitlab]&lt;br /&gt;
* [https://uni-due.zoom.us/profile University Zoom]&lt;br /&gt;
* [https://nxcl.e-services.physik.uni-due.de University Nextcloud]: This is where we have the group calendar as well!&lt;br /&gt;
* [https://www.uni-due.de/zim/services/software/office-ma.php MS Office]. Note that [https://www.libreoffice.org/ LibreOffice] (Windows, Linux; use package manager) is an excellent and free alternative but &#039;&#039;caveat emptor&#039;&#039; about some formatting compatibilities.&lt;br /&gt;
* [[Zotero]]&lt;br /&gt;
* Making bibliographies compact (e.g. for proposals): https://github.com/lmytime/tex_compact_bib&lt;br /&gt;
&lt;br /&gt;
== Two-Factor Authentification ==&lt;br /&gt;
The two-factor authentification (2FA) is needed for most university services as VPN or Nextcloud. &lt;br /&gt;
&lt;br /&gt;
After activating your user-ID you need to activate it in the selfcare portal (https://selfcare.uni-due.de/). The website will walk you through the installation. You&#039;ll need to have e.g. an app for the generation of the second factor. I recommend using the app OpenOTP. Please make sure that you scan the shown QR-codes, they are very hard to regain.&lt;br /&gt;
&lt;br /&gt;
However, it is also possible to do it without a phone or application. For this, you only need to install forcepoint and oathtool. Then, you call:&lt;br /&gt;
 ~$ sudo forcepoint-client vpn.uni-due.de&lt;br /&gt;
Enter your normal/central university username and password. Then, if warnings come, say yes, and it will ask you for the second factor. Copy the timestamp for the line &amp;lt;code&amp;gt;*** Please enter reply for challenge ***&amp;lt;/code&amp;gt; and run—in the same terminal after having paused forcepoint (Ctrl+Z, then &amp;quot;bg&amp;quot;, then &amp;lt;Enter&amp;gt;) or in a separate terminal—the following command:&lt;br /&gt;
 ~$ oathtool --totp -b &amp;lt;YOUR &amp;quot;SECRET&amp;quot;&amp;gt; --now=&amp;quot;&amp;lt;TIMESTAMP GIVEN BY FORCEPOINT&amp;gt;&amp;quot;&lt;br /&gt;
It will return a six-digit number that you then give to forcepoint (&amp;lt;code&amp;gt;fg&amp;lt;/code&amp;gt; to bring it back to the foreground, or switching to the tab). You have all the time in the world because you are giving the timestamp explicitly :). You get the &amp;quot;secret&amp;quot; from the selfcare portal when you generate a token (the QR code is just an URL and there is a &amp;quot;…?secret=…&amp;amp;&amp;quot; part to it; the string between &amp;quot;=&amp;quot; and &amp;quot;&amp;amp;&amp;quot; is the &amp;quot;secret&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In general, to parse a QR code: you can use &amp;lt;code&amp;gt;zbarimg&amp;lt;/code&amp;gt;, e.g. from a quick screenshot:&lt;br /&gt;
 ~$ zbarimg &amp;quot;/home/georgeslemaistre/Bilder/Bildschirmfoto von 2023-10-05 15-00-00.png&amp;quot;&lt;br /&gt;
 otpauth://totp/TOTP1938HK33?secret=33IHS343AMDGPH123456CO777JPIIJMJV&amp;amp;period=30&amp;amp;digits=6&amp;amp;issuer=uni-duisburg-essen&amp;amp;image=https%3A//selfcare.uni-due.de/_Resources/Static/Packages/UDE.Portal/images/logo/logo--otp.png&lt;br /&gt;
(No worries, this is a fake &amp;quot;secret&amp;quot; :).)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039;: make sure to execute the oathtool command prefixed with a space on the command line so that it not get saved to your command history file because your &amp;quot;secret&amp;quot; is in plain text there. You can call the command once without writing the &amp;quot;secret&amp;quot; (which of course will not work) just to have the command in the history (searching in the history on the command line: &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;). Typically, you need to close the terminal (exit) for the history actually to be written to the history file (~/.bash_history if you are using bash.) Saving the secret itself in plain text is not the best idea, obviously, so you need to find a solution for that part…&lt;br /&gt;
&lt;br /&gt;
If you forgot to use a space at the beginning of the line and the terminal is still open, go up in command history with the up arrow until you get to that command, delete the command on the line and &#039;&#039;&#039;do not press enter&#039;&#039;&#039; but first go back &amp;quot;down to the present&amp;quot; with the down arrow and &#039;&#039;&#039;then&#039;&#039;&#039; press enter. You can check that it has worked by going back up (with the up arrow) and you will see a blank line where the command was. Then you can exit. If you have already closed the terminal, open the history file in an editor and delete the line but make sure that no back-up copy of the history file (containing the command...) is made, or delete it manually afterwards.&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=171</id>
		<title>Visit</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=171"/>
		<updated>2024-04-09T12:03:26Z</updated>

		<summary type="html">&lt;p&gt;Dennis: /* How To ... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some frequent operations, even though surely covered somewhere in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/using_visit/index.html manual] or in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/tutorials/index.html tutorials]:&lt;br /&gt;
&lt;br /&gt;
= How To ... =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Q: ... specify the axis range in numbers?&amp;lt;br&amp;gt;A: Ctrl+V opens the &#039;&#039;View&#039;&#039; window, in the Tab &#039;&#039;2D view&#039;&#039; the input field &#039;&#039;Window&#039;&#039; contains the space-separated &#039;&#039;x&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; x&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&#039;&#039;.&lt;br /&gt;
# Q: ... combine (add, subtract, ...) fields?&amp;lt;br&amp;gt;A: Ctrl+Shift+E opens the &#039;&#039;Expressions&#039;&#039; Window. You can create a new expression and select the type on the right hand side (e.g. scalar or vector)  and insert functions or variables from your current database to apply mathematical operations on them and combine them.  After saving the expression by clicking &#039;&#039;apply&#039;&#039;, you can add them like any other data field.&lt;br /&gt;
# Q: ... combine fields from different time snapshots or databases?&amp;lt;br&amp;gt;A: Open the &#039;&#039;Data Level Comparison Wizard&#039;&#039; with Ctrl+Shift+D. It will guide you through the process of creating a new expression with the field that you want to compare with.&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=170</id>
		<title>Visit</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=170"/>
		<updated>2024-04-09T12:02:26Z</updated>

		<summary type="html">&lt;p&gt;Dennis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some frequent operations, even though surely covered somewhere in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/using_visit/index.html manual] or in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/tutorials/index.html tutorials]:&lt;br /&gt;
&lt;br /&gt;
= How To ... =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Q: ... specify the axis range in numbers?&amp;lt;br&amp;gt;A: Ctrl+V opens the &#039;&#039;View&#039;&#039; window, in the Tab &#039;&#039;2D view&#039;&#039; the input field &#039;&#039;Window&#039;&#039; contains the space-separated &#039;&#039;x&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; x&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&#039;&#039;.&lt;br /&gt;
# Q: ... combine (add, subtract, ...) fields?&amp;lt;br&amp;gt;A: Ctrl+Shift+E opens the &#039;&#039;Expressions&#039;&#039; Window. You can create a new expression and select the type on the right hand side (e.g. scalar or vector)  and insert functions or variables from your current database to apply mathematical operations on them and combine them.  After saving the expression by clicking &#039;&#039;apply&#039;&#039;, you can add them like any other data field.&lt;br /&gt;
# Q: ... combine fields from different time snapshots or databases? A: Open the &#039;&#039;Data Level Comparison Wizard&#039;&#039; with Ctrl+Shift+D. It will guide you through the process of creating a new expression with the field that you want to compare with.&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=169</id>
		<title>Visit</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=169"/>
		<updated>2024-04-09T12:01:12Z</updated>

		<summary type="html">&lt;p&gt;Dennis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some frequent operations, even though surely covered somewhere in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/using_visit/index.html manual] or in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/tutorials/index.html tutorials]:&lt;br /&gt;
&lt;br /&gt;
= How To ... =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Q: ... specify the axis range in numbers?&amp;lt;br&amp;gt;A: Ctrl+V opens the &#039;&#039;View&#039;&#039; window, in the Tab &#039;&#039;2D view&#039;&#039; the input field &#039;&#039;Window&#039;&#039; contains the space-separated &#039;&#039;x&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; x&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&#039;&#039;.&lt;br /&gt;
# Q: ... combine (add, subtract, ...) fields?&amp;lt;br&amp;gt;A: Ctrl+Shift+E opens the &#039;&#039;Expressions&#039;&#039; Window. You can create a new expression and select the type on the right hand side (e.g. scalar or vector)  and insert functions or variables from your current database to apply mathematical operations on them and combine them.  After saving the expression by clicking &#039;&#039;apply&#039;&#039;, you can add them like any other data field.&lt;br /&gt;
# Q: ... combine fields from different time snapshots or databases?  A: Open the &#039;&#039;Data Level Comparison Wizard&#039;&#039; with Ctrl+Shift+D. It will guide you through the process of creating a new expression with the field that you want to compare with.&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=168</id>
		<title>Visit</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/agk/index.php?title=Visit&amp;diff=168"/>
		<updated>2024-04-09T12:00:41Z</updated>

		<summary type="html">&lt;p&gt;Dennis: Added Visit instructions for creating expressions and combine different fields.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some frequent operations, even though surely covered somewhere in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/using_visit/index.html manual] or in the [https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/tutorials/index.html tutorials]:&lt;br /&gt;
&lt;br /&gt;
= How To ... =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Q: ... specify the axis range in numbers?&amp;lt;br&amp;gt;A: Ctrl+V opens the &#039;&#039;View&#039;&#039; window, in the Tab &#039;&#039;2D view&#039;&#039; the input field &#039;&#039;Window&#039;&#039; contains the space-separated &#039;&#039;x&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; x&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; y&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&#039;&#039;.&lt;br /&gt;
# Q: ... combine (add, subtract, ...) fields?&amp;lt;br&amp;gt;A: Ctrl+Shift+E opens the &#039;&#039;Expressions&#039;&#039; Window. You can create a new expression and select the type on the right hand side (e.g. scalar or vector)  and insert functions or variables from your current database to apply mathematical operations on them and combine them.  After saving the expression by clicking &#039;&#039;apply&#039;&#039;, you can add them like any other data field.&lt;br /&gt;
# Q: ... combine fields from different time snapshots or databases? A: Open the &#039;&#039;Data Level Comparison Wizard&#039;&#039; with Ctrl+Shift+D. It will guide you through the process of creating a new expression with the field that you want to compare with.&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
</feed>