Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • wslda wslda
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • wtools
  • wsldawslda
  • Wiki
  • Helmholtz decomposition code

Helmholtz decomposition code · Changes

Page history
Update Helmholtz decomposition code authored Sep 02, 2021 by Andrea Barresi's avatar Andrea Barresi
Hide whitespace changes
Inline Side-by-side
Helmholtz-decomposition-code.md
View page @ cd243c4d
......@@ -12,7 +12,7 @@ E_k=\frac{m}{2V}\int\omega(\textbf{r},t)^2d\textbf{r}=\frac{m}{2}\sum_{\textbf{k
where $`\widetilde{\omega}(\textbf{k},t)=\mathfrak{F}[\omega(\textbf{r},t)]=\int\omega(\textbf{r},t)\frac{e^{-i\textbf{k}\cdot\textbf{r}}}{V}d\textbf{r}`$ is the Fourier Transform of the effective velocity.
From this, we can apply the Helmholtz Decomposition theorem to obtain the compressive and rotational components of the effective velocity field:
From this, we can apply the **Helmholtz Decomposition theorem** to obtain the compressive and rotational components of the effective velocity field:
```math
\omega(\textbf{r},t)=\omega_0(t)+\omega_c(\textbf{r},t)+\omega_i(\textbf{r},t)
......@@ -27,8 +27,8 @@ From this, we can apply the Helmholtz Decomposition theorem to obtain the compre
Note that in our specific case, we assume the component $`\omega_0(t)`$ to be zero across the whole lattice.
# Usage
TODO: explain how to use...
The cast line consists of few specific entries. After the executable name, call the .wtxt file that needs to be analyzed, together with a number indicating the spin component you wish to inspect:
The cast line consists of few specific entries. After the executable name, call the `.wtxt` file that needs to be analyzed, together with a number indicating the spin component you wish to inspect:
* 0 is for spin a (up)
* 1 is for spin b (down)
* 2 is for spin a+b
......@@ -54,13 +54,14 @@ Here is an example of how it should look like:
For large lattices, the code might take longer than it shows due to MPI memory cleaning routines.
The code outputs four files:
* Two of them are `.wdat`, and they contain data about <a href="https://www.codecogs.com/eqnedit.php?latex=\omega_0(t)" target="_blank"><img src="https://latex.codecogs.com/gif.latex?\omega_c(r,t)" title="\omega_0(t)" /></a> and <a href="https://www.codecogs.com/eqnedit.php?latex=\omega_0(t)" target="_blank"><img src="https://latex.codecogs.com/gif.latex?\omega_i(r,t)" title="\omega_0(t)" /></a> in binary form. These can be read via VisIt by selecting the corresponding quantity from the VisIt HUD (wc*/wi*);
* Two of them are `.wdat`, and they contain data about $`\omega_c(\textbf{r},t)`$ and $`\omega_i(\textbf{r},t)`$ in binary form. These can be read via VisIt by selecting the corresponding quantity from the VisIt HUD (wc*/wi*);
* One `.txt` file, containing **time, compressive energy, rotational energy, compressive energy calculated via spectral decomposition and rotational energy calculated via spectral decomposition** in this order;
* One `hhspec*.txt` file, containing data blocks for every timestep and showing the compressive and rotational spectra as a function of k. In current version, only rotational spectra is reliable. **[TODO: Fix compressive.]**
TODO: Explain what are output files... their meaning and content, in what units are columns
[ADD UNITS]
# Limitations
Presently the code supports only 3d data. However, you can apply it to 2D as well. Before that, you need to increase data dimensionality of the datasets you wish to analyze. You can do it using wdata tool `wdata-datadim-up`. For example:
Presently the code supports only 3D data. However, you can apply it to 2D as well. In order to do that, you need to increase data dimensionality of the datasets you wish to analyze. You can do it using wdata tool `wdata-datadim-up`. For example:
```bash
[gabrielw@node2066 tmp]$ wdata-datadim-up test1.wtxt test2 3
# WDATA TOOL: DATADIM MODIFIER
......@@ -93,6 +94,9 @@ Presently the code supports only 3d data. However, you can apply it to 2D as wel
# WRITING `test2.wtxt`
# DONE.
```
The resizing tool operates on all the variables listed in the `.wtxt` file, but the Helmholtz decomposition tool only needs **density, current and delta**. If your dataset is spin-symmetric, using only the a component will be enough. The new `.wtxt` file will link to the resized files for each quantity.
The result of the resizing will be a dataset with cylindrical symmetry: some effects of a fully-3D simulation will not show up (as, in the case of vortices, Kelvin waves or vortex rings).
# Developers
* Andrea Barresi, Warsaw University of Technology
Clone repository
  • API version
  • Automatic interpolations
  • Auxiliary tools
  • Browsing the code
  • Broyden algorithm
  • C and CUDA
  • Campaign of calculations
  • Checking correctness of settings
  • Chemical potentials control
  • Code & Results quality
  • Common failures of static codes
  • Common failures of time dependent codes
  • Computation domain
  • Configuring GPU machine
  • Constraining densities and potentials
View All Pages