Merge branch 'coryab/code' into janitaws/latex
@ -31,8 +31,7 @@ BreakBeforeBinaryOperators: NonAssignment
|
||||
|
||||
# Use a Linux style brace break.
|
||||
# Break before braces on function, namespace and class definitions.
|
||||
BreakBeforeBraces: Linux
|
||||
|
||||
BreakBeforeBraces: Stroustrup
|
||||
|
||||
# If true, spaces will be inserted after ( and before ).
|
||||
SpacesInParentheses: false
|
||||
@ -42,3 +41,6 @@ SpacesInSquareBrackets: false
|
||||
|
||||
# Separate definition blocks (classes, functions, structs, enums)
|
||||
SeparateDefinitionBlocks: Always
|
||||
|
||||
# Sort includes by type
|
||||
IncludeBlocks: Regroup
|
||||
|
||||
2
.clangd
@ -1,2 +1,2 @@
|
||||
CompileFlags:
|
||||
Add: [-I../include, -I/usr/include/openmpi-x86_64]
|
||||
Add: [-I../include]
|
||||
|
||||
22
doxygen-awesome/.github/workflows/publish.yaml
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
name: publish
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: set version
|
||||
run: echo "PROJECT_NUMBER = `git describe --tags`" >> Doxyfile
|
||||
- name: Generate Documentation
|
||||
uses: mattnotmitt/doxygen-action@edge
|
||||
- name: Publish generated content to GitHub Pages
|
||||
uses: tsunematsu21/actions-publish-gh-pages@v1.0.2
|
||||
with:
|
||||
dir: docs/html
|
||||
branch: gh-pages
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
6
doxygen-awesome/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
docs/html
|
||||
.DS_Store
|
||||
.idea
|
||||
|
||||
node_modules
|
||||
*.tgz
|
||||
3
doxygen-awesome/.npmignore
Normal file
@ -0,0 +1,3 @@
|
||||
*
|
||||
!doxygen-awesome*
|
||||
|
||||
2793
doxygen-awesome/Doxyfile
Normal file
21
doxygen-awesome/LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 - 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
38
doxygen-awesome/Makefile
Normal file
@ -0,0 +1,38 @@
|
||||
# SPDX-FileCopyrightText: 2022 Andrea Pappacoda <andrea@pappacoda.it>
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
.POSIX:
|
||||
|
||||
PROJECT = doxygen-awesome-css
|
||||
|
||||
# Paths
|
||||
PREFIX = /usr/local
|
||||
DATADIR = share
|
||||
INSTALLDIR = $(DESTDIR)$(PREFIX)/$(DATADIR)/$(PROJECT)
|
||||
|
||||
# Utilities
|
||||
INSTALL = install -m 644
|
||||
MKDIR = mkdir -p
|
||||
RM = rm -f
|
||||
|
||||
# Files to be installed
|
||||
FILES = doxygen-awesome-darkmode-toggle.js \
|
||||
doxygen-awesome-fragment-copy-button.js \
|
||||
doxygen-awesome-interactive-toc.js \
|
||||
doxygen-awesome-paragraph-link.js \
|
||||
doxygen-awesome-sidebar-only-darkmode-toggle.css \
|
||||
doxygen-awesome-sidebar-only.css \
|
||||
doxygen-awesome.css
|
||||
|
||||
# Empty targets so that `make` and `make clean` do not cause errors
|
||||
all:
|
||||
clean:
|
||||
|
||||
install:
|
||||
$(MKDIR) $(INSTALLDIR)
|
||||
$(INSTALL) $(FILES) $(INSTALLDIR)/
|
||||
|
||||
uninstall:
|
||||
$(RM) -r $(INSTALLDIR)/
|
||||
|
||||
.PHONY: all clean install uninstall
|
||||
166
doxygen-awesome/README.md
Normal file
@ -0,0 +1,166 @@
|
||||
# Doxygen Awesome
|
||||
|
||||
[](https://github.com/jothepro/doxygen-awesome-css/releases/latest)
|
||||
[](https://github.com/jothepro/doxygen-awesome-css/blob/main/LICENSE)
|
||||

|
||||
|
||||
<div class="title_screenshot">
|
||||
|
||||

|
||||
|
||||
</div>
|
||||
|
||||
**Doxygen Awesome** is a custom **CSS theme for Doxygen HTML-documentation** with lots of customization parameters.
|
||||
|
||||
## Motivation
|
||||
|
||||
I really like how the Doxygen HTML-documentation is structured! But IMHO it looks a bit outdated.
|
||||
|
||||
This theme is an attempt to update the visuals of Doxygen without changing its overall layout too much.
|
||||
|
||||
## Features
|
||||
|
||||
- 🌈 Clean, modern design
|
||||
- 🚀 Heavily customizable by adjusting CSS-variables
|
||||
- 🧩 No changes to the HTML structure of Doxygen required
|
||||
- 📱 Improved mobile usability
|
||||
- 🌘 Dark mode support!
|
||||
- 🥇 Works best with **doxygen 1.9.1** - **1.9.4** and **1.9.6** - **1.9.7**
|
||||
|
||||
## Examples
|
||||
|
||||
Some websites using this theme:
|
||||
|
||||
- [Documentation of this repository](https://jothepro.github.io/doxygen-awesome-css/)
|
||||
- [wxWidgets](https://docs.wxwidgets.org/3.2/)
|
||||
- [OpenCV 5.x](https://docs.opencv.org/5.x/)
|
||||
- [Zephyr](https://docs.zephyrproject.org/latest/doxygen/html/index.html)
|
||||
- [FELTOR](https://mwiesenberger.github.io/feltor/dg/html/modules.html)
|
||||
- [Spatial Audio Framework (SAF)](https://leomccormack.github.io/Spatial_Audio_Framework/index.html)
|
||||
- [libCloudSync](https://jothepro.github.io/libCloudSync/)
|
||||
- [libsl3](https://a4z.github.io/libsl3/)
|
||||
|
||||
## Installation
|
||||
|
||||
To use the theme when generating your documentation, bring the required CSS and JS files from this repository into your project.
|
||||
|
||||
This can be done in several ways:
|
||||
|
||||
- manually copying the files
|
||||
- adding the project as a Git submodule
|
||||
- adding the project as a npm/xpm dependency
|
||||
- installing the theme system wide
|
||||
|
||||
All theme files are located in the root of this repository and start with the prefix `doxygen-awesome-`. You may not need all of them. Follow the install instructions to figure out what files are required for your setup.
|
||||
|
||||
### Git submodule
|
||||
|
||||
For projects which use git, add the repository as a submodule and check out the desired release:
|
||||
|
||||
```sh
|
||||
git submodule add https://github.com/jothepro/doxygen-awesome-css.git
|
||||
cd doxygen-awesome-css
|
||||
git checkout v2.2.1
|
||||
```
|
||||
|
||||
### npm/xpm dependency
|
||||
|
||||
In the npm ecosystem, this project can be added as a development dependency
|
||||
to your project:
|
||||
|
||||
```sh
|
||||
cd your-project
|
||||
npm install https://github.com/jothepro/doxygen-awesome-css#v2.2.1 --save-dev
|
||||
|
||||
ls -l node_module/@jothepro/doxygen-awesome-css
|
||||
```
|
||||
|
||||
Similarly, in the [xPack](https://xpack.github.io) ecosystem, this project can be added
|
||||
as a development dependency to an [`xpm`](https://xpack.github.io/xpm/)
|
||||
managed project.
|
||||
|
||||
### System-wide
|
||||
|
||||
You can even install the theme system-wide by running `make install`. The files will be installed to `/usr/local/share/` by default, but you can customize the install location with `make PREFIX=/my/custom/path install`.
|
||||
|
||||
### Choosing a layout
|
||||
|
||||
There is two layout options. Choose one of them and configure Doxygen accordingly:
|
||||
|
||||
<div class="darkmode_inverted_image">
|
||||
|
||||

|
||||
|
||||
</div>
|
||||
|
||||
<div class="tabbed">
|
||||
|
||||
- <b class="tab-title">1️⃣ Base Theme </b>
|
||||
Comes with the typical Doxygen titlebar. Optionally the treeview in the sidebar can be enabled.
|
||||
|
||||
Required files: `doxygen-awesome.css`
|
||||
|
||||
Required `Doxyfile` configuration:
|
||||
```
|
||||
GENERATE_TREEVIEW = YES # optional. Also works without treeview
|
||||
DISABLE_INDEX = NO
|
||||
FULL_SIDEBAR = NO
|
||||
HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css
|
||||
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
|
||||
```
|
||||
|
||||
- <b class="tab-title">2️⃣ Sidebar-Only Theme </b>
|
||||
Hides the top titlebar to give more space to the content. The treeview must be enabled in order for this theme to work.
|
||||
|
||||
Required files: `doxygen-awesome.css`, `doxygen-awesome-sidebar-only.css`
|
||||
|
||||
Required `Doxyfile` configuration:
|
||||
```
|
||||
|
||||
GENERATE_TREEVIEW = YES # required!
|
||||
DISABLE_INDEX = NO
|
||||
FULL_SIDEBAR = NO
|
||||
HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
|
||||
doxygen-awesome-css/doxygen-awesome-sidebar-only.css
|
||||
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
**Caution**:
|
||||
- This theme is not compatible with the `FULL_SIDEBAR = YES` option provided by Doxygen!
|
||||
- `HTML_COLORSTYLE` must be set to `LIGHT` since Doxygen 1.9.5!
|
||||
|
||||
### Further installation instructions:
|
||||
|
||||
- [Installing extensions](docs/extensions.md)
|
||||
- [Customizing the theme (colors, spacing, border-radius, ...)](docs/customization.md)
|
||||
- [Tips and Tricks for further configuration](docs/tricks.md)
|
||||
|
||||
## Browser support
|
||||
|
||||
Tested with
|
||||
|
||||
- Chrome 110, Chrome 109 for Android, Chrome 110 for iOS
|
||||
- Safari 16, Safari for iOS 16
|
||||
- Firefox 110, Firefox 110 for Android, Firefox 109 for iOS
|
||||
- Edge 110
|
||||
|
||||
|
||||
The theme does not strive to be backwards compatible to (significantly) older browser versions.
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
Thanks for all the bug reports and inspiring feedback on github!
|
||||
|
||||
Special thanks to all the contributors:
|
||||
<br><br>
|
||||
<a href="https://github.com/jothepro/doxygen-awesome-css/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=jothepro/doxygen-awesome-css" />
|
||||
</a>
|
||||
|
||||
<span class="next_section_button">
|
||||
|
||||
Read Next: [Extensions](docs/extensions.md)
|
||||
</span>
|
||||
115
doxygen-awesome/docs/customization.md
Normal file
@ -0,0 +1,115 @@
|
||||
# Customization
|
||||
|
||||
[TOC]
|
||||
|
||||
|
||||
## CSS-Variables
|
||||
|
||||
This theme is highly customizable because a lot of things are parameterized with CSS variables.
|
||||
|
||||
Just to give you an idea on how flexible the styling is, click this button:
|
||||
|
||||
<div class="alter-theme-button" onclick="toggle_alternative_theme()" onkeypress="if (event.keyCode == 13) toggle_alternative_theme()" tabindex=0>Alter theme</div>
|
||||
|
||||
### Setup
|
||||
|
||||
It is recommended to add your own `custom.css` and overwrite the variables there:
|
||||
```
|
||||
HTML_EXTRA_STYLESHEET = doxygen-awesome.css custom.css
|
||||
```
|
||||
|
||||
Make sure to override the variables in the correct spot. All variables should be customized where they have been defined, in the `html` tag selector:
|
||||
|
||||
```css
|
||||
html {
|
||||
/* override light-mode variables here */
|
||||
}
|
||||
```
|
||||
|
||||
For dark-mode overrides you have to choose where to put them, depending on whether the dark-mode toggle extension is installed or not:
|
||||
|
||||
<div class="tabbed">
|
||||
|
||||
- <b class="tab-title">dark-mode toggle is installed</b>
|
||||
```css
|
||||
html.dark-mode {
|
||||
/* define dark-mode variable overrides here if you DO use doxygen-awesome-darkmode-toggle.js */
|
||||
}
|
||||
```
|
||||
- <b class="tab-title">dark-mode toggle is **NOT** installed</b>
|
||||
The dark-mode is enabled automatically depending on the system preference:
|
||||
```css
|
||||
@media (prefers-color-scheme: dark) {
|
||||
html:not(.light-mode) {
|
||||
/* define dark-mode variable overrides here if you DON'T use doxygen-awesome-darkmode-toggle.js */
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### Available variables
|
||||
|
||||
The following list gives an overview of the variables defined in [`doxygen-awesome.css`](https://github.com/jothepro/doxygen-awesome-css/blob/main/doxygen-awesome.css).
|
||||
|
||||
The list is not complete. To explore all available variables, have a look at the CSS starting from [here](https://github.com/jothepro/doxygen-awesome-css/blob/main/doxygen-awesome.css#L30).
|
||||
All variables are defined at the beginning of the stylesheet.
|
||||
|
||||
| Parameter | Default (Light) | Default (Dark) |
|
||||
| :---------------------------------- | :---------------------------------------------------------- | :---------------------------------------------------------- |
|
||||
| **Color Scheme**:<br>primary theme colors. This will affect the entire websites color scheme: links, arrows, labels, ... |||
|
||||
| `--primary-color` | <code style="background:#1779c4;color:white">#1779c4</code> | <code style="background:#1982d2;color:white">#1982d2</code> |
|
||||
| `--primary-dark-color` | <code style="background:#335c80;color:white">#335c80</code> | <code style="background:#5ca8e2;color:black">#5ca8e2</code> |
|
||||
| `--primary-light-color` | <code style="background:#70b1e9;color:black">#70b1e9</code> | <code style="background:#4779ac;color:white">#4779ac</code> |
|
||||
| **Page Colors**:<br>background and foreground (text-color) of the documentation. |||
|
||||
| `--page-background-color` | <code style="background:#ffffff;color:black">#ffffff</code> | <code style="background:#1C1D1F;color:white">#1C1D1F</code> |
|
||||
| `--page-foreground-color` | <code style="background:#2f4153;color:white">#2f4153</code> | <code style="background:#d2dbde;color:black">#d2dbde</code> |
|
||||
| `--page-secondary-foreground-color` | <code style="background:#6f7e8e;color:white">#6f7e8e</code> | <code style="background:#859399;color:white">#859399</code> |
|
||||
| **Spacing:**<br>default spacings. Most ui components reference these values for spacing, to provide uniform spacing on the page. |||
|
||||
| `--spacing-small` | `5px` | |
|
||||
| `--spacing-medium` | `10px` | |
|
||||
| `--spacing-large` | `16px` | |
|
||||
| **Border Radius**:<br>border radius for all rounded ui components. Will affect many components, like dropdowns, memitems, codeblocks, ... |||
|
||||
| `--border-radius-small` | `4px` | |
|
||||
| `--border-radius-medium` | `6px` | |
|
||||
| `--border-radius-large` | `8px` | |
|
||||
| **Content Width**:<br>The content is centered and constrained in its width. To make the content fill the whole page, set the following variable to `auto`. |||
|
||||
| `--content-maxwidth` | `1000px` | |
|
||||
| **Code Fragment Colors**:<br>Color-Scheme of multiline codeblocks |||
|
||||
| `--fragment-background` | <code style="background:#F8F9FA;color:black">#F8F9FA</code> | <code style="background:#282c34;color:white">#282c34</code> |
|
||||
| `--fragment-foreground` | <code style="background:#37474F;color:white">#37474F</code> | <code style="background:#dbe4eb;color:black">#dbe4eb</code> |
|
||||
| **Arrow Opacity**:<br>By default the arrows in the sidebar are only visible on hover. You can override this behavior so they are visible all the time. |||
|
||||
| `--side-nav-arrow-opacity` | `0` | |
|
||||
| `--side-nav-arrow-hover-opacity` | `0.9` | |
|
||||
| ...and many more |||
|
||||
|
||||
|
||||
If you miss a configuration option or find a bug, please consider [opening an issue](https://github.com/jothepro/doxygen-awesome-css/issues)!
|
||||
|
||||
## Doxygen generator
|
||||
|
||||
The theme overrides most colors with the `--primary-color-*` variables.
|
||||
|
||||
But there is a few small images and graphics that the theme cannot adjust or replace. To make these blend in better with
|
||||
the rest, it is recommended to adjust the [doxygen color settings](https://www.doxygen.nl/manual/customize.html#minor_tweaks_colors)
|
||||
to something that matches the chosen color-scheme.
|
||||
|
||||
For the default color-scheme, these values work out quite well:
|
||||
|
||||
```
|
||||
# Doxyfile
|
||||
HTML_COLORSTYLE_HUE = 209
|
||||
HTML_COLORSTYLE_SAT = 255
|
||||
HTML_COLORSTYLE_GAMMA = 113
|
||||
```
|
||||
|
||||
## Share your customizations
|
||||
|
||||
If you customized the theme with custom colors, spacings, font-sizes, etc. and you want to share your creation with others, you can to this [here](https://github.com/jothepro/doxygen-awesome-css/discussions/13).
|
||||
|
||||
I am always curious to learn about how you made the theme look even better!
|
||||
|
||||
<span class="next_section_button">
|
||||
|
||||
Read Next: [Tips & Tricks](tricks.md)
|
||||
</span>
|
||||
236
doxygen-awesome/docs/extensions.md
Normal file
@ -0,0 +1,236 @@
|
||||
# Extensions
|
||||
|
||||
[TOC]
|
||||
|
||||
On top of the base theme provided by `doxygen-awesome.css`, this repository comes with Javascript extensions that require additional setup steps to get them running.
|
||||
|
||||
The extensions require customizations in the header HTML-template.
|
||||
This is how you can create the default template with Doxygen:
|
||||
|
||||
1. Create default header template:
|
||||
```sh
|
||||
doxygen -w html header.html delete_me.html delete_me.css
|
||||
```
|
||||
|
||||
2. Reference the template in your `Doxyfile`:
|
||||
```
|
||||
HTML_HEADER = header.html
|
||||
```
|
||||
|
||||
[More details on header customization](https://www.doxygen.nl/manual/customize.html#minor_tweaks_header_css)
|
||||
|
||||
## Dark Mode Toggle {#extension-dark-mode-toggle}
|
||||
|
||||
Adds a button next to the search bar to enable and disable the dark theme variant manually:
|
||||
|
||||
<div class="darkmode_inverted_image bordered_image">
|
||||
<img width=250 src="darkmode_toggle.png" />
|
||||
</div>
|
||||
|
||||
### Installation
|
||||
|
||||
1. Add the required resources in your `Doxyfile`:
|
||||
- **HTML_EXTRA_FILES:** `doxygen-awesome-darkmode-toggle.js`
|
||||
- **HTML_EXTRA_STYLESHEET:** `doxygen-awesome-sidebar-only-darkmode-toggle.css`
|
||||
<em>(ONLY required for the sidebar-only theme variant!)</em>
|
||||
2. In the `header.html` template, include `doxygen-awesome-darkmode-toggle.js` at the end of the `<head>` and then initialize it:
|
||||
```html
|
||||
<html>
|
||||
<head>
|
||||
<!-- ... other metadata & script includes ... -->
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeDarkModeToggle.init()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
```
|
||||
|
||||
### Customizing
|
||||
|
||||
Changing the tooltip of the button:
|
||||
```js
|
||||
DoxygenAwesomeDarkModeToggle.title = "Zwischen hellem/dunklem Modus wechseln"
|
||||
```
|
||||
|
||||
Changing Icons. Both Emoji or SVG icons are supported:
|
||||
```js
|
||||
DoxygenAwesomeDarkModeToggle.lightModeIcon = '🌞'
|
||||
// icon from https://fonts.google.com/icons
|
||||
DoxygenAwesomeDarkModeToggle.darkModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#009793"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M8.1,14.15C9.77,14.63,11,16.17,11,18c0,0.68-0.19,1.31-0.48,1.87c0.48,0.09,0.97,0.14,1.48,0.14 c1.48,0,2.9-0.41,4.13-1.15c-2.62-0.92-5.23-2.82-6.8-5.86C7.74,9.94,7.78,7.09,8.29,4.9c-2.57,1.33-4.3,4.01-4.3,7.1c0,0,0,0,0,0 c0.01,0,0.01,0,0.02,0C5.66,12,7.18,12.83,8.1,14.15z" opacity=".3"/><path d="M19.78,17.51c-2.47,0-6.57-1.33-8.68-5.43C8.77,7.57,10.6,3.6,11.63,2.01C6.27,2.2,1.98,6.59,1.98,12 c0,0.14,0.02,0.28,0.02,0.42C2.61,12.16,3.28,12,3.98,12c0,0,0,0,0,0c0-3.09,1.73-5.77,4.3-7.1C7.78,7.09,7.74,9.94,9.32,13 c1.57,3.04,4.18,4.95,6.8,5.86c-1.23,0.74-2.65,1.15-4.13,1.15c-0.5,0-1-0.05-1.48-0.14c-0.37,0.7-0.94,1.27-1.64,1.64 c0.98,0.32,2.03,0.5,3.11,0.5c3.5,0,6.58-1.8,8.37-4.52C20.18,17.5,19.98,17.51,19.78,17.51z"/><path d="M7,16l-0.18,0C6.4,14.84,5.3,14,4,14c-1.66,0-3,1.34-3,3s1.34,3,3,3c0.62,0,2.49,0,3,0c1.1,0,2-0.9,2-2 C9,16.9,8.1,16,7,16z"/></g></g></svg>`
|
||||
```
|
||||
|
||||
All customizations must be applied before calling `DoxygenAwesomeDarkModeToggle.init()`!
|
||||
|
||||
|
||||
## Fragment Copy Button {#extension-copy-button}
|
||||
|
||||
Shows a copy button when the user hovers over a code fragment:
|
||||
|
||||
<div class="darkmode_inverted_image bordered_image">
|
||||
<img width=490 src="fragment_copy_button.png"/>
|
||||
</div>
|
||||
|
||||
### Installation
|
||||
|
||||
1. Add the required resources in your `Doxyfile`:
|
||||
- **HTML_EXTRA_FILES:** `doxygen-awesome-fragment-copy-button.js`
|
||||
2. In the `header.html` template, include `doxygen-awesome-fragment-copy-button.js` at the end of the `<head>` and then initialize it:
|
||||
```html
|
||||
<html>
|
||||
<head>
|
||||
<!-- ... other metadata & script includes ... -->
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeFragmentCopyButton.init()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
```
|
||||
|
||||
### Customizing
|
||||
|
||||
The tooltip of the button can be changed:
|
||||
```js
|
||||
DoxygenAwesomeFragmentCopyButton.title = "In die Zwischenablage kopieren"
|
||||
```
|
||||
|
||||
The icon can be changed. It must be an SVG:
|
||||
```js
|
||||
DoxygenAwesomeFragmentCopyButton.copyIcon = `<svg ...>`
|
||||
DoxygenAwesomeFragmentCopyButton.successIcon = `<svg ...>`
|
||||
```
|
||||
|
||||
All customizations must be applied before calling `DoxygenAwesomeDarkModeToggle.init()`!
|
||||
|
||||
## Paragraph Linking {#extension-para}
|
||||
|
||||
Provides a button on hover behind every headline to allow easy creation of a permanent link to the headline:
|
||||
|
||||
<div class="darkmode_inverted_image bordered_image">
|
||||
<img width=220 src="paragraph_link.png"/>
|
||||
</div>
|
||||
|
||||
Works for all headlines and for many documentation section titles.
|
||||
|
||||
### Installation
|
||||
|
||||
1. Add the required resources in your `Doxyfile`:
|
||||
- **HTML_EXTRA_FILES:** `doxygen-awesome-paragraph-link.js`
|
||||
2. In the `header.html` template, include `doxygen-awesome-paragraph-link.js` at the end of the `<head>` and then initialize it:
|
||||
```html
|
||||
<html>
|
||||
<head>
|
||||
<!-- ... other metadata & script includes ... -->
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-paragraph-link.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeParagraphLink.init()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
```
|
||||
|
||||
### Customizing
|
||||
|
||||
The button tooltip can be changed:
|
||||
```js
|
||||
DoxygenAwesomeParagraphLink.title = "Abschnitt verknüpfen"
|
||||
```
|
||||
|
||||
The icon of the button can be changed. Both plain characters or SVG icons are supported:
|
||||
```js
|
||||
DoxygenAwesomeParagraphLink.icon = "¶"
|
||||
```
|
||||
|
||||
All customizations must be applied before calling `DoxygenAwesomeParagraphLink.init()`!
|
||||
|
||||
## Interactive TOC {#extension-toc}
|
||||
|
||||
On large screens the Table of Contents (TOC) is anchored on the top right of the page. This extension visualizes the reading progress by dynamically highlighting the currently active section.
|
||||
|
||||
On small screens the extension hides the TOC by default. The user can open it manually when needed:
|
||||
|
||||
|
||||
<div class="darkmode_inverted_image bordered_image">
|
||||
<img width=380 src="interactive_toc_mobile.png" />
|
||||
</div>
|
||||
|
||||
### Installation
|
||||
|
||||
1. Add the required resources in your `Doxyfile`:
|
||||
- **HTML_EXTRA_FILES:** `doxygen-awesome-interactive-toc.js`
|
||||
2. In the `header.html` template, include `doxygen-awesome-interactive-toc.js` at the end of the `<head>` and then initialize it:
|
||||
```html
|
||||
<html>
|
||||
<head>
|
||||
<!-- ... other metadata & script includes ... -->
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-interactive-toc.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeInteractiveToc.init()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
```
|
||||
|
||||
### Customizing
|
||||
|
||||
The offset for when a headline is considered active can be changed. A smaller value means that the headline of the section must be closer to the top of the viewport before it is highlighted in the TOC:
|
||||
```js
|
||||
DoxygenAwesomeInteractiveToc.topOffset = 45
|
||||
```
|
||||
|
||||
Hiding the TOC on small screens can be disabled. It is still interactive and can be hidden by the user but will now be open by default:
|
||||
```js
|
||||
DoxygenAwesomeInteractiveToc.hideMobileMenu = false
|
||||
```
|
||||
|
||||
## Tabs {#extension-tabs}
|
||||
|
||||
@note Experimental feature! Please report bugs [here](https://github.com/jothepro/doxygen-awesome-css/issues).
|
||||
|
||||
|
||||
This extension allows to arrange list content in tabs:
|
||||
|
||||
<div class="tabbed">
|
||||
|
||||
- <span class="tab-title">Tab 1</span> This is the content of tab 1
|
||||
- <span class="tab-title">Tab 2</span> This is the content of tab 2
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
1. Add the required resources in your `Doxyfile`:
|
||||
- **HTML_EXTRA_FILES:** `doxygen-awesome-tabs.js`
|
||||
2. In the `header.html` template, include `doxygen-awesome-tabs.js` at the end of the `<head>` and then initialize it:
|
||||
```html
|
||||
<html>
|
||||
<head>
|
||||
<!-- ... other metadata & script includes ... -->
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-tabs.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeTabs.init()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
Each list that is supposed to be displayed as tabs has to be wrapped with the `tabbed` CSS class.
|
||||
Each item in the list must start with an element that has the class `tab-title`. It will then be used as tab title.
|
||||
|
||||
```md
|
||||
<div class="tabbed">
|
||||
|
||||
- <span class="tab-title">Tab 1</span> This is the content of tab 1
|
||||
- <span class="tab-title">Tab 2</span> This is the content of tab 2
|
||||
|
||||
</div>
|
||||
```
|
||||
|
||||
<span class="next_section_button">
|
||||
|
||||
Read Next: [Customization](customization.md)
|
||||
</span>
|
||||
BIN
doxygen-awesome/docs/img/darkmode_toggle.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
doxygen-awesome/docs/img/fancy_scrollbars_firefox.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
doxygen-awesome/docs/img/fancy_scrollbars_webkit.gif
Normal file
|
After Width: | Height: | Size: 5.4 MiB |
BIN
doxygen-awesome/docs/img/fragment_copy_button.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
doxygen-awesome/docs/img/interactive_toc_mobile.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
doxygen-awesome/docs/img/paragraph_link.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
124
doxygen-awesome/docs/tricks.md
Normal file
@ -0,0 +1,124 @@
|
||||
# Tips & Tricks
|
||||
|
||||
[TOC]
|
||||
|
||||
## Diagrams with Graphviz {#tricks-graphviz}
|
||||
|
||||
To get the best looking class diagrams for your documentation, generate them with Graphviz as vector graphics with transparent background:
|
||||
|
||||
```
|
||||
# Doxyfile
|
||||
HAVE_DOT = YES
|
||||
DOT_IMAGE_FORMAT = svg
|
||||
DOT_TRANSPARENT = YES
|
||||
```
|
||||
|
||||
In case `INTERACTIVE_SVG = YES` is set in the Doxyfile, all user-defined dotgraphs must be wrapped with the `interactive_dotgraph` CSS class in order for them to be rendered correctly:
|
||||
|
||||
```md
|
||||
<div class="interactive_dotgraph">
|
||||
|
||||
\dotfile graph.dot
|
||||
|
||||
</div>
|
||||
```
|
||||
|
||||
@note Both the default overflow scrolling behavior in this theme and the interactive editor enabled by `INTERACTIVE_SVG` are unsatisfying workarounds IMHO. Consider designing your graphs to be narrow enough to fit the page to avoid scrolling.
|
||||
|
||||
## Disable Dark Mode {#tricks-darkmode}
|
||||
|
||||
If you don't want the theme to automatically switch to dark mode depending on the browser preference,
|
||||
you can disable dark mode by adding the `light-mode` class to the html-tag in the header template:
|
||||
|
||||
```html
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" class="light-mode">
|
||||
```
|
||||
|
||||
The same can be done to always enable dark-mode:
|
||||
|
||||
```html
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" class="dark-mode">
|
||||
```
|
||||
|
||||
|
||||
@warning This only works if you don't use the dark-mode toggle extension.
|
||||
|
||||
## Choosing Sidebar Width {#tricks-sidebar}
|
||||
|
||||
If you have enabled the sidebar-only theme variant, make sure to carefully choose a proper width for your sidebar.
|
||||
It should be wide enough to hold the icon, project title and version number. If the content is too wide, it will be
|
||||
cut off.
|
||||
|
||||
```css
|
||||
html {
|
||||
/* Make sure sidebar is wide enough to contain the page title (logo + title + version) */
|
||||
--side-nav-fixed-width: 335px;
|
||||
}
|
||||
```
|
||||
|
||||
The chosen width should also be set in the Doxyfile:
|
||||
|
||||
```
|
||||
# Doxyfile
|
||||
TREEVIEW_WIDTH = 335
|
||||
```
|
||||
|
||||
## Formatting Tables {#tricks-tables}
|
||||
|
||||
By default tables in this theme are left-aligned and as wide as required to fit their content.
|
||||
Those properties can be changed for individual tables.
|
||||
|
||||
### Centering
|
||||
|
||||
Tables can be centered by wrapping them in the `<center>` HTML-tag.
|
||||
|
||||
<div class="tabbed">
|
||||
|
||||
- <span class="tab-title">Code</span>
|
||||
```md
|
||||
<center>
|
||||
| This table | is centered |
|
||||
|------------|----------------------|
|
||||
| test 1 | test 2 |
|
||||
</center>
|
||||
```
|
||||
- <span class="tab-title">Result</span>
|
||||
<center>
|
||||
| This table | is centered |
|
||||
|------------|----------------------|
|
||||
| test 1 | test 2 |
|
||||
</center>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
### Full Width
|
||||
|
||||
To make tables span the full width of the page, no matter how wide the content is, wrap the table in the `full_width_table` CSS class.
|
||||
|
||||
@warning Apply with caution! This breaks the overflow scrolling of the table. Content might be cut of on small screens!
|
||||
|
||||
<div class="tabbed">
|
||||
|
||||
- <span class="tab-title">Code</span>
|
||||
```md
|
||||
<div class="full_width_table">
|
||||
| This table | spans the full width |
|
||||
|------------|----------------------|
|
||||
| test 1 | test 2 |
|
||||
</div>
|
||||
```
|
||||
- <span class="tab-title">Result</span>
|
||||
<div class="full_width_table">
|
||||
| This table | spans the full width |
|
||||
|------------|----------------------|
|
||||
| test 1 | test 2 |
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<span class="next_section_button">
|
||||
|
||||
Read Next: [Example](https://jothepro.github.io/doxygen-awesome-css/class_my_library_1_1_example.html)
|
||||
</span>
|
||||
157
doxygen-awesome/doxygen-awesome-darkmode-toggle.js
Normal file
@ -0,0 +1,157 @@
|
||||
/**
|
||||
|
||||
Doxygen Awesome
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 - 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
class DoxygenAwesomeDarkModeToggle extends HTMLElement {
|
||||
// SVG icons from https://fonts.google.com/icons
|
||||
// Licensed under the Apache 2.0 license:
|
||||
// https://www.apache.org/licenses/LICENSE-2.0.html
|
||||
static lightModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FCBF00"><rect fill="none" height="24" width="24"/><circle cx="12" cy="12" opacity=".3" r="3"/><path d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg>`
|
||||
static darkModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FE9700"><rect fill="none" height="24" width="24"/><path d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27 C17.45,17.19,14.93,19,12,19c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z" opacity=".3"/><path d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg>`
|
||||
static title = "Toggle Light/Dark Mode"
|
||||
|
||||
static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode"
|
||||
static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode"
|
||||
|
||||
static _staticConstructor = function() {
|
||||
DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.userPreference)
|
||||
// Update the color scheme when the browsers preference changes
|
||||
// without user interaction on the website.
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
|
||||
DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged()
|
||||
})
|
||||
// Update the color scheme when the tab is made visible again.
|
||||
// It is possible that the appearance was changed in another tab
|
||||
// while this tab was in the background.
|
||||
document.addEventListener("visibilitychange", visibilityState => {
|
||||
if (document.visibilityState === 'visible') {
|
||||
DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged()
|
||||
}
|
||||
});
|
||||
}()
|
||||
|
||||
static init() {
|
||||
$(function() {
|
||||
$(document).ready(function() {
|
||||
const toggleButton = document.createElement('doxygen-awesome-dark-mode-toggle')
|
||||
toggleButton.title = DoxygenAwesomeDarkModeToggle.title
|
||||
toggleButton.updateIcon()
|
||||
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
|
||||
toggleButton.updateIcon()
|
||||
})
|
||||
document.addEventListener("visibilitychange", visibilityState => {
|
||||
if (document.visibilityState === 'visible') {
|
||||
toggleButton.updateIcon()
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function(){
|
||||
document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
|
||||
})
|
||||
$(window).resize(function(){
|
||||
document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.onclick=this.toggleDarkMode
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns `true` for dark-mode, `false` for light-mode system preference
|
||||
*/
|
||||
static get systemPreference() {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns `true` for dark-mode, `false` for light-mode user preference
|
||||
*/
|
||||
static get userPreference() {
|
||||
return (!DoxygenAwesomeDarkModeToggle.systemPreference && localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey)) ||
|
||||
(DoxygenAwesomeDarkModeToggle.systemPreference && !localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey))
|
||||
}
|
||||
|
||||
static set userPreference(userPreference) {
|
||||
DoxygenAwesomeDarkModeToggle.darkModeEnabled = userPreference
|
||||
if(!userPreference) {
|
||||
if(DoxygenAwesomeDarkModeToggle.systemPreference) {
|
||||
localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey, true)
|
||||
} else {
|
||||
localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey)
|
||||
}
|
||||
} else {
|
||||
if(!DoxygenAwesomeDarkModeToggle.systemPreference) {
|
||||
localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey, true)
|
||||
} else {
|
||||
localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey)
|
||||
}
|
||||
}
|
||||
DoxygenAwesomeDarkModeToggle.onUserPreferenceChanged()
|
||||
}
|
||||
|
||||
static enableDarkMode(enable) {
|
||||
if(enable) {
|
||||
DoxygenAwesomeDarkModeToggle.darkModeEnabled = true
|
||||
document.documentElement.classList.add("dark-mode")
|
||||
document.documentElement.classList.remove("light-mode")
|
||||
} else {
|
||||
DoxygenAwesomeDarkModeToggle.darkModeEnabled = false
|
||||
document.documentElement.classList.remove("dark-mode")
|
||||
document.documentElement.classList.add("light-mode")
|
||||
}
|
||||
}
|
||||
|
||||
static onSystemPreferenceChanged() {
|
||||
DoxygenAwesomeDarkModeToggle.darkModeEnabled = DoxygenAwesomeDarkModeToggle.userPreference
|
||||
DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled)
|
||||
}
|
||||
|
||||
static onUserPreferenceChanged() {
|
||||
DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled)
|
||||
}
|
||||
|
||||
toggleDarkMode() {
|
||||
DoxygenAwesomeDarkModeToggle.userPreference = !DoxygenAwesomeDarkModeToggle.userPreference
|
||||
this.updateIcon()
|
||||
}
|
||||
|
||||
updateIcon() {
|
||||
if(DoxygenAwesomeDarkModeToggle.darkModeEnabled) {
|
||||
this.innerHTML = DoxygenAwesomeDarkModeToggle.darkModeIcon
|
||||
} else {
|
||||
this.innerHTML = DoxygenAwesomeDarkModeToggle.lightModeIcon
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("doxygen-awesome-dark-mode-toggle", DoxygenAwesomeDarkModeToggle);
|
||||
85
doxygen-awesome/doxygen-awesome-fragment-copy-button.js
Normal file
@ -0,0 +1,85 @@
|
||||
/**
|
||||
|
||||
Doxygen Awesome
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 - 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
class DoxygenAwesomeFragmentCopyButton extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.onclick=this.copyContent
|
||||
}
|
||||
static title = "Copy to clipboard"
|
||||
static copyIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>`
|
||||
static successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/></svg>`
|
||||
static successDuration = 980
|
||||
static init() {
|
||||
$(function() {
|
||||
$(document).ready(function() {
|
||||
if(navigator.clipboard) {
|
||||
const fragments = document.getElementsByClassName("fragment")
|
||||
for(const fragment of fragments) {
|
||||
const fragmentWrapper = document.createElement("div")
|
||||
fragmentWrapper.className = "doxygen-awesome-fragment-wrapper"
|
||||
const fragmentCopyButton = document.createElement("doxygen-awesome-fragment-copy-button")
|
||||
fragmentCopyButton.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon
|
||||
fragmentCopyButton.title = DoxygenAwesomeFragmentCopyButton.title
|
||||
|
||||
fragment.parentNode.replaceChild(fragmentWrapper, fragment)
|
||||
fragmentWrapper.appendChild(fragment)
|
||||
fragmentWrapper.appendChild(fragmentCopyButton)
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
copyContent() {
|
||||
const content = this.previousSibling.cloneNode(true)
|
||||
// filter out line number from file listings
|
||||
content.querySelectorAll(".lineno, .ttc").forEach((node) => {
|
||||
node.remove()
|
||||
})
|
||||
let textContent = content.textContent
|
||||
// remove trailing newlines that appear in file listings
|
||||
let numberOfTrailingNewlines = 0
|
||||
while(textContent.charAt(textContent.length - (numberOfTrailingNewlines + 1)) == '\n') {
|
||||
numberOfTrailingNewlines++;
|
||||
}
|
||||
textContent = textContent.substring(0, textContent.length - numberOfTrailingNewlines)
|
||||
navigator.clipboard.writeText(textContent);
|
||||
this.classList.add("success")
|
||||
this.innerHTML = DoxygenAwesomeFragmentCopyButton.successIcon
|
||||
window.setTimeout(() => {
|
||||
this.classList.remove("success")
|
||||
this.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon
|
||||
}, DoxygenAwesomeFragmentCopyButton.successDuration);
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("doxygen-awesome-fragment-copy-button", DoxygenAwesomeFragmentCopyButton)
|
||||
81
doxygen-awesome/doxygen-awesome-interactive-toc.js
Normal file
@ -0,0 +1,81 @@
|
||||
/**
|
||||
|
||||
Doxygen Awesome
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 - 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
class DoxygenAwesomeInteractiveToc {
|
||||
static topOffset = 38
|
||||
static hideMobileMenu = true
|
||||
static headers = []
|
||||
|
||||
static init() {
|
||||
window.addEventListener("load", () => {
|
||||
let toc = document.querySelector(".contents > .toc")
|
||||
if(toc) {
|
||||
toc.classList.add("interactive")
|
||||
if(!DoxygenAwesomeInteractiveToc.hideMobileMenu) {
|
||||
toc.classList.add("open")
|
||||
}
|
||||
document.querySelector(".contents > .toc > h3")?.addEventListener("click", () => {
|
||||
if(toc.classList.contains("open")) {
|
||||
toc.classList.remove("open")
|
||||
} else {
|
||||
toc.classList.add("open")
|
||||
}
|
||||
})
|
||||
|
||||
document.querySelectorAll(".contents > .toc > ul a").forEach((node) => {
|
||||
let id = node.getAttribute("href").substring(1)
|
||||
DoxygenAwesomeInteractiveToc.headers.push({
|
||||
node: node,
|
||||
headerNode: document.getElementById(id)
|
||||
})
|
||||
|
||||
document.getElementById("doc-content")?.addEventListener("scroll", () => {
|
||||
DoxygenAwesomeInteractiveToc.update()
|
||||
})
|
||||
})
|
||||
DoxygenAwesomeInteractiveToc.update()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
static update() {
|
||||
let active = DoxygenAwesomeInteractiveToc.headers[0]?.node
|
||||
DoxygenAwesomeInteractiveToc.headers.forEach((header) => {
|
||||
let position = header.headerNode.getBoundingClientRect().top
|
||||
header.node.classList.remove("active")
|
||||
header.node.classList.remove("aboveActive")
|
||||
if(position < DoxygenAwesomeInteractiveToc.topOffset) {
|
||||
active = header.node
|
||||
active?.classList.add("aboveActive")
|
||||
}
|
||||
})
|
||||
active?.classList.add("active")
|
||||
active?.classList.remove("aboveActive")
|
||||
}
|
||||
}
|
||||
51
doxygen-awesome/doxygen-awesome-paragraph-link.js
Normal file
@ -0,0 +1,51 @@
|
||||
/**
|
||||
|
||||
Doxygen Awesome
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 - 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
class DoxygenAwesomeParagraphLink {
|
||||
// Icon from https://fonts.google.com/icons
|
||||
// Licensed under the Apache 2.0 license:
|
||||
// https://www.apache.org/licenses/LICENSE-2.0.html
|
||||
static icon = `<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z"/></svg>`
|
||||
static title = "Permanent Link"
|
||||
static init() {
|
||||
$(function() {
|
||||
$(document).ready(function() {
|
||||
document.querySelectorAll(".contents a.anchor[id], .contents .groupheader > a[id]").forEach((node) => {
|
||||
let anchorlink = document.createElement("a")
|
||||
anchorlink.setAttribute("href", `#${node.getAttribute("id")}`)
|
||||
anchorlink.setAttribute("title", DoxygenAwesomeParagraphLink.title)
|
||||
anchorlink.classList.add("anchorlink")
|
||||
node.classList.add("anchor")
|
||||
anchorlink.innerHTML = DoxygenAwesomeParagraphLink.icon
|
||||
node.parentElement.appendChild(anchorlink)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
|
||||
/**
|
||||
|
||||
Doxygen Awesome
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 - 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
|
||||
#MSearchBox {
|
||||
width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px);
|
||||
}
|
||||
|
||||
#MSearchField {
|
||||
width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height));
|
||||
}
|
||||
}
|
||||
116
doxygen-awesome/doxygen-awesome-sidebar-only.css
Normal file
@ -0,0 +1,116 @@
|
||||
/**
|
||||
|
||||
Doxygen Awesome
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 - 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
html {
|
||||
/* side nav width. MUST be = `TREEVIEW_WIDTH`.
|
||||
* Make sure it is wide enough to contain the page title (logo + title + version)
|
||||
*/
|
||||
--side-nav-fixed-width: 335px;
|
||||
--menu-display: none;
|
||||
|
||||
--top-height: 120px;
|
||||
--toc-sticky-top: -25px;
|
||||
--toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 25px);
|
||||
}
|
||||
|
||||
#projectname {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
html {
|
||||
--searchbar-background: var(--page-background-color);
|
||||
}
|
||||
|
||||
#side-nav {
|
||||
min-width: var(--side-nav-fixed-width);
|
||||
max-width: var(--side-nav-fixed-width);
|
||||
top: var(--top-height);
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
#nav-tree, #side-nav {
|
||||
height: calc(100vh - var(--top-height)) !important;
|
||||
}
|
||||
|
||||
#nav-tree {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#top {
|
||||
display: block;
|
||||
border-bottom: none;
|
||||
height: var(--top-height);
|
||||
margin-bottom: calc(0px - var(--top-height));
|
||||
max-width: var(--side-nav-fixed-width);
|
||||
overflow: hidden;
|
||||
background: var(--side-nav-background);
|
||||
}
|
||||
#main-nav {
|
||||
float: left;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.ui-resizable-handle {
|
||||
cursor: default;
|
||||
width: 1px !important;
|
||||
background: var(--separator-color);
|
||||
box-shadow: 0 calc(-2 * var(--top-height)) 0 0 var(--separator-color);
|
||||
}
|
||||
|
||||
#nav-path {
|
||||
position: fixed;
|
||||
right: 0;
|
||||
left: var(--side-nav-fixed-width);
|
||||
bottom: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#doc-content {
|
||||
height: calc(100vh - 31px) !important;
|
||||
padding-bottom: calc(3 * var(--spacing-large));
|
||||
padding-top: calc(var(--top-height) - 80px);
|
||||
box-sizing: border-box;
|
||||
margin-left: var(--side-nav-fixed-width) !important;
|
||||
}
|
||||
|
||||
#MSearchBox {
|
||||
width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)));
|
||||
}
|
||||
|
||||
#MSearchField {
|
||||
width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px);
|
||||
}
|
||||
|
||||
#MSearchResultsWindow {
|
||||
left: var(--spacing-medium) !important;
|
||||
right: auto;
|
||||
}
|
||||
}
|
||||
70
doxygen-awesome/doxygen-awesome-tabs.js
Normal file
@ -0,0 +1,70 @@
|
||||
/**
|
||||
|
||||
Doxygen Awesome
|
||||
https://github.com/jothepro/doxygen-awesome-css
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 jothepro
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
class DoxygenAwesomeTabs {
|
||||
|
||||
static init() {
|
||||
window.addEventListener("load", () => {
|
||||
document.querySelectorAll(".tabbed:not(:empty)").forEach((tabbed, tabbedIndex) => {
|
||||
let tabLinkList = []
|
||||
tabbed.querySelectorAll("li").forEach((tab, tabIndex) => {
|
||||
tab.id = "tab_" + tabbedIndex + "_" + tabIndex
|
||||
let header = tab.querySelector(".tab-title")
|
||||
let tabLink = document.createElement("button")
|
||||
tabLink.classList.add("tab-button")
|
||||
tabLink.appendChild(header)
|
||||
tabLink.addEventListener("click", () => {
|
||||
tabbed.querySelectorAll("li").forEach((tab) => {
|
||||
tab.classList.remove("selected")
|
||||
})
|
||||
tabLinkList.forEach((tabLink) => {
|
||||
tabLink.classList.remove("active")
|
||||
})
|
||||
tab.classList.add("selected")
|
||||
tabLink.classList.add("active")
|
||||
})
|
||||
tabLinkList.push(tabLink)
|
||||
if(tabIndex == 0) {
|
||||
tab.classList.add("selected")
|
||||
tabLink.classList.add("active")
|
||||
}
|
||||
})
|
||||
let tabsOverview = document.createElement("div")
|
||||
tabsOverview.classList.add("tabs-overview")
|
||||
let tabsOverviewContainer = document.createElement("div")
|
||||
tabsOverviewContainer.classList.add("tabs-overview-container")
|
||||
tabLinkList.forEach((tabLink) => {
|
||||
tabsOverview.appendChild(tabLink)
|
||||
})
|
||||
tabsOverviewContainer.appendChild(tabsOverview)
|
||||
tabbed.before(tabsOverviewContainer)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
2530
doxygen-awesome/doxygen-awesome.css
Normal file
54
doxygen-awesome/doxygen-custom/custom-alternative.css
Normal file
@ -0,0 +1,54 @@
|
||||
html.alternative {
|
||||
/* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
|
||||
--primary-color: #AF7FE4;
|
||||
--primary-dark-color: #9270E4;
|
||||
--primary-light-color: #7aabd6;
|
||||
--primary-lighter-color: #cae1f1;
|
||||
--primary-lightest-color: #e9f1f8;
|
||||
|
||||
/* page base colors */
|
||||
--page-background-color: white;
|
||||
--page-foreground-color: #2c3e50;
|
||||
--page-secondary-foreground-color: #67727e;
|
||||
|
||||
|
||||
--border-radius-large: 22px;
|
||||
--border-radius-small: 9px;
|
||||
--border-radius-medium: 14px;
|
||||
--spacing-small: 8px;
|
||||
--spacing-medium: 14px;
|
||||
--spacing-large: 19px;
|
||||
|
||||
--top-height: 125px;
|
||||
|
||||
--side-nav-background: #324067;
|
||||
--side-nav-foreground: #F1FDFF;
|
||||
--header-foreground: var(--side-nav-foreground);
|
||||
--searchbar-background: var(--side-nav-foreground);
|
||||
--searchbar-border-radius: var(--border-radius-medium);
|
||||
--header-background: var(--side-nav-background);
|
||||
--header-foreground: var(--side-nav-foreground);
|
||||
|
||||
--toc-background: rgb(243, 240, 252);
|
||||
--toc-foreground: var(--page-foreground-color);
|
||||
}
|
||||
|
||||
html.alternative.dark-mode {
|
||||
color-scheme: dark;
|
||||
|
||||
--primary-color: #AF7FE4;
|
||||
--primary-dark-color: #9270E4;
|
||||
--primary-light-color: #4779ac;
|
||||
--primary-lighter-color: #191e21;
|
||||
--primary-lightest-color: #191a1c;
|
||||
|
||||
--page-background-color: #1C1D1F;
|
||||
--page-foreground-color: #d2dbde;
|
||||
--page-secondary-foreground-color: #859399;
|
||||
--separator-color: #3a3246;
|
||||
--side-nav-background: #171D32;
|
||||
--side-nav-foreground: #F1FDFF;
|
||||
--toc-background: #20142C;
|
||||
--searchbar-background: var(--page-background-color);
|
||||
|
||||
}
|
||||
101
doxygen-awesome/doxygen-custom/custom.css
Normal file
@ -0,0 +1,101 @@
|
||||
.github-corner svg {
|
||||
fill: var(--primary-light-color);
|
||||
color: var(--page-background-color);
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.github-corner svg {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
#projectnumber {
|
||||
margin-right: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.alter-theme-button {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
background: var(--primary-color);
|
||||
color: var(--page-background-color) !important;
|
||||
border-radius: var(--border-radius-medium);
|
||||
padding: var(--spacing-small) var(--spacing-medium);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.next_section_button {
|
||||
display: block;
|
||||
padding: var(--spacing-large) 0 var(--spacing-small) 0;
|
||||
color: var(--page-background-color);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.next_section_button::after {
|
||||
/* clearfix */
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.next_section_button a {
|
||||
overflow: hidden;
|
||||
float: right;
|
||||
border: 1px solid var(--separator-color);
|
||||
padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large);
|
||||
border-radius: var(--border-radius-medium);
|
||||
color: var(--page-secondary-foreground-color) !important;
|
||||
text-decoration: none;
|
||||
background-color: var(--page-background-color);
|
||||
transition: color .08s ease-in-out, background-color .1s ease-in-out;
|
||||
}
|
||||
|
||||
.next_section_button a:hover {
|
||||
color: var(--page-foreground-color) !important;
|
||||
background-color: var(--odd-color);
|
||||
}
|
||||
|
||||
.next_section_button a::after {
|
||||
content: '〉';
|
||||
color: var(--page-secondary-foreground-color) !important;
|
||||
padding-left: var(--spacing-large);
|
||||
display: inline-block;
|
||||
transition: color .08s ease-in-out, transform .09s ease-in-out;
|
||||
}
|
||||
|
||||
.next_section_button a:hover::after {
|
||||
color: var(--page-foreground-color) !important;
|
||||
transform: translateX(3px);
|
||||
}
|
||||
|
||||
.alter-theme-button:hover {
|
||||
background: var(--primary-dark-color);
|
||||
}
|
||||
|
||||
html.dark-mode .darkmode_inverted_image img, /* < doxygen 1.9.3 */
|
||||
html.dark-mode .darkmode_inverted_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ {
|
||||
filter: brightness(89%) hue-rotate(180deg) invert();
|
||||
}
|
||||
|
||||
.bordered_image {
|
||||
border-radius: var(--border-radius-small);
|
||||
border: 1px solid var(--separator-color);
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
html.dark-mode .bordered_image img, /* < doxygen 1.9.3 */
|
||||
html.dark-mode .bordered_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ {
|
||||
border-radius: var(--border-radius-small);
|
||||
}
|
||||
|
||||
.title_screenshot {
|
||||
filter: drop-shadow(0px 3px 10px rgba(0,0,0,0.22));
|
||||
max-width: 500px;
|
||||
margin: var(--spacing-large) 0;
|
||||
}
|
||||
|
||||
.title_screenshot .caption {
|
||||
display: none;
|
||||
}
|
||||
90
doxygen-awesome/doxygen-custom/header.html
Normal file
@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen $doxygenversion"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
|
||||
<!-- BEGIN opengraph metadata -->
|
||||
<meta property="og:title" content="Doxygen Awesome" />
|
||||
<meta property="og:image" content="https://repository-images.githubusercontent.com/348492097/4f16df80-88fb-11eb-9d31-4015ff22c452" />
|
||||
<meta property="og:description" content="Custom CSS theme for doxygen html-documentation with lots of customization parameters." />
|
||||
<meta property="og:url" content="https://jothepro.github.io/doxygen-awesome-css/" />
|
||||
<!-- END opengraph metadata -->
|
||||
|
||||
<!-- BEGIN twitter metadata -->
|
||||
<meta name="twitter:image:src" content="https://repository-images.githubusercontent.com/348492097/4f16df80-88fb-11eb-9d31-4015ff22c452" />
|
||||
<meta name="twitter:title" content="Doxygen Awesome" />
|
||||
<meta name="twitter:description" content="Custom CSS theme for doxygen html-documentation with lots of customization parameters." />
|
||||
<!-- END twitter metadata -->
|
||||
|
||||
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
|
||||
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
|
||||
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link rel="icon" type="image/svg+xml" href="logo.drawio.svg"/>
|
||||
<script type="text/javascript" src="$relpath^jquery.js"></script>
|
||||
<script type="text/javascript" src="$relpath^dynsections.js"></script>
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-paragraph-link.js"></script>
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-interactive-toc.js"></script>
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-tabs.js"></script>
|
||||
<script type="text/javascript" src="$relpath^toggle-alternative-theme.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeFragmentCopyButton.init()
|
||||
DoxygenAwesomeDarkModeToggle.init()
|
||||
DoxygenAwesomeParagraphLink.init()
|
||||
DoxygenAwesomeInteractiveToc.init()
|
||||
DoxygenAwesomeTabs.init()
|
||||
</script>
|
||||
$treeview
|
||||
$search
|
||||
$mathjax
|
||||
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
|
||||
$extrastylesheet
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- https://tholman.com/github-corners/ -->
|
||||
<a href="https://github.com/jothepro/doxygen-awesome-css" class="github-corner" title="View source on GitHub" target="_blank">
|
||||
<svg viewBox="0 0 250 250" width="40" height="40" style="position: absolute; top: 0; border: 0; right: 0; z-index: 99;" aria-hidden="true">
|
||||
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
|
||||
|
||||
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
|
||||
<!--BEGIN TITLEAREA-->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<!--BEGIN PROJECT_LOGO-->
|
||||
<td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
|
||||
<!--END PROJECT_LOGO-->
|
||||
<!--BEGIN PROJECT_NAME-->
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">$projectname
|
||||
<!--BEGIN PROJECT_NUMBER--> <span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
|
||||
</div>
|
||||
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
|
||||
</td>
|
||||
<!--END PROJECT_NAME-->
|
||||
<!--BEGIN !PROJECT_NAME-->
|
||||
<!--BEGIN PROJECT_BRIEF-->
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectbrief">$projectbrief</div>
|
||||
</td>
|
||||
<!--END PROJECT_BRIEF-->
|
||||
<!--END !PROJECT_NAME-->
|
||||
<!--BEGIN DISABLE_INDEX-->
|
||||
<!--BEGIN SEARCHENGINE-->
|
||||
<td>$searchbox</td>
|
||||
<!--END SEARCHENGINE-->
|
||||
<!--END DISABLE_INDEX-->
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--END TITLEAREA-->
|
||||
<!-- end header part -->
|
||||
12
doxygen-awesome/doxygen-custom/toggle-alternative-theme.js
Normal file
@ -0,0 +1,12 @@
|
||||
|
||||
let original_theme_active = true;
|
||||
|
||||
function toggle_alternative_theme() {
|
||||
if(original_theme_active) {
|
||||
document.documentElement.classList.add("alternative")
|
||||
original_theme_active = false;
|
||||
} else {
|
||||
document.documentElement.classList.remove("alternative")
|
||||
original_theme_active = true;
|
||||
}
|
||||
}
|
||||
BIN
doxygen-awesome/img/screenshot.png
Normal file
|
After Width: | Height: | Size: 211 KiB |
BIN
doxygen-awesome/img/testimage.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
250
doxygen-awesome/img/theme-variants.drawio.svg
Normal file
@ -0,0 +1,250 @@
|
||||
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1001px" height="312px" viewBox="-0.5 -0.5 1001 312" content="<mxfile><diagram id="6E4AiNPWWr3a8GvC3Ypl" name="Page-1">7VnLkps6EP0aqiaLUEgCGZbjV+4muYtJVdYakA11BfKV8diTr48E4imY2GPszCJQZUM3ep0+3TrYFlqkpy+C7OKvPKLMgk50stDSgtDFSH4qw6s2QLc0bEUSlSbQGJ6Sn1QbHW09JBHddx7MOWd5susaQ55lNMw7NiIEP3Yf23DWHXVHttQwPIWEmdYfSZTHpdX3nMb+D022cTUycLQnJdXD2rCPScSPLRNaWWghOM/Lq/S0oExhV+FStluPeOuJCZrlZzXwyhYvhB304iyImWw73+9IpmaYv+pl4/8PalrzDc/yzxuSJkyG71E+8pVmjFtwoS55RkJ9LVuQdCcb6HYLfhAJFdLzjR77zrJJyjMuxw1pYXGKkY4aSTVSxkVKWOHEdUO81d+smt34tPcFl1RXAO9Ogx0Ba7W25r7lr60VtHxkPaKqb4lj2X13SGkuwarN5dKy5736mpM9lQN+j2lKddTrycGcnlSbOE/lspZAXhKWbDN5HcoQSrTQ/IWKPJHke9SONIki1Xx+jJOcPpVwLY8y06RN8EMW0Uj3pWar00dGWt/rwQt/wtiCMy6KyaCNp079XMteHooTueD/0cqT8UxNg4hQj4Fgsfw+BTUr1TroqWXSlPxCeUpz8SofqbxYp4euD9DX98cm20CVbXEr05C2EZ3g27rrJgfkhU6DkZTw/6ZEryM4dUo8yfr9TMTnfzP2ekFqDNPvnvkykhdjedRKDTRNamDv96kBnVulRjCQGr2obSWiu/MXWm/S5LnqwXkTAA+YC3aDgQVDPMGKz1hwwyBnhGOjDJZUwSt1DnMjGMHMxOYuWFTAt8BYyHxQ850Wk1VxXotJ5Q1824NBc8w6+QOwjWdmBoHAxngAR4RshCaAEhhQ6pJYbhJFDX0WVfl8+J7kjBYutQd8Iy/JluQJzz5dh3yvbK1n6rwLSwHE9gzeiqjQQHctFXWxzz7MBSVRKA7pbn8lejdC6dRGyAVoFiDgINdD3bov3bhzGCRGGNlw5vkYOtgPsOcNbAqKzu0DT4A+MrlN5UYYv4E2uAbt3qYMsToni4IsD60o+N3q4YJuEMxKAhxgV41dX4YjMKMA+qH0J4iCO7BzdeRgWEPWyL0KPEMB6gI0ovneJ9za1aen5Rjd5O9Xck5XyUHnPmQAYDiM7ZREdpsLPh7IyVuwAZpbtxG1Urj1cWwUrH+RgD1f191Fu+Dfr3+i2r9lZL/XnUgIcpJk6q1kOUzCOjAfROOZVePuEu8CSNoSr7s9uq7tny/rgO/ZYAJZZ+qOom6Wsu6hkW21kis3xmlV3HK1Wq7XF+qTCXlYQA9mgVt9Xo/rgKKo1fLDh1LDF+D4JlML9Ydux1TzZ98/rZAvR86QwIEB4yBBbyF6ZyZDP4jmvbycohnovnl0VU4/vaFJ3j+kecd/uP0red+7tWK7eHUEFSHgpWS4k+SVt82/ZoWv9dcjWv0C</diagram></mxfile>">
|
||||
<defs/>
|
||||
<g>
|
||||
<rect x="160" y="280" width="150" height="30" rx="9.6" ry="9.6" fill="#f5f5f5" stroke="none" pointer-events="all"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 295px; margin-left: 161px;">
|
||||
<div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
|
||||
<span style="font-family: Menlo, Monaco, "Courier New", monospace; font-weight: normal;">
|
||||
<font style="font-size: 16px;">
|
||||
1️⃣
|
||||
</font>
|
||||
</span>
|
||||
Base Theme
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="235" y="300" fill="#333333" font-family="Helvetica" font-size="15px" text-anchor="middle" font-weight="bold">
|
||||
1️⃣ Base Theme
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="650" y="280" width="200" height="30" rx="9.9" ry="9.9" fill="#f5f5f5" stroke="none" pointer-events="all"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 295px; margin-left: 651px;">
|
||||
<div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
|
||||
<span style="font-family: Menlo, Monaco, "Courier New", monospace; font-weight: normal;">
|
||||
<font style="font-size: 16px;">
|
||||
2️⃣
|
||||
</font>
|
||||
</span>
|
||||
Sidebar-Only Theme
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="750" y="300" fill="#333333" font-family="Helvetica" font-size="15px" text-anchor="middle" font-weight="bold">
|
||||
2️⃣ Sidebar-Only Theme
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="510" y="0" width="490" height="260" fill="rgb(255, 255, 255)" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<rect x="708.53" y="16.67" width="219.66" height="233.33" fill="rgb(255, 255, 255)" stroke="#e3e3e3" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 133px; margin-left: 710px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="818" y="137" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Content
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="510" y="0" width="126.72" height="260" fill="#f7f7f7" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 125px; height: 1px; padding-top: 130px; margin-left: 511px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Sidebar
|
||||
<br/>
|
||||
(Title + Navigation)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="573" y="134" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Sidebar...
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="636.72" y="226.67" width="363.28" height="33.33" fill="rgb(255, 255, 255)" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 361px; height: 1px; padding-top: 243px; margin-left: 638px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Footer (Breadcrumps)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="818" y="247" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Footer (Breadcrumps)
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="522.67" y="41.67" width="101.38" height="16.67" rx="2.5" ry="2.5" fill="rgb(255, 255, 255)" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 99px; height: 1px; padding-top: 50px; margin-left: 524px;">
|
||||
<div data-drawio-colors="color: #262626; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(38, 38, 38); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Search
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="573" y="54" fill="#262626" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Search
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 32px; height: 1px; padding-top: 20px; margin-left: 525px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;">
|
||||
<div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
<font color="#262626">
|
||||
Title
|
||||
</font>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="525" y="26" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="20px">
|
||||
Tit...
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="0" y="0" width="490" height="260" fill="rgb(255, 255, 255)" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<rect x="198.53" y="44.87" width="219.66" height="185.13" fill="rgb(255, 255, 255)" stroke="#e3e3e3" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 137px; margin-left: 200px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="308" y="141" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Content
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="0" y="0" width="490" height="44.87" fill="#deedff" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 488px; height: 1px; padding-top: 22px; margin-left: 1px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Titlebar (Navigation + Search)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="245" y="26" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Titlebar (Navigation + Search)
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="0" y="44.87" width="126.73" height="185.13" fill="#f7f7f7" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 125px; height: 1px; padding-top: 137px; margin-left: 1px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Sidebar (Navigation)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="63" y="141" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Sidebar (Navigation)
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="0" y="226.67" width="490" height="33.33" fill="rgb(255, 255, 255)" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 488px; height: 1px; padding-top: 243px; margin-left: 1px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Footer (Breadcrumps)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="245" y="247" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Footer (Breadcrumps)
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect x="371.72" y="14.87" width="101.38" height="16.67" rx="2.5" ry="2.5" fill="rgb(255, 255, 255)" stroke="#6e6e6e" pointer-events="none"/>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 99px; height: 1px; padding-top: 23px; margin-left: 373px;">
|
||||
<div data-drawio-colors="color: #262626; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
|
||||
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(38, 38, 38); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
Search
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="422" y="27" fill="#262626" font-family="Helvetica" font-size="12px" text-anchor="middle">
|
||||
Search
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<g transform="translate(-0.5 -0.5)scale(0.9999999999999999)">
|
||||
<switch>
|
||||
<foreignObject pointer-events="none" width="101%" height="101%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 32px; height: 1px; padding-top: 23px; margin-left: 19px;">
|
||||
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;">
|
||||
<div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">
|
||||
<font color="#262626">
|
||||
Title
|
||||
</font>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text x="19" y="29" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="20px">
|
||||
Tit...
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
</g>
|
||||
<switch>
|
||||
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
|
||||
<a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
|
||||
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
|
||||
Text is not SVG - cannot display
|
||||
</text>
|
||||
</a>
|
||||
</switch>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 20 KiB |
156
doxygen-awesome/include/MyLibrary/example.hpp
Normal file
@ -0,0 +1,156 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
|
||||
namespace MyLibrary {
|
||||
|
||||
enum Color { red, green, blue };
|
||||
|
||||
/**
|
||||
* @brief Example class to demonstrate the features of the custom CSS.
|
||||
*
|
||||
* @author jothepro
|
||||
*
|
||||
*/
|
||||
class Example {
|
||||
public:
|
||||
/**
|
||||
* @brief brief summary
|
||||
*
|
||||
* doxygen test documentation
|
||||
*
|
||||
* @param test this is the only parameter of this test function. It does nothing!
|
||||
*
|
||||
* # Supported elements
|
||||
*
|
||||
* These elements have been tested with the custom CSS.
|
||||
*
|
||||
* ## Tables
|
||||
*
|
||||
* The table content is scrollable if the table gets too wide.
|
||||
*
|
||||
* | first_column | second_column | third_column | fourth_column | fifth_column | sixth_column | seventh_column | eighth_column | ninth_column |
|
||||
* |--------------|---------------|--------------|---------------|--------------|--------------|----------------|---------------|--------------|
|
||||
* | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
||||
*
|
||||
* A table can contain images:
|
||||
*
|
||||
* | Column 1 | Column 2 |
|
||||
* |---------------------------|-------------------------------------------------|
|
||||
* |  | ← the image should not be inverted in dark-mode |
|
||||
*
|
||||
* Complex [Doxygen tables](https://www.doxygen.nl/manual/tables.html) are also supported as seen in @ref multi_row "this example":
|
||||
*
|
||||
* <table>
|
||||
* <caption id="multi_row">Complex table</caption>
|
||||
* <tr><th>Column 1 <th>Column 2 <th>Column 3
|
||||
* <tr><td rowspan="2">cell row=1+2,col=1<td>cell row=1,col=2<td>cell row=1,col=3
|
||||
* <tr><td rowspan="2">cell row=2+3,col=2 <td>cell row=2,col=3
|
||||
* <tr><td>cell row=3,col=1 <td rowspan="2">cell row=3+4,col=3
|
||||
* <tr><td colspan="2">cell row=4,col=1+2
|
||||
* <tr><td>cell row=5,col=1 <td colspan="2">cell row=5,col=2+3
|
||||
* <tr><td colspan="2" rowspan="2">cell row=6+7,col=1+2 <td>cell row=6,col=3
|
||||
* <tr> <td>cell row=7,col=3
|
||||
* <tr><td>cell row=8,col=1 <td>cell row=8,col=2\n
|
||||
* <table>
|
||||
* <tr><td>Inner cell row=1,col=1<td>Inner cell row=1,col=2
|
||||
* <tr><td>Inner cell row=2,col=1<td>Inner cell row=2,col=2
|
||||
* </table>
|
||||
* <td>cell row=8,col=3
|
||||
* <ul>
|
||||
* <li>Item 1
|
||||
* <li>Item 2
|
||||
* </ul>
|
||||
* </table>
|
||||
*
|
||||
* A table can be centered with the `<center>` html tag:
|
||||
* <center>
|
||||
* | Foo | Bar | Baz | FooBar |
|
||||
* |-------------|----------------|---------------------------|-------------|
|
||||
* | Lorem imsum | dolor sit amet | cenectetur adipisici elit | At vero eos |
|
||||
* </center>
|
||||
*
|
||||
* Embedded Graphviz graphs support dark mode and can be scrolled once they get too wide:
|
||||
* \dot Graphviz with a caption
|
||||
* digraph example {
|
||||
* node [fontsize="12"];
|
||||
* rankdir="LR"
|
||||
* a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k;
|
||||
* }
|
||||
* \enddot
|
||||
*
|
||||
* ## Lists
|
||||
*
|
||||
* - element 1
|
||||
* - element 2
|
||||
*
|
||||
* 1. element 1
|
||||
* ```
|
||||
* code in lists
|
||||
* ```
|
||||
* 2. element 2
|
||||
*
|
||||
* ## Quotes
|
||||
*
|
||||
* > Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
|
||||
* > ut labore et dolore magna aliqua. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque viverra.
|
||||
* > Velit sed ullamcorper morbi tincidunt ornare.
|
||||
* >
|
||||
* > Lorem ipsum dolor sit amet consectetur adipiscing elit duis.
|
||||
* *- jothepro*
|
||||
*
|
||||
* ## Code block
|
||||
*
|
||||
* ```cpp
|
||||
* auto x = "code within md fences";
|
||||
* ```
|
||||
*
|
||||
* @code{.cpp}
|
||||
* // code within @code block
|
||||
* while(true) {
|
||||
* auto example = std::make_shared<Example>(5);
|
||||
* example->test("test");
|
||||
* }
|
||||
* @endcode
|
||||
*
|
||||
* // code within indented code block
|
||||
* auto test = std::shared_ptr<Example(5);
|
||||
*
|
||||
*
|
||||
* Inline `code` elements in a text. *Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.* This also works within multiline text and does not break the `layout`.
|
||||
*
|
||||
*
|
||||
* ## Special hints
|
||||
*
|
||||
* @warning this is a warning only for demonstration purposes
|
||||
*
|
||||
* @note this is a note to show that notes work. They can also include `code`:
|
||||
* @code{.c}
|
||||
* void this_looks_awesome();
|
||||
* @endcode
|
||||
*
|
||||
* @bug example bug
|
||||
*
|
||||
* @deprecated None of this will be deprecated, because it's beautiful!
|
||||
*
|
||||
* @invariant This is an invariant
|
||||
*
|
||||
* @pre This is a precondition
|
||||
*
|
||||
* @post This is a postcondition
|
||||
*
|
||||
* @todo This theme is never finished!
|
||||
*
|
||||
* @remark This is awesome!
|
||||
*
|
||||
*/
|
||||
std::string test(const std::string& test);
|
||||
|
||||
virtual int virtualfunc() = 0;
|
||||
|
||||
static bool staticfunc();
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
46
doxygen-awesome/include/MyLibrary/subclass-example.hpp
Normal file
@ -0,0 +1,46 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
#include "example.hpp"
|
||||
#include <iostream>
|
||||
|
||||
namespace MyLibrary {
|
||||
|
||||
/**
|
||||
* @brief some subclass
|
||||
*/
|
||||
template<typename TemplatedClass>
|
||||
class SubclassExample : public Example {
|
||||
public:
|
||||
|
||||
/**
|
||||
* @bug second bug
|
||||
* @return
|
||||
*/
|
||||
int virtualfunc() override;
|
||||
|
||||
/**
|
||||
* @brief Template function function
|
||||
*/
|
||||
template <typename T>
|
||||
std::shared_ptr<std::string> function_template_test(std::shared_ptr<T>& param);
|
||||
|
||||
/**
|
||||
* @brief Extra long function with lots of parameters and many template types.
|
||||
*
|
||||
* Also has a long return type.
|
||||
*
|
||||
* @param param1 first parameter
|
||||
* @param param2 second parameter
|
||||
* @param parameter3 third parameter
|
||||
*/
|
||||
template <typename T, typename Foo, typename Bar, typename Alice, typename Bob, typename Charlie, typename Hello, typename World>
|
||||
std::pair<std::string, std::string> long_function_with_many_parameters(std::shared_ptr<T>& param1, std::shared_ptr<std::string>& param2, bool parameter3, Alice paramater4 Bob parameter 5) {
|
||||
if(true) {
|
||||
std::cout << "this even has some code." << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
1
doxygen-awesome/logo.drawio.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="61px" height="74px" viewBox="-0.5 -0.5 61 74" content="<mxfile host="drawio-plugin" modified="2021-03-16T23:58:23.462Z" agent="5.0 (Macintosh; Intel Mac OS X 10_16_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36" version="13.7.9" etag="JoeaGLJ54FcERO7YrWLQ" type="embed"><diagram id="JMB9aH8b_oZ7EWDuqJgx" name="Page-1">7VdNc5swEP01HDsjkGPDsSVJe+lMZnzoWYENaAwsI8ux6a+vCCtA4KSu62kmSS+M9LT7tB9P0uDxuDx8VaLOv2MKhRew9ODxay8Igigy3xZoCOC8AzIl0w7yB2AtfwKBjNCdTGHrGGrEQsvaBROsKki0gwmlcO+aPWDh7lqLDGbAOhHFHP0hU513aHjFBvwbyCy3O/uMVkphjQnY5iLF/QjiNx6PFaLuRuUhhqKtna1L53f7zGofmIJKn+RAcTyKYkfJUWC6sdlmCnc1mYHScDhWY3Fvzdk8Br/PzCgCsAStGmNCRJy2JDH4pIV8VMG+edS4rCcZcjMDSu+ZVP3fpwpV+rnVh5ndF5hsPP4l16VhvPbN8AErTWI0re7mMRaonpw5Y8tlHBvcsNzKwnpttVDaslZYgcXIhj3NFW56LS1bbrM44l6m4Wq5MLhxzEDfgZKmAKDWtUhklRFNgqVM7LYb0Enu8I9j9dkVC80KtgS6Lb3fGnYVgXSm/1Ez2fFu7oeTYA/CuIUWU1AILR9d/mN9pR3uUJqde7F88leOWhYLl2GLO5UAOY2FP+GxMm3c6CwNlXlKY9oompFZ3Rps59EOkuw8BoH2BTtNs8EfaZbUdYZkXQGuXhDgR9DYRBycXURj00D+UmMT2ktJLnr9B8HG0IzFcPkHYfUe3oPZqfOjMEiDs1+KEw5n9P/+/1f3f/gq1394lt7erqQ+0HVvpsPPRWc+/KHxm18=</diagram></mxfile>"><defs/><g><path d="M 13 57 L 13.01 57.01 L 15.87 50.14 L 18.37 43.14 L 20.91 36.15 L 23.67 29.25 L 26.4 22.33 Q 30 13 33.71 22.28 L 33.55 22.22 L 35.48 26.91 L 37.49 31.64 L 39.48 36.36 L 41.2 40.97 L 43.05 45.63" fill="none" stroke="#010508" stroke-opacity="0.1" stroke-width="6" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 47.51 56.77 L 47.65 56.93 L 45.43 54.91 L 43.41 53.11 L 41.43 51.35 L 39.63 49.8 L 37.48 47.86 L 37.39 47.64 L 39.79 47.17 L 41.9 45.98 L 44.24 45.37 L 46.48 44.52 L 48.62 43.4 L 48.54 43.39 L 48.58 46.09 L 48.04 48.74 L 48.04 51.43 L 47.8 54.1 L 47.51 56.77 Z Z" fill-opacity="0.1" fill="#010508" stroke="#010508" stroke-opacity="0.1" stroke-width="6" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="all"/><path d="M 10 43 L 9.94 42.88 L 12.16 41.98 L 14.31 40.96 L 16.51 40.01 L 18.62 38.89 L 20.88 38.1 Q 30 34 40 34 L 40 33.75 L 42 33.83 L 44 33.8 L 46 33.79 L 48 34.05 L 50 34" fill="none" stroke="#010508" stroke-opacity="0.1" stroke-width="7" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 10 54 L 9.97 53.99 L 12.69 47.07 L 15.43 40.16 L 18.07 33.21 L 20.65 26.24 L 23.4 19.33 Q 27 10 30.71 19.28 L 30.66 19.26 L 32.46 23.91 L 34.55 28.66 L 36.26 33.27 L 38.35 38.03 L 40.05 42.63" fill="none" stroke="#1982d2" stroke-width="6" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 44.51 53.77 L 44.56 53.83 L 42.48 51.97 L 40.5 50.21 L 38.48 48.41 L 36.41 46.56 L 34.48 44.86 L 34.55 45.02 L 36.72 44 L 39 43.24 L 41.21 42.28 L 43.48 41.51 L 45.62 40.4 L 45.78 40.42 L 45.51 43.09 L 45.01 45.74 L 44.87 48.42 L 44.94 51.12 L 44.51 53.77 Z Z" fill="#1982d2" stroke="#1982d2" stroke-width="6" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="all"/><path d="M 7 40 L 7.02 40.05 L 9.28 39.25 L 11.33 38 L 13.48 36.96 L 15.73 36.14 L 17.88 35.1 Q 27 31 37 31 L 37 30.79 L 39 31.11 L 41 30.85 L 43 30.78 L 45 30.89 L 47 31" fill="none" stroke="#1982d2" stroke-width="8" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="stroke"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
34
doxygen-awesome/package.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "@jothepro/doxygen-awesome-css",
|
||||
"version": "2.2.1",
|
||||
"description": "Custom CSS theme for doxygen html-documentation with lots of customization parameters.",
|
||||
"main": "",
|
||||
"scripts": {
|
||||
"npm-pack": "npm pack",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jothepro/doxygen-awesome-css.git"
|
||||
},
|
||||
"homepage": "https://jothepro.github.io/doxygen-awesome-css/",
|
||||
"bugs": {
|
||||
"url": "https://github.com/jothepro/doxygen-awesome-css/issues"
|
||||
},
|
||||
"keywords": [
|
||||
"doxygen",
|
||||
"css",
|
||||
"theme",
|
||||
"awesome"
|
||||
],
|
||||
"author": {
|
||||
"name": "jothepro",
|
||||
"url": "https://github.com/jothepro",
|
||||
"git": "https://github.com/jothepro/doxygen-awesome-css"
|
||||
},
|
||||
"license": "MIT",
|
||||
"config": {},
|
||||
"dependencies": {},
|
||||
"devDependencies": {},
|
||||
"xpack": {}
|
||||
}
|
||||
133
include/IsingModel.hpp
Normal file
@ -0,0 +1,133 @@
|
||||
/** @file IsingModel.hpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 0.1
|
||||
*
|
||||
* @brief The definition of the Ising model.
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#ifndef __ISING_MODEL__
|
||||
#define __ISING_MODEL__
|
||||
|
||||
#include "constants.hpp"
|
||||
#include "data_type.hpp"
|
||||
#include "typedefs.hpp"
|
||||
#include "utils.hpp"
|
||||
|
||||
#include <armadillo>
|
||||
#include <random>
|
||||
#include <unordered_map>
|
||||
|
||||
// Faster modulo
|
||||
#define INDEX(I, N) (I + N) % N
|
||||
|
||||
// Indeces for the neighbor matrix.
|
||||
#define UP 0
|
||||
#define LEFT 0
|
||||
#define DOWN 1
|
||||
#define RIGHT 1
|
||||
|
||||
/** @brief The Ising model in 2 dimensions.
|
||||
*
|
||||
* @details None of the methods are parallelized, as there is very little
|
||||
* benefit in doing so.
|
||||
* */
|
||||
class IsingModel {
|
||||
private:
|
||||
friend class IsingModelTest;
|
||||
/** @brief \f$ L \times L \f$ matrix where element \f$ x \in {-1, 1}\f$.
|
||||
* */
|
||||
arma::Mat<int> lattice;
|
||||
|
||||
/** @brief \f$ L \times 2 \f$ matrix with the neighbors of each element
|
||||
* \f$ x_i \f$.
|
||||
*
|
||||
* @details The reason why it's \f$ L \times 2 \f$ instead of
|
||||
* \f$ L \times 2 \f$, is that we can see that we can use the same column
|
||||
* for the left and upper neighbor, and we can use the same column for the
|
||||
* right and lower neighbor.
|
||||
* */
|
||||
arma::Mat<uint> neighbors;
|
||||
|
||||
/** @brief A hash map containing all possible energy changes.
|
||||
* */
|
||||
std::unordered_map<int, double> energy_diff;
|
||||
|
||||
/** @brief The temperature of the model.
|
||||
* */
|
||||
double T;
|
||||
|
||||
/** @brief Size of the lattice.
|
||||
* */
|
||||
uint L;
|
||||
|
||||
/** @brief The current energy state. unit: \f$ J \f$.
|
||||
* */
|
||||
double E;
|
||||
|
||||
/** @brief The current magnetic strength. unit: Unitless.
|
||||
* */
|
||||
double M;
|
||||
|
||||
/** @brief Initialize the lattice with a random distribution of 1s and
|
||||
* -1s.
|
||||
* */
|
||||
void initialize_lattice();
|
||||
|
||||
/** @brief initialize the neighbors matrix.
|
||||
* */
|
||||
void initialize_neighbors();
|
||||
|
||||
/** @brief Initialize the hashmap with the correct values.
|
||||
* */
|
||||
void initialize_energy_diff();
|
||||
|
||||
/** @brief Initialize the magnetization.
|
||||
* */
|
||||
void initialize_magnetization();
|
||||
|
||||
/** @brief Initialize the energy.
|
||||
* */
|
||||
void initialize_energy();
|
||||
|
||||
/** @brief Constructor used for testing.
|
||||
* */
|
||||
IsingModel();
|
||||
|
||||
public:
|
||||
/** @brief Constructor for the Ising model.
|
||||
*
|
||||
* @param L The size of the lattice.
|
||||
* @param T The temperature for the system.
|
||||
* */
|
||||
IsingModel(uint L, double T);
|
||||
|
||||
/** @brief Constructor for the Ising model.
|
||||
*
|
||||
* @param L The size of the lattice.
|
||||
* @param T The temperature for the system.
|
||||
* @param val The value to set for all spins.
|
||||
* */
|
||||
IsingModel(uint L, double T, int val);
|
||||
|
||||
/** @brief The Metropolis algorithm.
|
||||
* */
|
||||
data_t Metropolis(std::mt19937 &engine);
|
||||
|
||||
/** @brief Get the current energy.
|
||||
*
|
||||
* @return double
|
||||
* */
|
||||
double get_E();
|
||||
|
||||
/** @brief Get the current magnetization.
|
||||
*
|
||||
* @return double
|
||||
* */
|
||||
double get_M();
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -12,4 +12,8 @@
|
||||
#ifndef __CONST__
|
||||
#define __CONST__
|
||||
|
||||
/** @brief Boltzmann constant. unit \f$ \frac{J}{K} \f$.
|
||||
* */
|
||||
#define k_B 1.380649e-23
|
||||
|
||||
#endif
|
||||
|
||||
78
include/data_type.hpp
Normal file
@ -0,0 +1,78 @@
|
||||
/** @file data_type.hpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 1.0
|
||||
*
|
||||
* @brief Header for the data_t type.
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#ifndef __DATA_TYPE__
|
||||
#define __DATA_TYPE__
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <type_traits>
|
||||
|
||||
/** @brief Data structure that contains the data needed for the project*/
|
||||
struct data_t {
|
||||
double E = 0.; ///< The expected energy
|
||||
double M = 0.; ///< The expected magnetization
|
||||
double E2 = 0.; ///< The expected variance of the energy
|
||||
double M2 = 0.; ///< The expected variance of magnetization
|
||||
double M_abs = 0.; ///< The expected absolute magnetization
|
||||
};
|
||||
|
||||
/** @brief Define dividing data_t by a number
|
||||
*
|
||||
* @param data The data to divide
|
||||
* @param num The number to divide data by
|
||||
*
|
||||
* @return data_t
|
||||
* */
|
||||
template <class T>
|
||||
data_t operator/(const data_t &data, T num);
|
||||
|
||||
// Explicit instantiation
|
||||
extern template data_t operator/(const data_t &, uint);
|
||||
extern template data_t operator/(const data_t &, ulong);
|
||||
extern template data_t operator/(const data_t &,int);
|
||||
extern template data_t operator/(const data_t &,double);
|
||||
|
||||
|
||||
/** @brief Define /= on data_t by a number.
|
||||
*
|
||||
* @param data The data to divide
|
||||
* @param num The number to divide data by
|
||||
*
|
||||
* @return data_t
|
||||
* */
|
||||
template <class T>
|
||||
data_t& operator/=(data_t &data, T num);
|
||||
|
||||
// Explicit instantiation
|
||||
extern template data_t& operator/=(data_t &, uint);
|
||||
extern template data_t& operator/=(data_t &, ulong);
|
||||
extern template data_t& operator/=(data_t &,int);
|
||||
extern template data_t& operator/=(data_t &,double);
|
||||
|
||||
/** @brief Define + on data_t by a data_t.
|
||||
*
|
||||
* @param a The left side
|
||||
* @param b The right side
|
||||
*
|
||||
* @return data_t
|
||||
* */
|
||||
data_t operator+(const data_t &a, const data_t &b);
|
||||
|
||||
/** @brief Define += on data_t by a data_t.
|
||||
*
|
||||
* @param a The left side
|
||||
* @param b The right side
|
||||
*
|
||||
* @return data_t
|
||||
* */
|
||||
data_t& operator+=(data_t &a, const data_t &b);
|
||||
|
||||
#endif
|
||||
99
include/monte_carlo.hpp
Normal file
@ -0,0 +1,99 @@
|
||||
/** @file monte_carlo.hpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 1.0
|
||||
*
|
||||
* @brief Functions for monte carlo simulations.
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#ifndef __MONTE_CARLO__
|
||||
#define __MONTE_CARLO__
|
||||
|
||||
#include "IsingModel.hpp"
|
||||
#include "data_type.hpp"
|
||||
#include "utils.hpp"
|
||||
|
||||
#include <functional>
|
||||
#include <string>
|
||||
|
||||
#define BURN_IN_TIME 1000
|
||||
|
||||
#define EPS_2 (-2 * std::sinh(8.)) / (std::cosh(8.) + 3)
|
||||
|
||||
#define MAG_2 (std::exp(8.) + 1) / (2 * cosh(8.) + 3)
|
||||
|
||||
#define CV_2 \
|
||||
16 \
|
||||
* (3 * std::cosh(8.) + std::cosh(8.) * std::cosh(8.) \
|
||||
- std::sinh(8.) * std::sinh(8.)) \
|
||||
/ ((std::cosh(8.) + 3) * (std::cosh(8.) + 3))
|
||||
|
||||
#define X_2 \
|
||||
(3 * std::exp(8.) + std::exp(-8.) + 3) \
|
||||
/ ((std::cosh(8.) + 3) * (std::cosh(8.) + 3))
|
||||
|
||||
/** @brief Test numerical data with analytical data.
|
||||
*
|
||||
* @param tol The tolerance between the analytical and numerical solution.
|
||||
* @param max_cycles The max number of Monte Carlo cycles.
|
||||
*
|
||||
* return uint
|
||||
* */
|
||||
uint test_2x2_lattice(double tol, uint max_cycles);
|
||||
|
||||
/** @brief Write the expected values for each Monte Carlo cycles to file.
|
||||
*
|
||||
* @param T Temperature
|
||||
* @param L The size of the lattice
|
||||
* @param cycles The amount of Monte Carlo cycles to do
|
||||
* @param filename The file to write to
|
||||
* */
|
||||
void monte_carlo_progression(double T, uint L, uint cycles,
|
||||
const std::string filename);
|
||||
|
||||
/** @brief Estimate the probability distribution for the energy.
|
||||
*
|
||||
* @param T The temperature of the Ising model
|
||||
* @param L The size of the lattice
|
||||
* @param cycles The amount of Monte Carlo cycles to do
|
||||
* @param filename The file to write to
|
||||
* */
|
||||
void pd_estimate(double T, uint L, uint cycles, const std::string filename);
|
||||
|
||||
/** @brief Execute the Metropolis algorithm for a certain amount of Monte
|
||||
* Carlo cycles.
|
||||
*
|
||||
* @param data The data to store the results
|
||||
* @param L The size of the lattice
|
||||
* @param T The Temperature for the Ising model
|
||||
* @param cycles The amount of Monte Carlo cycles to do*/
|
||||
void monte_carlo_serial(data_t &data, uint L, double T, uint cycles);
|
||||
|
||||
/** @brief Execute the Metropolis algorithm for a certain amount of Monte
|
||||
* Carlo cycles in parallel.
|
||||
*
|
||||
* @param data The data to store the results
|
||||
* @param L The size of the lattice
|
||||
* @param T The Temperature for the Ising model
|
||||
* @param cycles The amount of Monte Carlo cycles to do
|
||||
* */
|
||||
void monte_carlo_parallel(data_t &data, uint L, double T, uint cycles);
|
||||
|
||||
/** @brief Perform the MCMC algorithm using a range of temperatures.
|
||||
*
|
||||
* @param L The size of the lattice
|
||||
* @param start_T The start temperature
|
||||
* @param end_T The end temperature
|
||||
* @param point_T The amount of point to measure
|
||||
* @param monte_carlo Which Monte Carlo implementation to use
|
||||
* @param outfile The file to write the data to
|
||||
* */
|
||||
void phase_transition(
|
||||
uint L, double start_T, double end_T, uint points_T,
|
||||
std::function<void(data_t &, uint, double, uint)> monte_carlo,
|
||||
std::string outfile);
|
||||
|
||||
#endif
|
||||
@ -5,19 +5,21 @@
|
||||
*
|
||||
* @version 1.0
|
||||
*
|
||||
* @brief Function prototypes and macros that are useful.
|
||||
* @brief A small test library.
|
||||
*
|
||||
* This a small testing library that is tailored for the needs of the project.
|
||||
* @details This a small testing library that is tailored for the needs of the
|
||||
* project.
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#ifndef __TESTLIB__
|
||||
#define __TESTLIB__
|
||||
|
||||
#include "utils.hpp"
|
||||
|
||||
#include <armadillo>
|
||||
#include <string>
|
||||
|
||||
#include "utils.hpp"
|
||||
#include <type_traits>
|
||||
|
||||
/** @def ASSERT(expr)
|
||||
* @brief A prettier assertion function.
|
||||
@ -26,8 +28,9 @@
|
||||
* assertion function than the regular assert function from cassert.
|
||||
* */
|
||||
#define ASSERT(expr, msg) \
|
||||
m_assert(expr, #expr, __METHOD_NAME__, __FILE__, __LINE__, msg)
|
||||
details::m_assert(expr, #expr, __METHOD_NAME__, __FILE__, __LINE__, msg)
|
||||
|
||||
namespace details {
|
||||
/** @brief Test an expression, confirm that test is ok, or abort execution.
|
||||
*
|
||||
* @details This function takes in an expression and prints an OK message if
|
||||
@ -42,17 +45,93 @@
|
||||
* */
|
||||
void m_assert(bool expr, std::string expr_str, std::string func,
|
||||
std::string file, int line, std::string msg);
|
||||
} // namespace details
|
||||
|
||||
/** @brief Test if two armadillo vectors are close to each other.
|
||||
namespace testlib {
|
||||
/** @brief Test if two armadillo matrices/vectors are close to each other.
|
||||
*
|
||||
* @details This function takes in 2 vectors and checks if they are
|
||||
* @details This function takes in 2 matrices/vectors and checks if they are
|
||||
* approximately equal to each other given a tolerance.
|
||||
*
|
||||
* @param a Vector a
|
||||
* @param b Vector b
|
||||
* @param a Matrix/vector a
|
||||
* @param b Matrix/vector b
|
||||
* @param tol The tolerance
|
||||
*
|
||||
* @return bool
|
||||
* */
|
||||
bool close_to(arma::vec &a, arma::vec &b, double tol = 1e-8);
|
||||
template <class T,
|
||||
class = typename std::enable_if<std::is_arithmetic<T>::value>::type>
|
||||
static bool close_to(arma::Mat<T> &a, arma::Mat<T> &b, double tol = 1e-8)
|
||||
{
|
||||
if (a.n_elem != b.n_elem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < a.n_elem; i++) {
|
||||
if (!close_to(a(i), b(i))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** @brief Test if two numbers are close to each other.
|
||||
*
|
||||
* @details This function takes in 2 matrices/vectors and checks if they are
|
||||
* approximately equal to each other given a tolerance.
|
||||
*
|
||||
* @param a Matrix/vector a
|
||||
* @param b Matrix/vector b
|
||||
* @param tol The tolerance
|
||||
*
|
||||
* @return bool
|
||||
* */
|
||||
template <class T,
|
||||
class = typename std::enable_if<std::is_arithmetic<T>::value>::type>
|
||||
static bool close_to(T a, T b, double tol = 1e-8)
|
||||
{
|
||||
return std::abs(a - b) < tol;
|
||||
}
|
||||
|
||||
/** @brief Test if two armadillo matrices/vectors are equal.
|
||||
*
|
||||
* @details This function takes in 2 matrices/vectors and checks if they are
|
||||
* equal to each other. This should only be used for integral types.
|
||||
*
|
||||
* @param a Matrix/vector a
|
||||
* @param b Matrix/vector b
|
||||
*
|
||||
* @return bool
|
||||
* */
|
||||
template <class T,
|
||||
class = typename std::enable_if<std::is_integral<T>::value>::type>
|
||||
static bool is_equal(arma::Mat<T> &a, arma::Mat<T> &b)
|
||||
{
|
||||
for (size_t i = 0; i < a.n_elem; i++) {
|
||||
if (!(a(i) == b(i))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** @brief Test that all elements fulfill the condition.
|
||||
*
|
||||
* @param expr The boolean expression to apply to each element
|
||||
* @param M The matrix/vector to iterate over
|
||||
*
|
||||
* @return bool
|
||||
* */
|
||||
template <class T,
|
||||
class = typename std::enable_if<std::is_arithmetic<T>::value>::type>
|
||||
static bool assert_each(std::function<bool(T)> expr, arma::Mat<T> &M)
|
||||
{
|
||||
for (size_t i = 0; i < M.n_elem; i++) {
|
||||
if (!expr(M(i))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} // namespace testlib
|
||||
#endif
|
||||
|
||||
@ -40,7 +40,31 @@
|
||||
/** @def __METHOD_NAME__
|
||||
* @brief Get the name of the current method/function without the return type.
|
||||
* */
|
||||
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)
|
||||
#define __METHOD_NAME__ details::methodName(__PRETTY_FUNCTION__)
|
||||
|
||||
namespace details {
|
||||
/** @brief Takes in the __PRETTY_FUNCTION__ string and removes the return type.
|
||||
*
|
||||
* @details This function should only be used for the __METHOD_NAME__ macro,
|
||||
* since it takes the output from __PRETTY_FUNCTION__ and strips the return
|
||||
* type.
|
||||
*
|
||||
* @param pretty_function The string from __PRETTY_FUNCTION__
|
||||
*
|
||||
* @return std::string
|
||||
* */
|
||||
inline std::string methodName(const std::string &pretty_function)
|
||||
{
|
||||
size_t colons = pretty_function.find("::");
|
||||
size_t begin = pretty_function.substr(0, colons).rfind(" ") + 1;
|
||||
size_t end = pretty_function.rfind("(") - begin;
|
||||
|
||||
return pretty_function.substr(begin, end) + "()";
|
||||
}
|
||||
|
||||
} // namespace details
|
||||
|
||||
namespace utils {
|
||||
|
||||
/** @brief Turns a double into a string written in scientific format.
|
||||
*
|
||||
@ -68,26 +92,6 @@ std::string scientific_format(double d, int width = 20, int prec = 10);
|
||||
std::string scientific_format(const std::vector<double> &v, int width = 20,
|
||||
int prec = 10);
|
||||
|
||||
|
||||
/** @brief Takes in the __PRETTY_FUNCTION__ string and removes the return type.
|
||||
*
|
||||
* @details This function should only be used for the __METHOD_NAME__ macro,
|
||||
* since it takes the output from __PRETTY_FUNCTION__ and strips the return
|
||||
* type.
|
||||
*
|
||||
* @param pretty_function The string from __PRETTY_FUNCTION__
|
||||
*
|
||||
* @return std::string
|
||||
* */
|
||||
static inline std::string methodName(const std::string &pretty_function)
|
||||
{
|
||||
size_t colons = pretty_function.find("::");
|
||||
size_t begin = pretty_function.substr(0, colons).rfind(" ") + 1;
|
||||
size_t end = pretty_function.rfind("(") - begin;
|
||||
|
||||
return pretty_function.substr(begin, end) + "()";
|
||||
}
|
||||
|
||||
/** @brief Make path given.
|
||||
*
|
||||
* @details This tries to be the equivalent to "mkdir -p" and creates a new
|
||||
@ -100,4 +104,14 @@ static inline std::string methodName(const std::string &pretty_function)
|
||||
* */
|
||||
bool mkpath(std::string path, int mode = 0777);
|
||||
|
||||
/** @brief Get the directory name of the path
|
||||
*
|
||||
* @param path The path to use.
|
||||
*
|
||||
* @return string
|
||||
* */
|
||||
std::string dirname(const std::string &path);
|
||||
|
||||
} // namespace utils
|
||||
|
||||
#endif
|
||||
|
||||
BIN
latex/images/2x2_analysis.pdf
Normal file
BIN
latex/images/2x2_energy.pdf
Normal file
BIN
latex/images/2x2_heat_capacity.pdf
Normal file
BIN
latex/images/2x2_magnetization.pdf
Normal file
BIN
latex/images/2x2_susceptibility.pdf
Normal file
BIN
latex/images/burn_in_time_energy.pdf
Normal file
BIN
latex/images/burn_in_time_magnetization.pdf
Normal file
BIN
latex/images/pd_estimate_1_0.pdf
Normal file
BIN
latex/images/pd_estimate_2_4.pdf
Normal file
BIN
latex/images/phase_transition/narrow/10M/energy.pdf
Normal file
BIN
latex/images/phase_transition/narrow/10M/heat_capacity.pdf
Normal file
BIN
latex/images/phase_transition/narrow/10M/magnetization.pdf
Normal file
BIN
latex/images/phase_transition/narrow/10M/susceptibility.pdf
Normal file
BIN
latex/images/phase_transition/wide/10M/energy.pdf
Normal file
BIN
latex/images/phase_transition/wide/10M/heat_capacity.pdf
Normal file
BIN
latex/images/phase_transition/wide/10M/magnetization.pdf
Normal file
BIN
latex/images/phase_transition/wide/10M/susceptibility.pdf
Normal file
BIN
latex/images/phase_transition/wide/1M/energy.pdf
Normal file
BIN
latex/images/phase_transition/wide/1M/heat_capacity.pdf
Normal file
BIN
latex/images/phase_transition/wide/1M/magnetization.pdf
Normal file
BIN
latex/images/phase_transition/wide/1M/susceptibility.pdf
Normal file
142
src/IsingModel.cpp
Normal file
@ -0,0 +1,142 @@
|
||||
/** @file IsingModel.cpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 0.1
|
||||
*
|
||||
* @brief The implementation of the Ising model
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#include "IsingModel.hpp"
|
||||
|
||||
IsingModel::IsingModel()
|
||||
{
|
||||
}
|
||||
|
||||
IsingModel::IsingModel(uint L, double T)
|
||||
{
|
||||
this->L = L;
|
||||
this->T = T;
|
||||
this->initialize_lattice();
|
||||
this->initialize_neighbors();
|
||||
this->initialize_energy_diff();
|
||||
this->initialize_magnetization();
|
||||
this->initialize_energy();
|
||||
}
|
||||
|
||||
IsingModel::IsingModel(uint L, double T, int val)
|
||||
{
|
||||
this->L = L;
|
||||
this->T = T;
|
||||
this->lattice.set_size(this->L, this->L);
|
||||
this->lattice.fill(val);
|
||||
this->initialize_neighbors();
|
||||
this->initialize_energy_diff();
|
||||
this->initialize_magnetization();
|
||||
this->initialize_energy();
|
||||
}
|
||||
|
||||
void IsingModel::initialize_lattice()
|
||||
{
|
||||
this->lattice.set_size(this->L, this->L);
|
||||
std::random_device rd;
|
||||
std::mt19937 engine(rd());
|
||||
|
||||
std::uniform_int_distribution<int> coin_flip(0, 1);
|
||||
|
||||
for (size_t i = 0; i < this->lattice.n_elem; i++)
|
||||
this->lattice(i) = coin_flip(engine) == 1 ? 1 : -1;
|
||||
}
|
||||
|
||||
void IsingModel::initialize_neighbors()
|
||||
{
|
||||
this->neighbors.set_size(this->L, 2);
|
||||
|
||||
// Having i as a signed integer is necessary in this case.
|
||||
for (int i = 0; i < (int)this->L; i++) {
|
||||
this->neighbors(i, UP) = INDEX(i - 1, this->L);
|
||||
this->neighbors(i, DOWN) = INDEX(i + 1, this->L);
|
||||
}
|
||||
}
|
||||
|
||||
void IsingModel::initialize_energy_diff()
|
||||
{
|
||||
for (int i = -8; i <= 8; i += 4) {
|
||||
this->energy_diff.insert({i, std::exp(-((double)i / this->T))});
|
||||
}
|
||||
}
|
||||
|
||||
void IsingModel::initialize_magnetization()
|
||||
{
|
||||
this->M = 0.;
|
||||
for (size_t i = 0; i < this->lattice.n_elem; i++) {
|
||||
this->M += (double)this->lattice(i);
|
||||
}
|
||||
}
|
||||
|
||||
void IsingModel::initialize_energy()
|
||||
{
|
||||
this->E = 0.;
|
||||
|
||||
// Loop through the matrix
|
||||
for (size_t j = 0; j < this->L; j++) {
|
||||
for (size_t i = 0; i < this->L; i++) {
|
||||
this->E -= (double)this->lattice(i, j)
|
||||
* (this->lattice(i, this->neighbors(j, RIGHT))
|
||||
+ this->lattice(this->neighbors(i, DOWN), j));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data_t IsingModel::Metropolis(std::mt19937 &engine)
|
||||
{
|
||||
uint ri, rj;
|
||||
int dE;
|
||||
data_t res;
|
||||
|
||||
// Create random distribution for indeces
|
||||
std::uniform_int_distribution<uint> random_index(0, this->L - 1);
|
||||
// Create random distribution for acceptance
|
||||
std::uniform_real_distribution<> random_number(0., 1.);
|
||||
|
||||
// Loop over the number of spins
|
||||
for (size_t i = 0; i < this->lattice.n_elem; i++) {
|
||||
// Get random indeces
|
||||
ri = random_index(engine);
|
||||
rj = random_index(engine);
|
||||
|
||||
// Calculate the difference in energy
|
||||
dE = 2 * this->lattice(ri, rj)
|
||||
* (this->lattice(ri, this->neighbors(rj, LEFT))
|
||||
+ this->lattice(ri, this->neighbors(rj, RIGHT))
|
||||
+ this->lattice(this->neighbors(ri, UP), rj)
|
||||
+ this->lattice(this->neighbors(ri, DOWN), rj));
|
||||
|
||||
// Choose whether or not to accept the new configuration
|
||||
if (random_number(engine) <= this->energy_diff[dE]) {
|
||||
// Update if the configuration is accepted
|
||||
this->lattice(ri, rj) *= -1;
|
||||
this->M += 2. * (double)this->lattice(ri, rj);
|
||||
this->E += (double)dE;
|
||||
}
|
||||
}
|
||||
res.E = this->E;
|
||||
res.E2 = this->E * this->E;
|
||||
res.M = this->M;
|
||||
res.M2 = this->M * this->M;
|
||||
res.M_abs = std::abs(this->M);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
double IsingModel::get_E()
|
||||
{
|
||||
return this->E;
|
||||
}
|
||||
|
||||
double IsingModel::get_M()
|
||||
{
|
||||
return this->M;
|
||||
}
|
||||
13
src/Makefile
@ -1,9 +1,10 @@
|
||||
CC=g++
|
||||
#CC=g++
|
||||
CC=mpic++
|
||||
|
||||
LIBSRCS=utils.cpp
|
||||
LIBSRCS=utils.cpp testlib.cpp data_type.cpp
|
||||
LIBOBJS=$(LIBSRCS:.cpp=.o)
|
||||
|
||||
CLASSSRCS=PenningTrap.cpp Particle.cpp
|
||||
CLASSSRCS=IsingModel.cpp monte_carlo.cpp
|
||||
CLASSOBJS=$(CLASSSRCS:.cpp=.o)
|
||||
|
||||
INCLUDE=../include
|
||||
@ -30,7 +31,8 @@ endif
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
all: test_suite main frequency_narrow_sweeps_long
|
||||
all: main phase_transition_mpi test_suite
|
||||
#all: main
|
||||
|
||||
# Instrumentation using scorep for parallel analysis
|
||||
instrument:
|
||||
@ -42,6 +44,9 @@ instrument:
|
||||
main: main.o $(LIBOBJS) $(CLASSOBJS)
|
||||
$(CC) $^ -o $@ $(CFLAGS) $(DBGFLAG) $(PROFFLAG) -I$(INCLUDE) $(OPENMP)
|
||||
|
||||
phase_transition_mpi: phase_transition_mpi.o $(LIBOBJS) $(CLASSOBJS)
|
||||
$(CC) $^ -o $@ $(CFLAGS) $(DBGFLAG) $(PROFFLAG) -I$(INCLUDE) $(OPENMP)
|
||||
|
||||
test_suite: test_suite.o $(LIBOBJS) $(CLASSOBJS)
|
||||
$(CC) $^ -o $@ $(CFLAGS) $(DBGFLAG) $(PROFFLAG) -I$(INCLUDE) $(OPENMP)
|
||||
|
||||
|
||||
72
src/data_type.cpp
Normal file
@ -0,0 +1,72 @@
|
||||
/** @file data_type.cpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 1.0
|
||||
*
|
||||
* @brief Implementation for the data_t type.
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#include "data_type.hpp"
|
||||
|
||||
template <class T>
|
||||
data_t operator/(const data_t &data, T num)
|
||||
{
|
||||
data_t res = data;
|
||||
res.E /= num;
|
||||
res.E2 /= num;
|
||||
res.M /= num;
|
||||
res.M2 /= num;
|
||||
res.M_abs /= num;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
// Explicit instantiation
|
||||
template data_t operator/(const data_t &, uint);
|
||||
template data_t operator/(const data_t &, ulong);
|
||||
template data_t operator/(const data_t &,int);
|
||||
template data_t operator/(const data_t &,double);
|
||||
|
||||
template <class T>
|
||||
data_t& operator/=(data_t &data, T num)
|
||||
{
|
||||
data.E /= num;
|
||||
data.E2 /= num;
|
||||
data.M /= num;
|
||||
data.M2 /= num;
|
||||
data.M_abs /= num;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
// Explicit instantiation
|
||||
template data_t& operator/=(data_t &, uint);
|
||||
template data_t& operator/=(data_t &, ulong);
|
||||
template data_t& operator/=(data_t &,int);
|
||||
template data_t& operator/=(data_t &,double);
|
||||
|
||||
data_t operator+(const data_t &a, const data_t &b)
|
||||
{
|
||||
data_t res = a;
|
||||
res.E += b.E;
|
||||
res.E2 += b.E2;
|
||||
res.M += b.M;
|
||||
res.M2 += b.M2;
|
||||
res.M_abs += b.M_abs;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
data_t& operator+=(data_t &a, const data_t &b)
|
||||
{
|
||||
a.E += b.E;
|
||||
a.E2 += b.E2;
|
||||
a.M += b.M;
|
||||
a.M2 += b.M2;
|
||||
a.M_abs += b.M_abs;
|
||||
|
||||
return a;
|
||||
}
|
||||
40
src/fox_output/phase_transition/10M/size_100.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6620153162e+00, 8.6825921642e-01, 9.7151756678e-01, 2.4628207208e+00
|
||||
2.1075000000e+00, -1.6547871402e+00, 8.6452546472e-01, 9.8586055596e-01, 1.0371424746e+00
|
||||
2.1150000000e+00, -1.6470173946e+00, 8.5757567470e-01, 1.0527091921e+00, 9.2735057990e+00
|
||||
2.1225000000e+00, -1.6395359027e+00, 8.5477023382e-01, 1.0458114211e+00, 2.8269978139e+00
|
||||
2.1300000000e+00, -1.6317611242e+00, 8.5029719252e-01, 1.0648418813e+00, 1.5413540397e+00
|
||||
2.1375000000e+00, -1.6235958872e+00, 8.4427437198e-01, 1.1067537915e+00, 4.1393110834e+00
|
||||
2.1450000000e+00, -1.6154378059e+00, 8.3939453442e-01, 1.1249379789e+00, 2.4765189498e+00
|
||||
2.1525000000e+00, -1.6068788967e+00, 8.3370064048e-01, 1.1529855330e+00, 1.9209173052e+00
|
||||
2.1600000000e+00, -1.5981243397e+00, 8.2742933888e-01, 1.1832514097e+00, 2.1549193408e+00
|
||||
2.1675000000e+00, -1.5891135955e+00, 8.2073828886e-01, 1.2185666891e+00, 2.4512526099e+00
|
||||
2.1750000000e+00, -1.5799324034e+00, 8.1374150226e-01, 1.2592266595e+00, 2.7899402229e+00
|
||||
2.1825000000e+00, -1.5701165092e+00, 8.0492814328e-01, 1.3164080508e+00, 5.6569919297e+00
|
||||
2.1900000000e+00, -1.5603238432e+00, 7.9743303536e-01, 1.3446888670e+00, 3.8003080360e+00
|
||||
2.1975000000e+00, -1.5498866007e+00, 7.8783085350e-01, 1.4001363797e+00, 4.9784343082e+00
|
||||
2.2050000000e+00, -1.5392398990e+00, 7.7702621460e-01, 1.4673061547e+00, 7.9625339130e+00
|
||||
2.2125000000e+00, -1.5281262918e+00, 7.6584789506e-01, 1.5232488352e+00, 8.4644768325e+00
|
||||
2.2200000000e+00, -1.5165880163e+00, 7.5355556686e-01, 1.5748237550e+00, 8.7046281768e+00
|
||||
2.2275000000e+00, -1.5043489448e+00, 7.3824513410e-01, 1.6730531386e+00, 1.3329874777e+01
|
||||
2.2350000000e+00, -1.4919062936e+00, 7.2266862052e-01, 1.7605738773e+00, 1.5774847194e+01
|
||||
2.2425000000e+00, -1.4779197153e+00, 6.9984947662e-01, 1.8842107989e+00, 2.5222532538e+01
|
||||
2.2500000000e+00, -1.4630838121e+00, 6.7200043076e-01, 2.0414383332e+00, 4.0176409902e+01
|
||||
2.2575000000e+00, -1.4466727990e+00, 6.3374453586e-01, 2.2394490921e+00, 6.5386553201e+01
|
||||
2.2650000000e+00, -1.4302620022e+00, 5.9545725882e-01, 2.3367695957e+00, 8.4146921469e+01
|
||||
2.2725000000e+00, -1.4129940982e+00, 5.4893978964e-01, 2.4264999588e+00, 1.0572940572e+02
|
||||
2.2800000000e+00, -1.3938477486e+00, 4.8383973028e-01, 2.4843359422e+00, 1.4080896856e+02
|
||||
2.2875000000e+00, -1.3755483071e+00, 4.2131611852e-01, 2.3668657423e+00, 1.5146279797e+02
|
||||
2.2950000000e+00, -1.3587650193e+00, 3.6670820910e-01, 2.2238630418e+00, 1.4922116201e+02
|
||||
2.3025000000e+00, -1.3424890747e+00, 3.1314528658e-01, 2.0388866034e+00, 1.3710935397e+02
|
||||
2.3100000000e+00, -1.3278909358e+00, 2.6988360328e-01, 1.8428420582e+00, 1.1799184878e+02
|
||||
2.3175000000e+00, -1.3146870617e+00, 2.3717208746e-01, 1.7132885225e+00, 1.0132633890e+02
|
||||
2.3250000000e+00, -1.3022142125e+00, 2.0584315460e-01, 1.5883836563e+00, 8.4059694596e+01
|
||||
2.3325000000e+00, -1.2906006156e+00, 1.8736295758e-01, 1.5132478295e+00, 7.2347213446e+01
|
||||
2.3400000000e+00, -1.2797137160e+00, 1.7238447366e-01, 1.4469027063e+00, 6.2533751699e+01
|
||||
2.3475000000e+00, -1.2689956506e+00, 1.5705407798e-01, 1.3862572655e+00, 5.3347428555e+01
|
||||
2.3550000000e+00, -1.2590990874e+00, 1.4659499200e-01, 1.3372004012e+00, 4.7210919387e+01
|
||||
2.3625000000e+00, -1.2489784134e+00, 1.3360769622e-01, 1.2889592617e+00, 3.9916238102e+01
|
||||
2.3700000000e+00, -1.2394002512e+00, 1.2499840328e-01, 1.2447122211e+00, 3.5011112489e+01
|
||||
2.3775000000e+00, -1.2301743490e+00, 1.1724050656e-01, 1.2126831520e+00, 3.1619751217e+01
|
||||
2.3850000000e+00, -1.2212667213e+00, 1.1158216368e-01, 1.1817854995e+00, 2.8398360387e+01
|
||||
2.3925000000e+00, -1.2125286096e+00, 1.0569096110e-01, 1.1511183772e+00, 2.5508811996e+01
|
||||
40
src/fox_output/phase_transition/10M/size_20.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6619125180e+00, 8.6839291850e-01, 9.6555027618e-01, 9.7850361363e-01
|
||||
2.1075000000e+00, -1.6549793570e+00, 8.6471839850e-01, 9.8240289303e-01, 1.0129724485e+00
|
||||
2.1150000000e+00, -1.6468503490e+00, 8.5960125050e-01, 1.0138192976e+00, 1.1321474962e+00
|
||||
2.1225000000e+00, -1.6395326080e+00, 8.5511700950e-01, 1.0365371568e+00, 1.2364229543e+00
|
||||
2.1300000000e+00, -1.6317730720e+00, 8.5044005850e-01, 1.0587209589e+00, 1.3211835025e+00
|
||||
2.1375000000e+00, -1.6234235200e+00, 8.4479707150e-01, 1.0873989398e+00, 1.4801573993e+00
|
||||
2.1450000000e+00, -1.6159038850e+00, 8.4040335200e-01, 1.1054118047e+00, 1.5387845869e+00
|
||||
2.1525000000e+00, -1.6068533790e+00, 8.3360464950e-01, 1.1465611095e+00, 1.7801980041e+00
|
||||
2.1600000000e+00, -1.5982328140e+00, 8.2758169400e-01, 1.1760701126e+00, 1.9407916428e+00
|
||||
2.1675000000e+00, -1.5893305490e+00, 8.2146220800e-01, 1.2027020856e+00, 2.0857388287e+00
|
||||
2.1750000000e+00, -1.5800474730e+00, 8.1475079550e-01, 1.2322647833e+00, 2.2571138933e+00
|
||||
2.1825000000e+00, -1.5712991630e+00, 8.0836790150e-01, 1.2576266534e+00, 2.4328877997e+00
|
||||
2.1900000000e+00, -1.5610119330e+00, 7.9991190450e-01, 1.2986390210e+00, 2.7318627483e+00
|
||||
2.1975000000e+00, -1.5512947190e+00, 7.9200833000e-01, 1.3324471512e+00, 2.9999142363e+00
|
||||
2.2050000000e+00, -1.5412811640e+00, 7.8410793550e-01, 1.3603249592e+00, 3.2210726936e+00
|
||||
2.2125000000e+00, -1.5312122480e+00, 7.7582262450e-01, 1.3914119268e+00, 3.4663325824e+00
|
||||
2.2200000000e+00, -1.5202567750e+00, 7.6603557500e-01, 1.4290506271e+00, 3.7902650810e+00
|
||||
2.2275000000e+00, -1.5101140570e+00, 7.5720912050e-01, 1.4571094065e+00, 4.0922499338e+00
|
||||
2.2350000000e+00, -1.4983236510e+00, 7.4583789950e-01, 1.4940343199e+00, 4.4949431726e+00
|
||||
2.2425000000e+00, -1.4872285410e+00, 7.3583214850e-01, 1.5209645562e+00, 4.7834776118e+00
|
||||
2.2500000000e+00, -1.4755721230e+00, 7.2430785100e-01, 1.5494637112e+00, 5.1408071955e+00
|
||||
2.2575000000e+00, -1.4646817370e+00, 7.1429082850e-01, 1.5665735040e+00, 5.4168636675e+00
|
||||
2.2650000000e+00, -1.4525830090e+00, 7.0183889150e-01, 1.5930316440e+00, 5.8246607718e+00
|
||||
2.2725000000e+00, -1.4401881130e+00, 6.8829875200e-01, 1.6210749189e+00, 6.2825629079e+00
|
||||
2.2800000000e+00, -1.4275341280e+00, 6.7503738350e-01, 1.6377412939e+00, 6.6272843184e+00
|
||||
2.2875000000e+00, -1.4153101170e+00, 6.6202681500e-01, 1.6474807652e+00, 6.9374221274e+00
|
||||
2.2950000000e+00, -1.4025377850e+00, 6.4792210650e-01, 1.6613566237e+00, 7.2965666268e+00
|
||||
2.3025000000e+00, -1.3901966580e+00, 6.3424726400e-01, 1.6643516967e+00, 7.5997720797e+00
|
||||
2.3100000000e+00, -1.3777599550e+00, 6.2029042850e-01, 1.6655967518e+00, 7.8821870275e+00
|
||||
2.3175000000e+00, -1.3658680790e+00, 6.0696951250e-01, 1.6640990107e+00, 8.1240659854e+00
|
||||
2.3250000000e+00, -1.3536401310e+00, 5.9312723750e-01, 1.6552818870e+00, 8.3112943885e+00
|
||||
2.3325000000e+00, -1.3397610860e+00, 5.7579100100e-01, 1.6468905936e+00, 8.6230949277e+00
|
||||
2.3400000000e+00, -1.3279296500e+00, 5.6190994250e-01, 1.6315188349e+00, 8.7733425063e+00
|
||||
2.3475000000e+00, -1.3157471180e+00, 5.4756469250e-01, 1.6092786419e+00, 8.8885122002e+00
|
||||
2.3550000000e+00, -1.3041730460e+00, 5.3377897100e-01, 1.5875278057e+00, 8.9753683844e+00
|
||||
2.3625000000e+00, -1.2926410050e+00, 5.2069073550e-01, 1.5603029077e+00, 8.9820705976e+00
|
||||
2.3700000000e+00, -1.2802206010e+00, 5.0476759600e-01, 1.5297678965e+00, 9.0498806419e+00
|
||||
2.3775000000e+00, -1.2699025730e+00, 4.9361168400e-01, 1.5059390703e+00, 9.0215829651e+00
|
||||
2.3850000000e+00, -1.2586695900e+00, 4.8012205450e-01, 1.4771256938e+00, 8.9961790709e+00
|
||||
2.3925000000e+00, -1.2478550800e+00, 4.6736909300e-01, 1.4420816831e+00, 8.9036470785e+00
|
||||
40
src/fox_output/phase_transition/10M/size_40.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6620241095e+00, 8.6870001213e-01, 9.6315452544e-01, 9.6226340795e-01
|
||||
2.1075000000e+00, -1.6546474007e+00, 8.6435499912e-01, 9.8726491216e-01, 1.0486145186e+00
|
||||
2.1150000000e+00, -1.6471901245e+00, 8.5999019563e-01, 1.0078816808e+00, 1.1309322111e+00
|
||||
2.1225000000e+00, -1.6396131488e+00, 8.5534986700e-01, 1.0341186299e+00, 1.2401952685e+00
|
||||
2.1300000000e+00, -1.6316233365e+00, 8.5028545800e-01, 1.0616281311e+00, 1.3647625002e+00
|
||||
2.1375000000e+00, -1.6237929958e+00, 8.4533017437e-01, 1.0891759248e+00, 1.5241163310e+00
|
||||
2.1450000000e+00, -1.6151386912e+00, 8.3903778937e-01, 1.1269490234e+00, 1.8646375755e+00
|
||||
2.1525000000e+00, -1.6066617845e+00, 8.3330123700e-01, 1.1561499936e+00, 2.0164316252e+00
|
||||
2.1600000000e+00, -1.5981390215e+00, 8.2754810150e-01, 1.1833323029e+00, 2.1355953037e+00
|
||||
2.1675000000e+00, -1.5890042950e+00, 8.2053784450e-01, 1.2212535753e+00, 2.5182897415e+00
|
||||
2.1750000000e+00, -1.5797295040e+00, 8.1340160300e-01, 1.2605568049e+00, 2.8268774622e+00
|
||||
2.1825000000e+00, -1.5702464250e+00, 8.0565077875e-01, 1.3025929004e+00, 3.3805882500e+00
|
||||
2.1900000000e+00, -1.5604939612e+00, 7.9764172887e-01, 1.3454520516e+00, 3.7938587164e+00
|
||||
2.1975000000e+00, -1.5499313592e+00, 7.8792353400e-01, 1.3967813619e+00, 4.4756538550e+00
|
||||
2.2050000000e+00, -1.5391499830e+00, 7.7744365112e-01, 1.4501456064e+00, 5.3798585716e+00
|
||||
2.2125000000e+00, -1.5282690012e+00, 7.6690028637e-01, 1.4995460425e+00, 6.1870897661e+00
|
||||
2.2200000000e+00, -1.5167300260e+00, 7.5423927662e-01, 1.5624874280e+00, 7.4548031568e+00
|
||||
2.2275000000e+00, -1.5050149717e+00, 7.4142832087e-01, 1.6204433824e+00, 8.6979351346e+00
|
||||
2.2350000000e+00, -1.4926378615e+00, 7.2640746162e-01, 1.6863439690e+00, 1.0422107961e+01
|
||||
2.2425000000e+00, -1.4794847920e+00, 7.0900366487e-01, 1.7621420318e+00, 1.2536468715e+01
|
||||
2.2500000000e+00, -1.4656867717e+00, 6.8967846612e-01, 1.8323331829e+00, 1.4893634634e+01
|
||||
2.2575000000e+00, -1.4520555287e+00, 6.7119788675e-01, 1.8799168754e+00, 1.6547383769e+01
|
||||
2.2650000000e+00, -1.4382698593e+00, 6.5065610625e-01, 1.9337012711e+00, 1.8914026717e+01
|
||||
2.2725000000e+00, -1.4230305128e+00, 6.2540010162e-01, 1.9788823072e+00, 2.1651635903e+01
|
||||
2.2800000000e+00, -1.4088086143e+00, 6.0163930987e-01, 2.0112447617e+00, 2.4199800899e+01
|
||||
2.2875000000e+00, -1.3935304780e+00, 5.7577379412e-01, 2.0196168621e+00, 2.6064061662e+01
|
||||
2.2950000000e+00, -1.3789640860e+00, 5.5077936987e-01, 2.0095359588e+00, 2.7512401284e+01
|
||||
2.3025000000e+00, -1.3624053932e+00, 5.1785586512e-01, 1.9954287230e+00, 2.9529693197e+01
|
||||
2.3100000000e+00, -1.3484675187e+00, 4.9407736975e-01, 1.9489026021e+00, 3.0040369409e+01
|
||||
2.3175000000e+00, -1.3343921728e+00, 4.6778955013e-01, 1.9013520152e+00, 3.0603632810e+01
|
||||
2.3250000000e+00, -1.3197310500e+00, 4.3895860962e-01, 1.8406235015e+00, 3.0679867277e+01
|
||||
2.3325000000e+00, -1.3061023918e+00, 4.1355581687e-01, 1.7586976734e+00, 3.0281483045e+01
|
||||
2.3400000000e+00, -1.2935458417e+00, 3.9148407650e-01, 1.6936163462e+00, 2.9309538353e+01
|
||||
2.3475000000e+00, -1.2810342150e+00, 3.6986715562e-01, 1.6246099121e+00, 2.8219898740e+01
|
||||
2.3550000000e+00, -1.2689798297e+00, 3.4784880125e-01, 1.5474347136e+00, 2.6988405432e+01
|
||||
2.3625000000e+00, -1.2578110195e+00, 3.2940204463e-01, 1.4903891730e+00, 2.5855851530e+01
|
||||
2.3700000000e+00, -1.2467082168e+00, 3.1144425187e-01, 1.4161229966e+00, 2.4265691669e+01
|
||||
2.3775000000e+00, -1.2364888132e+00, 2.9590345237e-01, 1.3601555797e+00, 2.2803242240e+01
|
||||
2.3850000000e+00, -1.2262656265e+00, 2.8063338050e-01, 1.3049288010e+00, 2.1507061243e+01
|
||||
2.3925000000e+00, -1.2169632957e+00, 2.6823971300e-01, 1.2562566007e+00, 2.0148598349e+01
|
||||
40
src/fox_output/phase_transition/10M/size_60.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6620843629e+00, 8.6872799750e-01, 9.6264519505e-01, 9.5544569044e-01
|
||||
2.1075000000e+00, -1.6547580499e+00, 8.6444806406e-01, 9.8544566002e-01, 1.0407756357e+00
|
||||
2.1150000000e+00, -1.6473603679e+00, 8.6015627483e-01, 1.0101358749e+00, 1.1153310968e+00
|
||||
2.1225000000e+00, -1.6396375339e+00, 8.5537835589e-01, 1.0356576220e+00, 1.2426188107e+00
|
||||
2.1300000000e+00, -1.6317903722e+00, 8.5046221944e-01, 1.0630158285e+00, 1.3653424965e+00
|
||||
2.1375000000e+00, -1.6236858849e+00, 8.4515188072e-01, 1.0898866806e+00, 1.5272736843e+00
|
||||
2.1450000000e+00, -1.6154040312e+00, 8.3963544883e-01, 1.1163642113e+00, 1.6903490533e+00
|
||||
2.1525000000e+00, -1.6068627261e+00, 8.3359092411e-01, 1.1525313123e+00, 1.9475784050e+00
|
||||
2.1600000000e+00, -1.5981171297e+00, 8.2743907661e-01, 1.1856925219e+00, 2.1377189985e+00
|
||||
2.1675000000e+00, -1.5891169522e+00, 8.2076692411e-01, 1.2202497445e+00, 2.4484997455e+00
|
||||
2.1750000000e+00, -1.5798256027e+00, 8.1368407967e-01, 1.2558053037e+00, 2.7636023484e+00
|
||||
2.1825000000e+00, -1.5703361263e+00, 8.0594987944e-01, 1.2983724079e+00, 3.3113282521e+00
|
||||
2.1900000000e+00, -1.5602543071e+00, 7.9732757833e-01, 1.3446361432e+00, 3.7573016387e+00
|
||||
2.1975000000e+00, -1.5500343039e+00, 7.8784426106e-01, 1.3953317819e+00, 4.7951647288e+00
|
||||
2.2050000000e+00, -1.5392068992e+00, 7.7743896250e-01, 1.4609661357e+00, 5.7612740711e+00
|
||||
2.2125000000e+00, -1.5282624559e+00, 7.6657300889e-01, 1.5089569958e+00, 6.7976296683e+00
|
||||
2.2200000000e+00, -1.5167714741e+00, 7.5381184083e-01, 1.5765989542e+00, 8.7762464988e+00
|
||||
2.2275000000e+00, -1.5046375629e+00, 7.3963954711e-01, 1.6538283053e+00, 1.0539882793e+01
|
||||
2.2350000000e+00, -1.4916838380e+00, 7.2188930672e-01, 1.7479448742e+00, 1.4442688054e+01
|
||||
2.2425000000e+00, -1.4783546668e+00, 7.0308972833e-01, 1.8379170953e+00, 1.8151938776e+01
|
||||
2.2500000000e+00, -1.4641366169e+00, 6.8038036333e-01, 1.9265609125e+00, 2.3389888284e+01
|
||||
2.2575000000e+00, -1.4486397249e+00, 6.5150604822e-01, 2.0422100075e+00, 3.1244165172e+01
|
||||
2.2650000000e+00, -1.4336962390e+00, 6.2459981533e-01, 2.1075014455e+00, 3.6826447778e+01
|
||||
2.2725000000e+00, -1.4180692170e+00, 5.9268105344e-01, 2.1893689007e+00, 4.4273470662e+01
|
||||
2.2800000000e+00, -1.4010261546e+00, 5.5387566789e-01, 2.2234627988e+00, 5.2006827283e+01
|
||||
2.2875000000e+00, -1.3842963302e+00, 5.1342188850e-01, 2.2093928783e+00, 5.8110524167e+01
|
||||
2.2950000000e+00, -1.3674547366e+00, 4.7283667406e-01, 2.1664555299e+00, 6.1848500693e+01
|
||||
2.3025000000e+00, -1.3514448674e+00, 4.3301724944e-01, 2.0844304859e+00, 6.2928742602e+01
|
||||
2.3100000000e+00, -1.3361684618e+00, 3.9658430828e-01, 1.9897540506e+00, 6.2376495709e+01
|
||||
2.3175000000e+00, -1.3221636203e+00, 3.6519162828e-01, 1.8755791202e+00, 5.9468771468e+01
|
||||
2.3250000000e+00, -1.3086887623e+00, 3.3479607911e-01, 1.7751338406e+00, 5.5802216522e+01
|
||||
2.3325000000e+00, -1.2953904763e+00, 3.0499253439e-01, 1.6542669252e+00, 5.1362305497e+01
|
||||
2.3400000000e+00, -1.2832488826e+00, 2.8106546444e-01, 1.5692606461e+00, 4.7060215979e+01
|
||||
2.3475000000e+00, -1.2720185431e+00, 2.6190353806e-01, 1.4883311872e+00, 4.2947040348e+01
|
||||
2.3550000000e+00, -1.2610647641e+00, 2.4192990383e-01, 1.4150400094e+00, 3.8804813518e+01
|
||||
2.3625000000e+00, -1.2506554469e+00, 2.2450839061e-01, 1.3515257395e+00, 3.5046451463e+01
|
||||
2.3700000000e+00, -1.2409339288e+00, 2.1300559106e-01, 1.2983897866e+00, 3.1817431753e+01
|
||||
2.3775000000e+00, -1.2311690934e+00, 1.9878405622e-01, 1.2474793538e+00, 2.8725909191e+01
|
||||
2.3850000000e+00, -1.2220091820e+00, 1.8858339594e-01, 1.2096871264e+00, 2.6268765485e+01
|
||||
2.3925000000e+00, -1.2128942612e+00, 1.7742550372e-01, 1.1741821474e+00, 2.3917176967e+01
|
||||
40
src/fox_output/phase_transition/10M/size_80.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6620756650e+00, 8.6874590631e-01, 9.6337351197e-01, 9.5351472363e-01
|
||||
2.1075000000e+00, -1.6547735862e+00, 8.6447831991e-01, 9.8689361025e-01, 1.0408170215e+00
|
||||
2.1150000000e+00, -1.6473087262e+00, 8.6005295253e-01, 1.0115783879e+00, 1.1325981342e+00
|
||||
2.1225000000e+00, -1.6395752860e+00, 8.5529783394e-01, 1.0363020368e+00, 1.2499327245e+00
|
||||
2.1300000000e+00, -1.6317063754e+00, 8.5009845187e-01, 1.0657630508e+00, 1.9312354901e+00
|
||||
2.1375000000e+00, -1.6237104097e+00, 8.4518025262e-01, 1.0879722354e+00, 1.5113973758e+00
|
||||
2.1450000000e+00, -1.6152916461e+00, 8.3937934853e-01, 1.1239740960e+00, 2.0178266919e+00
|
||||
2.1525000000e+00, -1.6068573244e+00, 8.3364136481e-01, 1.1512040518e+00, 1.9975732782e+00
|
||||
2.1600000000e+00, -1.5980690666e+00, 8.2744982978e-01, 1.1854341904e+00, 2.1241645942e+00
|
||||
2.1675000000e+00, -1.5890817681e+00, 8.2076451319e-01, 1.2214163764e+00, 2.4285237978e+00
|
||||
2.1750000000e+00, -1.5798129650e+00, 8.1358434325e-01, 1.2593479939e+00, 2.7739367008e+00
|
||||
2.1825000000e+00, -1.5701542314e+00, 8.0558246494e-01, 1.3035816839e+00, 3.4536174390e+00
|
||||
2.1900000000e+00, -1.5601962992e+00, 7.9711947519e-01, 1.3494407435e+00, 3.8450166174e+00
|
||||
2.1975000000e+00, -1.5499282524e+00, 7.8789456247e-01, 1.3956130897e+00, 4.5449711982e+00
|
||||
2.2050000000e+00, -1.5394033323e+00, 7.7813024216e-01, 1.4469297749e+00, 5.3965210114e+00
|
||||
2.2125000000e+00, -1.5281962539e+00, 7.6650420066e-01, 1.5054808218e+00, 6.8357319764e+00
|
||||
2.2200000000e+00, -1.5167144013e+00, 7.5372712081e-01, 1.5803322176e+00, 8.8529401534e+00
|
||||
2.2275000000e+00, -1.5041353668e+00, 7.3701369209e-01, 1.6867391836e+00, 1.3547589490e+01
|
||||
2.2350000000e+00, -1.4918010204e+00, 7.2184788872e-01, 1.7594791181e+00, 1.6421827540e+01
|
||||
2.2425000000e+00, -1.4774107857e+00, 6.9811270391e-01, 1.8871499660e+00, 2.4132414777e+01
|
||||
2.2500000000e+00, -1.4633492965e+00, 6.7501245453e-01, 1.9980479142e+00, 3.1832995920e+01
|
||||
2.2575000000e+00, -1.4481626969e+00, 6.4464869912e-01, 2.1196194419e+00, 4.5523408624e+01
|
||||
2.2650000000e+00, -1.4312964268e+00, 6.0561512331e-01, 2.2560044387e+00, 6.1067556545e+01
|
||||
2.2725000000e+00, -1.4140666613e+00, 5.6202367778e-01, 2.3584586707e+00, 7.7815810663e+01
|
||||
2.2800000000e+00, -1.3963192994e+00, 5.1399904344e-01, 2.3692841829e+00, 9.1735841859e+01
|
||||
2.2875000000e+00, -1.3790272427e+00, 4.6401583122e-01, 2.3216706708e+00, 1.0111515817e+02
|
||||
2.2950000000e+00, -1.3618707276e+00, 4.1294487594e-01, 2.2106009432e+00, 1.0439337290e+02
|
||||
2.3025000000e+00, -1.3457345337e+00, 3.6521622144e-01, 2.0849681807e+00, 1.0151592962e+02
|
||||
2.3100000000e+00, -1.3313221879e+00, 3.2891628841e-01, 1.9447394570e+00, 9.4585988411e+01
|
||||
2.3175000000e+00, -1.3168939605e+00, 2.9075993544e-01, 1.7843051751e+00, 8.2939282435e+01
|
||||
2.3250000000e+00, -1.3040026104e+00, 2.6018569022e-01, 1.6760082040e+00, 7.5314387732e+01
|
||||
2.3325000000e+00, -1.2917462589e+00, 2.3482259528e-01, 1.5679147019e+00, 6.4810792954e+01
|
||||
2.3400000000e+00, -1.2803463176e+00, 2.1379812091e-01, 1.4762551316e+00, 5.6581253116e+01
|
||||
2.3475000000e+00, -1.2695552376e+00, 1.9517387319e-01, 1.4054334901e+00, 4.9784055131e+01
|
||||
2.3550000000e+00, -1.2591213719e+00, 1.8010318962e-01, 1.3510403913e+00, 4.3679117401e+01
|
||||
2.3625000000e+00, -1.2494132637e+00, 1.6935649678e-01, 1.3009501753e+00, 3.8970399523e+01
|
||||
2.3700000000e+00, -1.2395117372e+00, 1.5613331394e-01, 1.2575165195e+00, 3.3873643211e+01
|
||||
2.3775000000e+00, -1.2303350071e+00, 1.4791185106e-01, 1.2183135770e+00, 3.0730463637e+01
|
||||
2.3850000000e+00, -1.2214079973e+00, 1.4019221863e-01, 1.1859429918e+00, 2.7883196541e+01
|
||||
2.3925000000e+00, -1.2124997863e+00, 1.3183323931e-01, 1.1519411438e+00, 2.4554993354e+01
|
||||
40
src/fox_output/phase_transition/1M/size_100.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6612792192e+00, 8.6256190700e-01, 1.0596726999e+00, 2.0699159730e+01
|
||||
2.1075000000e+00, -1.6532154832e+00, 8.4912965540e-01, 1.2417232670e+00, 5.2009116435e+01
|
||||
2.1150000000e+00, -1.6472563896e+00, 8.5913015560e-01, 1.0308365224e+00, 3.7779210599e+00
|
||||
2.1225000000e+00, -1.6396845888e+00, 8.5540663260e-01, 1.0323571679e+00, 1.2382711201e+00
|
||||
2.1300000000e+00, -1.6307024120e+00, 8.3981236760e-01, 1.2256061598e+00, 3.6282044911e+01
|
||||
2.1375000000e+00, -1.6228404716e+00, 8.3746777060e-01, 1.2361592355e+00, 2.4737106357e+01
|
||||
2.1450000000e+00, -1.6151894124e+00, 8.3877039060e-01, 1.1421629476e+00, 3.0323645843e+00
|
||||
2.1525000000e+00, -1.6068043624e+00, 8.3321685040e-01, 1.1638915303e+00, 2.8048344109e+00
|
||||
2.1600000000e+00, -1.5978217808e+00, 8.2557953160e-01, 1.2271432548e+00, 6.2899678078e+00
|
||||
2.1675000000e+00, -1.5890927616e+00, 8.2053412660e-01, 1.2308606284e+00, 2.8553684972e+00
|
||||
2.1750000000e+00, -1.5796181176e+00, 8.1283302720e-01, 1.2792013850e+00, 3.9836509613e+00
|
||||
2.1825000000e+00, -1.5701404220e+00, 8.0449301820e-01, 1.3252420837e+00, 7.0344686324e+00
|
||||
2.1900000000e+00, -1.5601399924e+00, 7.9685539220e-01, 1.3471601924e+00, 3.9237174947e+00
|
||||
2.1975000000e+00, -1.5496621900e+00, 7.8727214460e-01, 1.4073683128e+00, 4.7225186927e+00
|
||||
2.2050000000e+00, -1.5391864712e+00, 7.7669461100e-01, 1.4584663488e+00, 6.4158531378e+00
|
||||
2.2125000000e+00, -1.5278245632e+00, 7.6300203680e-01, 1.5755530082e+00, 1.7288365763e+01
|
||||
2.2200000000e+00, -1.5168416332e+00, 7.5472625320e-01, 1.5587276071e+00, 7.7696543289e+00
|
||||
2.2275000000e+00, -1.5039672404e+00, 7.3722169740e-01, 1.6783362991e+00, 1.4058982882e+01
|
||||
2.2350000000e+00, -1.4900331104e+00, 7.1081896860e-01, 1.9018868063e+00, 3.7256706578e+01
|
||||
2.2425000000e+00, -1.4769756772e+00, 6.9378741340e-01, 1.9670408332e+00, 3.7020885460e+01
|
||||
2.2500000000e+00, -1.4637510180e+00, 6.7620220440e-01, 1.9979200843e+00, 3.3931264905e+01
|
||||
2.2575000000e+00, -1.4476422300e+00, 6.4138856980e-01, 2.1380345770e+00, 5.2021590459e+01
|
||||
2.2650000000e+00, -1.4307435584e+00, 5.9851754880e-01, 2.3331535844e+00, 8.2335132366e+01
|
||||
2.2725000000e+00, -1.4141791960e+00, 5.5853701300e-01, 2.3050596707e+00, 9.1406894951e+01
|
||||
2.2800000000e+00, -1.3923938220e+00, 4.7488244220e-01, 2.4406522679e+00, 1.3733108164e+02
|
||||
2.2875000000e+00, -1.3762977632e+00, 4.3171120960e-01, 2.3723633257e+00, 1.4169760752e+02
|
||||
2.2950000000e+00, -1.3590323604e+00, 3.7291955020e-01, 2.1810791891e+00, 1.3966381627e+02
|
||||
2.3025000000e+00, -1.3417246376e+00, 2.9848023220e-01, 1.9675984066e+00, 1.3674713142e+02
|
||||
2.3100000000e+00, -1.3285701848e+00, 2.7804916340e-01, 1.8203992375e+00, 1.1670439695e+02
|
||||
2.3175000000e+00, -1.3151839460e+00, 2.4615282040e-01, 1.7306660269e+00, 1.0191649249e+02
|
||||
2.3250000000e+00, -1.3017054568e+00, 2.0573457640e-01, 1.5785878199e+00, 8.3588251789e+01
|
||||
2.3325000000e+00, -1.2910242132e+00, 1.8774745000e-01, 1.5189612998e+00, 7.2830170071e+01
|
||||
2.3400000000e+00, -1.2798172344e+00, 1.7481334800e-01, 1.4392725317e+00, 6.4057634925e+01
|
||||
2.3475000000e+00, -1.2689864880e+00, 1.5672259460e-01, 1.3795280727e+00, 5.2809854731e+01
|
||||
2.3550000000e+00, -1.2590906328e+00, 1.4302703640e-01, 1.3285933904e+00, 4.6344606435e+01
|
||||
2.3625000000e+00, -1.2492913080e+00, 1.3746292460e-01, 1.3154737585e+00, 4.2854759492e+01
|
||||
2.3700000000e+00, -1.2394041272e+00, 1.2602869600e-01, 1.2522961125e+00, 3.6151827925e+01
|
||||
2.3775000000e+00, -1.2300210804e+00, 1.1798949900e-01, 1.2290092092e+00, 3.2614364490e+01
|
||||
2.3850000000e+00, -1.2213315444e+00, 1.1081263520e-01, 1.1703344954e+00, 2.8256183604e+01
|
||||
2.3925000000e+00, -1.2128333720e+00, 1.0747050640e-01, 1.1493012272e+00, 2.6548973327e+01
|
||||
40
src/fox_output/phase_transition/1M/size_20.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6625690000e+00, 8.6936663000e-01, 9.5199677451e-01, 8.8569644618e-01
|
||||
2.1075000000e+00, -1.6549473100e+00, 8.6473691000e-01, 9.8418368776e-01, 1.0051637644e+00
|
||||
2.1150000000e+00, -1.6473698300e+00, 8.6007587500e-01, 1.0113134310e+00, 1.1196969301e+00
|
||||
2.1225000000e+00, -1.6395494900e+00, 8.5548300500e-01, 1.0299964171e+00, 1.1716328445e+00
|
||||
2.1300000000e+00, -1.6314012700e+00, 8.4996323500e-01, 1.0616896949e+00, 1.3405413189e+00
|
||||
2.1375000000e+00, -1.6248786800e+00, 8.4645665500e-01, 1.0685391394e+00, 1.3624622748e+00
|
||||
2.1450000000e+00, -1.6159789300e+00, 8.4019108500e-01, 1.1074851796e+00, 1.5778190697e+00
|
||||
2.1525000000e+00, -1.6066218400e+00, 8.3310467000e-01, 1.1504972327e+00, 1.8462177141e+00
|
||||
2.1600000000e+00, -1.5970234800e+00, 8.2576127500e-01, 1.1869828128e+00, 2.0943932751e+00
|
||||
2.1675000000e+00, -1.5897822700e+00, 8.2258458000e-01, 1.1914918638e+00, 1.9491568159e+00
|
||||
2.1750000000e+00, -1.5801827300e+00, 8.1458734500e-01, 1.2363519078e+00, 2.2920063431e+00
|
||||
2.1825000000e+00, -1.5702924300e+00, 8.0774668500e-01, 1.2651687205e+00, 2.4095378779e+00
|
||||
2.1900000000e+00, -1.5612255800e+00, 8.0015641500e-01, 1.2959543424e+00, 2.7257033807e+00
|
||||
2.1975000000e+00, -1.5517378400e+00, 7.9245131500e-01, 1.3303052331e+00, 2.9911092386e+00
|
||||
2.2050000000e+00, -1.5414217900e+00, 7.8386986500e-01, 1.3616345135e+00, 3.2709224617e+00
|
||||
2.2125000000e+00, -1.5311952500e+00, 7.7542827000e-01, 1.3967503062e+00, 3.5346202097e+00
|
||||
2.2200000000e+00, -1.5207608300e+00, 7.6709755000e-01, 1.4142386201e+00, 3.6842337809e+00
|
||||
2.2275000000e+00, -1.5085855600e+00, 7.5403383500e-01, 1.4805730257e+00, 4.3251769608e+00
|
||||
2.2350000000e+00, -1.4977753400e+00, 7.4437916000e-01, 1.5106261750e+00, 4.6648177016e+00
|
||||
2.2425000000e+00, -1.4887390800e+00, 7.3872244000e-01, 1.5080687017e+00, 4.6014703216e+00
|
||||
2.2500000000e+00, -1.4746719800e+00, 7.2296431000e-01, 1.5595119252e+00, 5.2158607318e+00
|
||||
2.2575000000e+00, -1.4649236800e+00, 7.1438349500e-01, 1.5626649105e+00, 5.4095787458e+00
|
||||
2.2650000000e+00, -1.4539727000e+00, 7.0392335500e-01, 1.5999803560e+00, 5.7811835162e+00
|
||||
2.2725000000e+00, -1.4383957600e+00, 6.8648458000e-01, 1.6273389853e+00, 6.2658670226e+00
|
||||
2.2800000000e+00, -1.4272485800e+00, 6.7498559500e-01, 1.6373926199e+00, 6.5424849241e+00
|
||||
2.2875000000e+00, -1.4161097600e+00, 6.6328622500e-01, 1.6482649119e+00, 6.9396325071e+00
|
||||
2.2950000000e+00, -1.4030803200e+00, 6.4952940000e-01, 1.6526274190e+00, 7.1626056968e+00
|
||||
2.3025000000e+00, -1.3903670400e+00, 6.3425026500e-01, 1.6614736902e+00, 7.5951852895e+00
|
||||
2.3100000000e+00, -1.3765267400e+00, 6.1661350500e-01, 1.6813621383e+00, 8.1293299007e+00
|
||||
2.3175000000e+00, -1.3668244500e+00, 6.0868480000e-01, 1.6696332535e+00, 8.0990867312e+00
|
||||
2.3250000000e+00, -1.3526192200e+00, 5.9227348500e-01, 1.6505297564e+00, 8.2942300802e+00
|
||||
2.3325000000e+00, -1.3409542100e+00, 5.7865409000e-01, 1.6452483426e+00, 8.5101960774e+00
|
||||
2.3400000000e+00, -1.3276466700e+00, 5.6070534000e-01, 1.6405201796e+00, 8.8590319138e+00
|
||||
2.3475000000e+00, -1.3168887100e+00, 5.4946903500e-01, 1.6045170261e+00, 8.8441925199e+00
|
||||
2.3550000000e+00, -1.3057160100e+00, 5.3701756500e-01, 1.5837572842e+00, 8.8493960945e+00
|
||||
2.3625000000e+00, -1.2933918900e+00, 5.2257067000e-01, 1.5611608836e+00, 8.9655506973e+00
|
||||
2.3700000000e+00, -1.2803815800e+00, 5.0420808000e-01, 1.5367494666e+00, 9.1530057152e+00
|
||||
2.3775000000e+00, -1.2710140700e+00, 4.9720522000e-01, 1.5026191797e+00, 8.8744373257e+00
|
||||
2.3850000000e+00, -1.2587865200e+00, 4.7992953500e-01, 1.4696452314e+00, 9.0276609408e+00
|
||||
2.3925000000e+00, -1.2478516100e+00, 4.6678417500e-01, 1.4487901457e+00, 9.0244578382e+00
|
||||
40
src/fox_output/phase_transition/1M/size_40.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6619871300e+00, 8.6870624250e-01, 9.6278777845e-01, 9.3662906498e-01
|
||||
2.1075000000e+00, -1.6547203325e+00, 8.6437105750e-01, 9.8311077964e-01, 1.0346128731e+00
|
||||
2.1150000000e+00, -1.6473785300e+00, 8.6017528750e-01, 1.0109861749e+00, 1.1150123281e+00
|
||||
2.1225000000e+00, -1.6395897775e+00, 8.5516811625e-01, 1.0474455741e+00, 1.2971060290e+00
|
||||
2.1300000000e+00, -1.6312599425e+00, 8.4947010125e-01, 1.0722753911e+00, 1.5035213400e+00
|
||||
2.1375000000e+00, -1.6241147400e+00, 8.4585219625e-01, 1.0785852968e+00, 1.4006910648e+00
|
||||
2.1450000000e+00, -1.6154353900e+00, 8.3964061750e-01, 1.1196777363e+00, 1.6977945481e+00
|
||||
2.1525000000e+00, -1.6066602000e+00, 8.3351204375e-01, 1.1542721941e+00, 1.8895368271e+00
|
||||
2.1600000000e+00, -1.5979234975e+00, 8.2748378125e-01, 1.1841299918e+00, 2.0149041234e+00
|
||||
2.1675000000e+00, -1.5890679950e+00, 8.2065594000e-01, 1.2279168915e+00, 2.3928382622e+00
|
||||
2.1750000000e+00, -1.5797961850e+00, 8.1368810125e-01, 1.2559737783e+00, 2.6842134240e+00
|
||||
2.1825000000e+00, -1.5703906325e+00, 8.0578926750e-01, 1.3035057782e+00, 3.2167249489e+00
|
||||
2.1900000000e+00, -1.5600478750e+00, 7.9750457875e-01, 1.3416942292e+00, 3.4242736182e+00
|
||||
2.1975000000e+00, -1.5496240950e+00, 7.8796541000e-01, 1.3925225739e+00, 4.1589450169e+00
|
||||
2.2050000000e+00, -1.5397732300e+00, 7.7816155750e-01, 1.4422836947e+00, 5.4907415132e+00
|
||||
2.2125000000e+00, -1.5283743325e+00, 7.6732785125e-01, 1.4880825139e+00, 5.9318420661e+00
|
||||
2.2200000000e+00, -1.5170016200e+00, 7.5565237250e-01, 1.5595766066e+00, 6.8132399420e+00
|
||||
2.2275000000e+00, -1.5045914675e+00, 7.3986621875e-01, 1.6280834980e+00, 8.9798473767e+00
|
||||
2.2350000000e+00, -1.4913784100e+00, 7.2382233000e-01, 1.7009293790e+00, 1.0593416364e+01
|
||||
2.2425000000e+00, -1.4781115425e+00, 7.0516521750e-01, 1.8020081436e+00, 1.3620485402e+01
|
||||
2.2500000000e+00, -1.4675678350e+00, 6.9745757625e-01, 1.7598437012e+00, 1.2270503961e+01
|
||||
2.2575000000e+00, -1.4534174775e+00, 6.7418916000e-01, 1.8682062103e+00, 1.6229736752e+01
|
||||
2.2650000000e+00, -1.4389895100e+00, 6.5277034250e-01, 1.9199774739e+00, 1.8545079735e+01
|
||||
2.2725000000e+00, -1.4241354725e+00, 6.2800997875e-01, 1.9579403322e+00, 2.1378318014e+01
|
||||
2.2800000000e+00, -1.4090535575e+00, 6.0315022375e-01, 2.0032088190e+00, 2.4018275994e+01
|
||||
2.2875000000e+00, -1.3927315250e+00, 5.7404195500e-01, 2.0214801295e+00, 2.5782649418e+01
|
||||
2.2950000000e+00, -1.3787226450e+00, 5.4834878500e-01, 2.0266913149e+00, 2.8290948302e+01
|
||||
2.3025000000e+00, -1.3632748550e+00, 5.2135817250e-01, 1.9811668806e+00, 2.8714880199e+01
|
||||
2.3100000000e+00, -1.3464988650e+00, 4.8466357500e-01, 1.9810374067e+00, 3.1760898790e+01
|
||||
2.3175000000e+00, -1.3367379275e+00, 4.7629435000e-01, 1.9081949871e+00, 3.0196817119e+01
|
||||
2.3250000000e+00, -1.3193239250e+00, 4.3652890125e-01, 1.8332484766e+00, 3.0891702871e+01
|
||||
2.3325000000e+00, -1.3071566800e+00, 4.1625584750e-01, 1.7815090084e+00, 3.0666290088e+01
|
||||
2.3400000000e+00, -1.2941572625e+00, 3.9459272000e-01, 1.6840398641e+00, 2.8966338994e+01
|
||||
2.3475000000e+00, -1.2791096525e+00, 3.5942566625e-01, 1.6063090325e+00, 2.8297691660e+01
|
||||
2.3550000000e+00, -1.2699687225e+00, 3.5410390250e-01, 1.5488284969e+00, 2.6883308021e+01
|
||||
2.3625000000e+00, -1.2589335250e+00, 3.3307430750e-01, 1.4942018868e+00, 2.6036581637e+01
|
||||
2.3700000000e+00, -1.2481282425e+00, 3.1721209750e-01, 1.4215856448e+00, 2.4527287084e+01
|
||||
2.3775000000e+00, -1.2352952825e+00, 2.9286225500e-01, 1.3454562572e+00, 2.2568838891e+01
|
||||
2.3850000000e+00, -1.2258446225e+00, 2.8075654750e-01, 1.3150251213e+00, 2.1757694808e+01
|
||||
2.3925000000e+00, -1.2161956225e+00, 2.6596321875e-01, 1.2462566469e+00, 1.9885203794e+01
|
||||
40
src/fox_output/phase_transition/1M/size_60.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6622080778e+00, 8.6888685056e-01, 9.6194394754e-01, 9.5119481140e-01
|
||||
2.1075000000e+00, -1.6549873878e+00, 8.6473504722e-01, 9.7994266077e-01, 9.8953379786e-01
|
||||
2.1150000000e+00, -1.6475207911e+00, 8.6025093389e-01, 1.0081474312e+00, 1.1194559870e+00
|
||||
2.1225000000e+00, -1.6396569767e+00, 8.5545978444e-01, 1.0333044324e+00, 1.2136054089e+00
|
||||
2.1300000000e+00, -1.6315560089e+00, 8.5013030556e-01, 1.0679225878e+00, 1.4175829026e+00
|
||||
2.1375000000e+00, -1.6237534878e+00, 8.4521926944e-01, 1.0902339720e+00, 1.5064789046e+00
|
||||
2.1450000000e+00, -1.6156567900e+00, 8.4024911278e-01, 1.1126210431e+00, 1.5751093021e+00
|
||||
2.1525000000e+00, -1.6069039722e+00, 8.3401459222e-01, 1.1504921905e+00, 1.8536979986e+00
|
||||
2.1600000000e+00, -1.5979708833e+00, 8.2729493611e-01, 1.1859309121e+00, 2.1365010597e+00
|
||||
2.1675000000e+00, -1.5888628356e+00, 8.1998504278e-01, 1.2389330968e+00, 3.0662066078e+00
|
||||
2.1750000000e+00, -1.5794593678e+00, 8.1268006056e-01, 1.2669134996e+00, 2.9580405964e+00
|
||||
2.1825000000e+00, -1.5703313700e+00, 8.0580660333e-01, 1.2987511848e+00, 3.2538479975e+00
|
||||
2.1900000000e+00, -1.5605616589e+00, 7.9825073389e-01, 1.3239144859e+00, 3.3816598902e+00
|
||||
2.1975000000e+00, -1.5503053800e+00, 7.8854590444e-01, 1.3941392783e+00, 4.8355208524e+00
|
||||
2.2050000000e+00, -1.5392911122e+00, 7.7778305833e-01, 1.4627414876e+00, 5.4704647774e+00
|
||||
2.2125000000e+00, -1.5275480522e+00, 7.6369925111e-01, 1.5397805627e+00, 8.2040122202e+00
|
||||
2.2200000000e+00, -1.5158014478e+00, 7.5233748833e-01, 1.5820501294e+00, 8.3633477024e+00
|
||||
2.2275000000e+00, -1.5044431100e+00, 7.3805987833e-01, 1.6702105765e+00, 1.1444973767e+01
|
||||
2.2350000000e+00, -1.4908134933e+00, 7.1846408611e-01, 1.7747717739e+00, 1.7025836469e+01
|
||||
2.2425000000e+00, -1.4794267867e+00, 7.0642548556e-01, 1.8065580310e+00, 1.6643128591e+01
|
||||
2.2500000000e+00, -1.4632736244e+00, 6.7601601611e-01, 1.9665471598e+00, 2.5780870106e+01
|
||||
2.2575000000e+00, -1.4474902822e+00, 6.4792024944e-01, 2.0638894153e+00, 3.2332279841e+01
|
||||
2.2650000000e+00, -1.4342776511e+00, 6.2667603278e-01, 2.1160524277e+00, 3.6569069734e+01
|
||||
2.2725000000e+00, -1.4168885311e+00, 5.8519766833e-01, 2.2426448595e+00, 4.8256403563e+01
|
||||
2.2800000000e+00, -1.4014866000e+00, 5.5902506222e-01, 2.1794665372e+00, 4.7820963877e+01
|
||||
2.2875000000e+00, -1.3828889500e+00, 5.0619922444e-01, 2.2575163767e+00, 6.0784816323e+01
|
||||
2.2950000000e+00, -1.3672035722e+00, 4.7189277611e-01, 2.1713590434e+00, 6.0308487671e+01
|
||||
2.3025000000e+00, -1.3522221378e+00, 4.3997953944e-01, 2.0883776065e+00, 6.1576347491e+01
|
||||
2.3100000000e+00, -1.3364808467e+00, 3.9876774722e-01, 1.9739688332e+00, 6.1903828300e+01
|
||||
2.3175000000e+00, -1.3221950333e+00, 3.6735453056e-01, 1.8578001992e+00, 5.7978537200e+01
|
||||
2.3250000000e+00, -1.3086082244e+00, 3.3554781833e-01, 1.7701015699e+00, 5.5854275464e+01
|
||||
2.3325000000e+00, -1.2954145244e+00, 3.0691911056e-01, 1.6541848788e+00, 5.1358474505e+01
|
||||
2.3400000000e+00, -1.2817812289e+00, 2.7302543333e-01, 1.5532130609e+00, 4.6243909101e+01
|
||||
2.3475000000e+00, -1.2717813078e+00, 2.5766299167e-01, 1.4776751965e+00, 4.2145442090e+01
|
||||
2.3550000000e+00, -1.2605244911e+00, 2.3634089833e-01, 1.3752785899e+00, 3.7570993341e+01
|
||||
2.3625000000e+00, -1.2509552244e+00, 2.2662395778e-01, 1.3451900581e+00, 3.5327196969e+01
|
||||
2.3700000000e+00, -1.2414042567e+00, 2.1529288222e-01, 1.2933073896e+00, 3.2094216452e+01
|
||||
2.3775000000e+00, -1.2317764800e+00, 2.0266740167e-01, 1.2435481044e+00, 2.9164970244e+01
|
||||
2.3850000000e+00, -1.2215126278e+00, 1.8771133444e-01, 1.2131660649e+00, 2.6453223909e+01
|
||||
2.3925000000e+00, -1.2132305378e+00, 1.8020770889e-01, 1.1864433534e+00, 2.4390477910e+01
|
||||
40
src/fox_output/phase_transition/1M/size_80.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6611152931e+00, 8.6340949031e-01, 1.0618085269e+00, 1.0852443221e+01
|
||||
2.1075000000e+00, -1.6544204275e+00, 8.6155289688e-01, 1.0400128767e+00, 6.9729031007e+00
|
||||
2.1150000000e+00, -1.6470948250e+00, 8.5867193781e-01, 1.0299036529e+00, 3.1948548627e+00
|
||||
2.1225000000e+00, -1.6394780825e+00, 8.5489989063e-01, 1.0439477101e+00, 1.4796682043e+00
|
||||
2.1300000000e+00, -1.6314147313e+00, 8.4997307438e-01, 1.0605627746e+00, 1.4245900259e+00
|
||||
2.1375000000e+00, -1.6236637081e+00, 8.4527533875e-01, 1.0878527046e+00, 1.4851799529e+00
|
||||
2.1450000000e+00, -1.6151988531e+00, 8.3900120594e-01, 1.1216531827e+00, 2.1654786567e+00
|
||||
2.1525000000e+00, -1.6070250831e+00, 8.3389557844e-01, 1.1526268945e+00, 1.9005170940e+00
|
||||
2.1600000000e+00, -1.5979811812e+00, 8.2628487844e-01, 1.2084423726e+00, 4.1500628183e+00
|
||||
2.1675000000e+00, -1.5893568400e+00, 8.2104097906e-01, 1.2197362514e+00, 2.4855215778e+00
|
||||
2.1750000000e+00, -1.5794394906e+00, 8.1176008719e-01, 1.3044598514e+00, 4.6511834081e+00
|
||||
2.1825000000e+00, -1.5698832044e+00, 8.0493701562e-01, 1.3006449037e+00, 3.4793099999e+00
|
||||
2.1900000000e+00, -1.5602829925e+00, 7.9736358125e-01, 1.3515457585e+00, 4.2266771835e+00
|
||||
2.1975000000e+00, -1.5497925406e+00, 7.8729946469e-01, 1.4068414325e+00, 5.0638834998e+00
|
||||
2.2050000000e+00, -1.5390119863e+00, 7.7730014344e-01, 1.4643494037e+00, 5.4405468776e+00
|
||||
2.2125000000e+00, -1.5285699319e+00, 7.6719935906e-01, 1.5034112406e+00, 6.4625759488e+00
|
||||
2.2200000000e+00, -1.5171142294e+00, 7.5523221031e-01, 1.5589756465e+00, 7.9371988287e+00
|
||||
2.2275000000e+00, -1.5035502256e+00, 7.3538620594e-01, 1.7201950942e+00, 1.3498598046e+01
|
||||
2.2350000000e+00, -1.4910877356e+00, 7.1870979875e-01, 1.7818562021e+00, 2.0507727756e+01
|
||||
2.2425000000e+00, -1.4776374137e+00, 6.9932284188e-01, 1.9029441484e+00, 2.2569586704e+01
|
||||
2.2500000000e+00, -1.4636506756e+00, 6.7520944500e-01, 1.9715358853e+00, 3.3397397123e+01
|
||||
2.2575000000e+00, -1.4498004187e+00, 6.5661284406e-01, 2.0279597161e+00, 3.1129033200e+01
|
||||
2.2650000000e+00, -1.4317030163e+00, 6.0636967406e-01, 2.2454520636e+00, 6.2220582560e+01
|
||||
2.2725000000e+00, -1.4147509600e+00, 5.6623702656e-01, 2.3519954807e+00, 7.6723434936e+01
|
||||
2.2800000000e+00, -1.3968917619e+00, 5.1493388594e-01, 2.3328505260e+00, 8.9280561280e+01
|
||||
2.2875000000e+00, -1.3791728538e+00, 4.6936874656e-01, 2.2624154006e+00, 9.4482771597e+01
|
||||
2.2950000000e+00, -1.3621004525e+00, 4.1199624188e-01, 2.2062854440e+00, 1.0416939932e+02
|
||||
2.3025000000e+00, -1.3458815494e+00, 3.6842100406e-01, 2.0855720994e+00, 1.0027555856e+02
|
||||
2.3100000000e+00, -1.3308837706e+00, 3.2742871469e-01, 1.9522472057e+00, 9.4090337065e+01
|
||||
2.3175000000e+00, -1.3158857756e+00, 2.8343087094e-01, 1.7976773482e+00, 8.3386605815e+01
|
||||
2.3250000000e+00, -1.3036166513e+00, 2.6015766219e-01, 1.6843061082e+00, 7.5527393718e+01
|
||||
2.3325000000e+00, -1.2922514694e+00, 2.3355912187e-01, 1.5553827112e+00, 6.4357603143e+01
|
||||
2.3400000000e+00, -1.2804114387e+00, 2.1177449906e-01, 1.4768744131e+00, 5.6788424831e+01
|
||||
2.3475000000e+00, -1.2691234206e+00, 1.8963526813e-01, 1.3907998757e+00, 4.6811613355e+01
|
||||
2.3550000000e+00, -1.2595190206e+00, 1.8371780219e-01, 1.3492275159e+00, 4.4324984005e+01
|
||||
2.3625000000e+00, -1.2491626106e+00, 1.6985965719e-01, 1.3084232730e+00, 3.9259174175e+01
|
||||
2.3700000000e+00, -1.2402516969e+00, 1.6480554062e-01, 1.2540739089e+00, 3.6080819148e+01
|
||||
2.3775000000e+00, -1.2306922350e+00, 1.5086369813e-01, 1.2400549904e+00, 3.1139240148e+01
|
||||
2.3850000000e+00, -1.2213978969e+00, 1.4087769937e-01, 1.2043695902e+00, 2.8199665682e+01
|
||||
2.3925000000e+00, -1.2127243256e+00, 1.3146204156e-01, 1.1581351182e+00, 2.4633682284e+01
|
||||
40
src/fox_output/phase_transition/narrow/10M/size_100.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.2500000000e+00, -1.4630702471e+00, 6.7192087056e-01, 2.0363452841e+00, 4.0211670157e+01
|
||||
2.2525000000e+00, -1.4582121657e+00, 6.6326711480e-01, 2.0668726472e+00, 4.3481585217e+01
|
||||
2.2550000000e+00, -1.4523887132e+00, 6.4868430028e-01, 2.1579434204e+00, 5.4610605987e+01
|
||||
2.2575000000e+00, -1.4471388202e+00, 6.3669143184e-01, 2.2032922918e+00, 6.1718440315e+01
|
||||
2.2600000000e+00, -1.4420030878e+00, 6.2617642594e-01, 2.2497064538e+00, 6.8087493057e+01
|
||||
2.2625000000e+00, -1.4366239505e+00, 6.1368608502e-01, 2.2772236026e+00, 7.3801328327e+01
|
||||
2.2650000000e+00, -1.4302142018e+00, 5.9318813548e-01, 2.3618057524e+00, 9.0807426765e+01
|
||||
2.2675000000e+00, -1.4240230340e+00, 5.7522511882e-01, 2.4014389200e+00, 1.0123871530e+02
|
||||
2.2700000000e+00, -1.4184015060e+00, 5.6040772050e-01, 2.4352841697e+00, 1.0856964966e+02
|
||||
2.2725000000e+00, -1.4120140744e+00, 5.4080363450e-01, 2.4564787945e+00, 1.1826287788e+02
|
||||
2.2750000000e+00, -1.4065071278e+00, 5.2730015894e-01, 2.4533336318e+00, 1.1971260958e+02
|
||||
2.2775000000e+00, -1.3988700427e+00, 4.9598705444e-01, 2.4764057996e+00, 1.3608523420e+02
|
||||
2.2800000000e+00, -1.3946380122e+00, 4.8909316544e-01, 2.4672961961e+00, 1.3572838846e+02
|
||||
2.2825000000e+00, -1.3867274572e+00, 4.5356647532e-01, 2.4397368512e+00, 1.5072953783e+02
|
||||
2.2850000000e+00, -1.3820433281e+00, 4.4365303836e-01, 2.4372911810e+00, 1.5176852274e+02
|
||||
2.2875000000e+00, -1.3757609391e+00, 4.2027366002e-01, 2.3834954652e+00, 1.5562267089e+02
|
||||
2.2900000000e+00, -1.3699932680e+00, 4.0203585544e-01, 2.3131603185e+00, 1.5162759355e+02
|
||||
2.2925000000e+00, -1.3642535463e+00, 3.8349139394e-01, 2.2598826478e+00, 1.4977060911e+02
|
||||
2.2950000000e+00, -1.3582063025e+00, 3.6207195596e-01, 2.2086064984e+00, 1.4944093074e+02
|
||||
2.2975000000e+00, -1.3525614743e+00, 3.3910567174e-01, 2.1307108996e+00, 1.4696613518e+02
|
||||
2.3000000000e+00, -1.3474292698e+00, 3.2611322354e-01, 2.0739155399e+00, 1.4165341553e+02
|
||||
2.3025000000e+00, -1.3428225612e+00, 3.1598743028e-01, 2.0286183499e+00, 1.3722197296e+02
|
||||
2.3050000000e+00, -1.3374535926e+00, 2.9622499528e-01, 1.9470786910e+00, 1.2980932384e+02
|
||||
2.3075000000e+00, -1.3326794948e+00, 2.7983419438e-01, 1.9077124475e+00, 1.2599658825e+02
|
||||
2.3100000000e+00, -1.3279307203e+00, 2.6961650340e-01, 1.8513949483e+00, 1.1892030700e+02
|
||||
2.3125000000e+00, -1.3234768880e+00, 2.5783263918e-01, 1.7961238310e+00, 1.1199143115e+02
|
||||
2.3150000000e+00, -1.3194755980e+00, 2.4929885364e-01, 1.7683294099e+00, 1.0913079133e+02
|
||||
2.3175000000e+00, -1.3148917972e+00, 2.3723529884e-01, 1.7139318242e+00, 1.0171914684e+02
|
||||
2.3200000000e+00, -1.3103352147e+00, 2.2557032790e-01, 1.6722648266e+00, 9.5982268209e+01
|
||||
2.3225000000e+00, -1.3062520882e+00, 2.1723973616e-01, 1.6310340538e+00, 8.8645618691e+01
|
||||
2.3250000000e+00, -1.3023325482e+00, 2.1042942716e-01, 1.6120881189e+00, 8.5718374757e+01
|
||||
2.3275000000e+00, -1.2985990209e+00, 2.0417547028e-01, 1.5713255852e+00, 8.1594412195e+01
|
||||
2.3300000000e+00, -1.2941950522e+00, 1.9193825140e-01, 1.5307129909e+00, 7.5355739457e+01
|
||||
2.3325000000e+00, -1.2906244587e+00, 1.8697928934e-01, 1.4989932079e+00, 7.1966188460e+01
|
||||
2.3350000000e+00, -1.2870125099e+00, 1.8322859546e-01, 1.4942061983e+00, 6.9279191895e+01
|
||||
2.3375000000e+00, -1.2832793088e+00, 1.7663095666e-01, 1.4726315260e+00, 6.6151512652e+01
|
||||
2.3400000000e+00, -1.2796276076e+00, 1.7068684940e-01, 1.4428168254e+00, 6.2106112150e+01
|
||||
2.3425000000e+00, -1.2758878378e+00, 1.6461664410e-01, 1.4149951896e+00, 5.7631104090e+01
|
||||
2.3450000000e+00, -1.2724819006e+00, 1.5981982290e-01, 1.4050620274e+00, 5.5437469319e+01
|
||||
2.3475000000e+00, -1.2689980268e+00, 1.5625960596e-01, 1.3783018367e+00, 5.2692111669e+01
|
||||
40
src/fox_output/phase_transition/narrow/10M/size_20.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.2500000000e+00, -1.4760055140e+00, 7.2509120350e-01, 1.5488864049e+00, 5.1329182443e+00
|
||||
2.2525000000e+00, -1.4714172380e+00, 7.1992093450e-01, 1.5620866656e+00, 5.3254079008e+00
|
||||
2.2550000000e+00, -1.4683262850e+00, 7.1763960250e-01, 1.5614286662e+00, 5.3351527904e+00
|
||||
2.2575000000e+00, -1.4634208760e+00, 7.1172882350e-01, 1.5819132445e+00, 5.5963010617e+00
|
||||
2.2600000000e+00, -1.4597743530e+00, 7.0854952600e-01, 1.5860176062e+00, 5.6537789257e+00
|
||||
2.2625000000e+00, -1.4559113170e+00, 7.0461177500e-01, 1.5934371372e+00, 5.7754050451e+00
|
||||
2.2650000000e+00, -1.4518668450e+00, 7.0028335000e-01, 1.6006376094e+00, 5.9161190495e+00
|
||||
2.2675000000e+00, -1.4473010200e+00, 6.9544615500e-01, 1.6134269827e+00, 6.0761377457e+00
|
||||
2.2700000000e+00, -1.4439071380e+00, 6.9236370550e-01, 1.6172840717e+00, 6.1417450729e+00
|
||||
2.2725000000e+00, -1.4396082710e+00, 6.8777897750e-01, 1.6187780564e+00, 6.2676907946e+00
|
||||
2.2750000000e+00, -1.4360680090e+00, 6.8424494950e-01, 1.6275143935e+00, 6.3583625760e+00
|
||||
2.2775000000e+00, -1.4319873050e+00, 6.7986104750e-01, 1.6295487833e+00, 6.4862127086e+00
|
||||
2.2800000000e+00, -1.4281102440e+00, 6.7589725450e-01, 1.6351555326e+00, 6.5900988837e+00
|
||||
2.2825000000e+00, -1.4232270850e+00, 6.7011312200e-01, 1.6438716931e+00, 6.7743108300e+00
|
||||
2.2850000000e+00, -1.4197380570e+00, 6.6712843350e-01, 1.6412693279e+00, 6.7789734675e+00
|
||||
2.2875000000e+00, -1.4149463980e+00, 6.6152106250e-01, 1.6483423299e+00, 6.9431250136e+00
|
||||
2.2900000000e+00, -1.4110206200e+00, 6.5735840400e-01, 1.6567205579e+00, 7.0708677835e+00
|
||||
2.2925000000e+00, -1.4069719780e+00, 6.5299557050e-01, 1.6563129403e+00, 7.1616848174e+00
|
||||
2.2950000000e+00, -1.4025747220e+00, 6.4768442450e-01, 1.6636147082e+00, 7.3277432074e+00
|
||||
2.2975000000e+00, -1.3985642270e+00, 6.4371117050e-01, 1.6610626967e+00, 7.3876691910e+00
|
||||
2.3000000000e+00, -1.3953596710e+00, 6.4089173200e-01, 1.6582176255e+00, 7.4069447390e+00
|
||||
2.3025000000e+00, -1.3905320880e+00, 6.3454862100e-01, 1.6647450820e+00, 7.5918129254e+00
|
||||
2.3050000000e+00, -1.3867035410e+00, 6.3112727200e-01, 1.6640124455e+00, 7.6212441610e+00
|
||||
2.3075000000e+00, -1.3817220780e+00, 6.2455321800e-01, 1.6648026695e+00, 7.8134297536e+00
|
||||
2.3100000000e+00, -1.3788079300e+00, 6.2225659600e-01, 1.6608575168e+00, 7.7901860597e+00
|
||||
2.3125000000e+00, -1.3740464170e+00, 6.1597296050e-01, 1.6665473514e+00, 7.9850814271e+00
|
||||
2.3150000000e+00, -1.3700669540e+00, 6.1178907300e-01, 1.6628870986e+00, 8.0193582217e+00
|
||||
2.3175000000e+00, -1.3653584450e+00, 6.0582096650e-01, 1.6607010865e+00, 8.1687998717e+00
|
||||
2.3200000000e+00, -1.3611828270e+00, 6.0166864300e-01, 1.6570463236e+00, 8.1856660044e+00
|
||||
2.3225000000e+00, -1.3573465490e+00, 5.9734529100e-01, 1.6601169469e+00, 8.2565492487e+00
|
||||
2.3250000000e+00, -1.3532659120e+00, 5.9198527250e-01, 1.6557913077e+00, 8.3877987967e+00
|
||||
2.3275000000e+00, -1.3486450920e+00, 5.8656245700e-01, 1.6522556919e+00, 8.4544932800e+00
|
||||
2.3300000000e+00, -1.3447285410e+00, 5.8244512950e-01, 1.6498722504e+00, 8.4827382110e+00
|
||||
2.3325000000e+00, -1.3410320410e+00, 5.7819664450e-01, 1.6421256177e+00, 8.5480698292e+00
|
||||
2.3350000000e+00, -1.3356057200e+00, 5.7078220700e-01, 1.6396138328e+00, 8.6684933417e+00
|
||||
2.3375000000e+00, -1.3323923130e+00, 5.6772693400e-01, 1.6325456425e+00, 8.6744612485e+00
|
||||
2.3400000000e+00, -1.3281347240e+00, 5.6281297650e-01, 1.6298283458e+00, 8.7213690745e+00
|
||||
2.3425000000e+00, -1.3244445090e+00, 5.5849605250e-01, 1.6264216352e+00, 8.7734106099e+00
|
||||
2.3450000000e+00, -1.3201245210e+00, 5.5326361400e-01, 1.6172302519e+00, 8.8185734718e+00
|
||||
2.3475000000e+00, -1.3169210760e+00, 5.5006444500e-01, 1.6080278323e+00, 8.8098820195e+00
|
||||
40
src/fox_output/phase_transition/narrow/10M/size_40.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.2500000000e+00, -1.4658665675e+00, 6.9009827750e-01, 1.8282261494e+00, 1.4789258024e+01
|
||||
2.2525000000e+00, -1.4621428187e+00, 6.8663684050e-01, 1.8234154744e+00, 1.4680857592e+01
|
||||
2.2550000000e+00, -1.4563235665e+00, 6.7628268338e-01, 1.8789537988e+00, 1.6321934374e+01
|
||||
2.2575000000e+00, -1.4520771750e+00, 6.7086651375e-01, 1.8784664262e+00, 1.6699166991e+01
|
||||
2.2600000000e+00, -1.4481605930e+00, 6.6584882412e-01, 1.8929703283e+00, 1.7234434463e+01
|
||||
2.2625000000e+00, -1.4429766945e+00, 6.5744341662e-01, 1.9114068264e+00, 1.8205340062e+01
|
||||
2.2650000000e+00, -1.4376813635e+00, 6.4879445062e-01, 1.9362034284e+00, 1.9265359481e+01
|
||||
2.2675000000e+00, -1.4331159547e+00, 6.4256763937e-01, 1.9396101059e+00, 1.9575769593e+01
|
||||
2.2700000000e+00, -1.4278603807e+00, 6.3280855525e-01, 1.9643363473e+00, 2.0980657866e+01
|
||||
2.2725000000e+00, -1.4237220365e+00, 6.2745456550e-01, 1.9670480683e+00, 2.1266083547e+01
|
||||
2.2750000000e+00, -1.4184446575e+00, 6.1849765112e-01, 1.9817863554e+00, 2.2128060931e+01
|
||||
2.2775000000e+00, -1.4133180445e+00, 6.0966742462e-01, 1.9912466042e+00, 2.3024760890e+01
|
||||
2.2800000000e+00, -1.4088706427e+00, 6.0313045737e-01, 1.9927419592e+00, 2.3460754796e+01
|
||||
2.2825000000e+00, -1.4031968317e+00, 5.9183430638e-01, 2.0103485986e+00, 2.4781218311e+01
|
||||
2.2850000000e+00, -1.3984974605e+00, 5.8496842712e-01, 2.0021093770e+00, 2.4989678568e+01
|
||||
2.2875000000e+00, -1.3929969167e+00, 5.7439402875e-01, 2.0126501937e+00, 2.6017679338e+01
|
||||
2.2900000000e+00, -1.3882590802e+00, 5.6569784362e-01, 2.0183666113e+00, 2.6806981880e+01
|
||||
2.2925000000e+00, -1.3835308192e+00, 5.5851043225e-01, 2.0129906857e+00, 2.7094883127e+01
|
||||
2.2950000000e+00, -1.3782046672e+00, 5.4769430612e-01, 2.0161176652e+00, 2.8132369135e+01
|
||||
2.2975000000e+00, -1.3733293087e+00, 5.3922661138e-01, 2.0025440595e+00, 2.8316677686e+01
|
||||
2.3000000000e+00, -1.3682134597e+00, 5.2967689825e-01, 1.9984977821e+00, 2.8928314364e+01
|
||||
2.3025000000e+00, -1.3629695397e+00, 5.2046633750e-01, 1.9906389108e+00, 2.9252353990e+01
|
||||
2.3050000000e+00, -1.3576109607e+00, 5.0880111587e-01, 1.9815946997e+00, 2.9924988472e+01
|
||||
2.3075000000e+00, -1.3528662940e+00, 5.0069343275e-01, 1.9715398454e+00, 3.0257695374e+01
|
||||
2.3100000000e+00, -1.3479972442e+00, 4.9168239337e-01, 1.9499792058e+00, 3.0301814684e+01
|
||||
2.3125000000e+00, -1.3433033492e+00, 4.8366435562e-01, 1.9313170675e+00, 3.0328343860e+01
|
||||
2.3150000000e+00, -1.3386833770e+00, 4.7494896562e-01, 1.9186483628e+00, 3.0614588090e+01
|
||||
2.3175000000e+00, -1.3337247107e+00, 4.6585841338e-01, 1.8860457394e+00, 3.0587309382e+01
|
||||
2.3200000000e+00, -1.3294610497e+00, 4.5910357150e-01, 1.8803003421e+00, 3.0443803709e+01
|
||||
2.3225000000e+00, -1.3241378272e+00, 4.4769015850e-01, 1.8581981495e+00, 3.0709456585e+01
|
||||
2.3250000000e+00, -1.3203120975e+00, 4.4169210625e-01, 1.8370693872e+00, 3.0533840288e+01
|
||||
2.3275000000e+00, -1.3151801413e+00, 4.3053093025e-01, 1.8099161544e+00, 3.0585310804e+01
|
||||
2.3300000000e+00, -1.3106553332e+00, 4.2269544125e-01, 1.7865449716e+00, 3.0233175672e+01
|
||||
2.3325000000e+00, -1.3062069510e+00, 4.1444754362e-01, 1.7664171308e+00, 3.0174530157e+01
|
||||
2.3350000000e+00, -1.3015074315e+00, 4.0494823625e-01, 1.7438755272e+00, 2.9965529281e+01
|
||||
2.3375000000e+00, -1.2983139277e+00, 4.0227484025e-01, 1.7287481683e+00, 2.9545894598e+01
|
||||
2.3400000000e+00, -1.2933758297e+00, 3.9021917612e-01, 1.6931434207e+00, 2.9468103538e+01
|
||||
2.3425000000e+00, -1.2887251920e+00, 3.8213979275e-01, 1.6634708845e+00, 2.8959052031e+01
|
||||
2.3450000000e+00, -1.2848995045e+00, 3.7551329362e-01, 1.6463099981e+00, 2.8680856811e+01
|
||||
2.3475000000e+00, -1.2809898222e+00, 3.6910969900e-01, 1.6242627476e+00, 2.8343736797e+01
|
||||
40
src/fox_output/phase_transition/narrow/10M/size_60.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.2500000000e+00, -1.4642122962e+00, 6.7994580367e-01, 1.9335707123e+00, 2.4195892448e+01
|
||||
2.2525000000e+00, -1.4588191130e+00, 6.6989363667e-01, 1.9807253534e+00, 2.6957921223e+01
|
||||
2.2550000000e+00, -1.4547455032e+00, 6.6414331111e-01, 1.9944127882e+00, 2.7782971173e+01
|
||||
2.2575000000e+00, -1.4491231267e+00, 6.5366403422e-01, 2.0323188517e+00, 2.9924756599e+01
|
||||
2.2600000000e+00, -1.4442960393e+00, 6.4578597656e-01, 2.0373247646e+00, 3.1067582765e+01
|
||||
2.2625000000e+00, -1.4382781976e+00, 6.3109283283e-01, 2.1082209318e+00, 3.6567781596e+01
|
||||
2.2650000000e+00, -1.4336508323e+00, 6.2323950639e-01, 2.1148708559e+00, 3.7889353519e+01
|
||||
2.2675000000e+00, -1.4283239760e+00, 6.1342637917e-01, 2.1266849714e+00, 3.9037123673e+01
|
||||
2.2700000000e+00, -1.4236147338e+00, 6.0508616078e-01, 2.1583202272e+00, 4.0774167180e+01
|
||||
2.2725000000e+00, -1.4173105967e+00, 5.8906219606e-01, 2.1876748233e+00, 4.5479634100e+01
|
||||
2.2750000000e+00, -1.4119935662e+00, 5.7853414667e-01, 2.1952381492e+00, 4.7194662621e+01
|
||||
2.2775000000e+00, -1.4066663738e+00, 5.6665659378e-01, 2.2077291633e+00, 4.9384301331e+01
|
||||
2.2800000000e+00, -1.4010864314e+00, 5.5433652700e-01, 2.2067872858e+00, 5.0856062627e+01
|
||||
2.2825000000e+00, -1.3954072743e+00, 5.4091683089e-01, 2.2166830196e+00, 5.3886117763e+01
|
||||
2.2850000000e+00, -1.3899328958e+00, 5.2855233850e-01, 2.2109157176e+00, 5.5291160779e+01
|
||||
2.2875000000e+00, -1.3837404016e+00, 5.1147773006e-01, 2.2060599590e+00, 5.8408761001e+01
|
||||
2.2900000000e+00, -1.3781779352e+00, 4.9739228233e-01, 2.2027462418e+00, 5.9930065470e+01
|
||||
2.2925000000e+00, -1.3736503641e+00, 4.8916883578e-01, 2.1766282284e+00, 6.0261322963e+01
|
||||
2.2950000000e+00, -1.3677078719e+00, 4.7330444556e-01, 2.1693963807e+00, 6.1602596036e+01
|
||||
2.2975000000e+00, -1.3628985669e+00, 4.6426149572e-01, 2.1452409557e+00, 6.1464993936e+01
|
||||
2.3000000000e+00, -1.3572950958e+00, 4.4965298467e-01, 2.1246189018e+00, 6.2672740860e+01
|
||||
2.3025000000e+00, -1.3516640627e+00, 4.3448786589e-01, 2.0864856772e+00, 6.2919171660e+01
|
||||
2.3050000000e+00, -1.3464162742e+00, 4.2218848556e-01, 2.0569484110e+00, 6.2376525051e+01
|
||||
2.3075000000e+00, -1.3417831320e+00, 4.1229483900e-01, 2.0193740991e+00, 6.1622409737e+01
|
||||
2.3100000000e+00, -1.3362589748e+00, 3.9662230433e-01, 1.9882937826e+00, 6.2021272068e+01
|
||||
2.3125000000e+00, -1.3319032623e+00, 3.8857178539e-01, 1.9495480437e+00, 6.0884525815e+01
|
||||
2.3150000000e+00, -1.3266427903e+00, 3.7574982106e-01, 1.9127757171e+00, 6.0188079919e+01
|
||||
2.3175000000e+00, -1.3225805261e+00, 3.6817130944e-01, 1.8856939938e+00, 5.9104598205e+01
|
||||
2.3200000000e+00, -1.3175313667e+00, 3.5494466689e-01, 1.8487808089e+00, 5.8401929288e+01
|
||||
2.3225000000e+00, -1.3127606597e+00, 3.4192928189e-01, 1.8057779680e+00, 5.7378930979e+01
|
||||
2.3250000000e+00, -1.3080522071e+00, 3.3208573139e-01, 1.7641198391e+00, 5.5629081184e+01
|
||||
2.3275000000e+00, -1.3037944498e+00, 3.2255109967e-01, 1.7338444351e+00, 5.4587605817e+01
|
||||
2.3300000000e+00, -1.2992621244e+00, 3.1258479567e-01, 1.6932086611e+00, 5.2751776087e+01
|
||||
2.3325000000e+00, -1.2955636976e+00, 3.0652652594e-01, 1.6635455939e+00, 5.1682828184e+01
|
||||
2.3350000000e+00, -1.2910547050e+00, 2.9543416611e-01, 1.6227840705e+00, 4.9636089234e+01
|
||||
2.3375000000e+00, -1.2877701480e+00, 2.9247670172e-01, 1.6066422830e+00, 4.8910602467e+01
|
||||
2.3400000000e+00, -1.2834463977e+00, 2.8332831728e-01, 1.5748113907e+00, 4.7252385941e+01
|
||||
2.3425000000e+00, -1.2795578357e+00, 2.7449714039e-01, 1.5407943555e+00, 4.5834386692e+01
|
||||
2.3450000000e+00, -1.2754067316e+00, 2.6571358072e-01, 1.5132503455e+00, 4.4201008724e+01
|
||||
2.3475000000e+00, -1.2720557306e+00, 2.6089525606e-01, 1.4886165165e+00, 4.2996278036e+01
|
||||
40
src/fox_output/phase_transition/narrow/10M/size_80.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.2500000000e+00, -1.4631811785e+00, 6.7398407534e-01, 2.0096491323e+00, 3.2923111764e+01
|
||||
2.2525000000e+00, -1.4585874794e+00, 6.6613729503e-01, 2.0338508471e+00, 3.5718745197e+01
|
||||
2.2550000000e+00, -1.4538329174e+00, 6.5819939150e-01, 2.0536049316e+00, 3.7496823262e+01
|
||||
2.2575000000e+00, -1.4479207612e+00, 6.4446161062e-01, 2.1116907388e+00, 4.3164593615e+01
|
||||
2.2600000000e+00, -1.4422029162e+00, 6.2990890313e-01, 2.1905541146e+00, 5.2676717813e+01
|
||||
2.2625000000e+00, -1.4363526062e+00, 6.1564587419e-01, 2.2365605276e+00, 5.8775246745e+01
|
||||
2.2650000000e+00, -1.4317779706e+00, 6.0741634762e-01, 2.2490609596e+00, 6.0297189148e+01
|
||||
2.2675000000e+00, -1.4260911044e+00, 5.9480573522e-01, 2.2596678581e+00, 6.4467098827e+01
|
||||
2.2700000000e+00, -1.4206095042e+00, 5.8201793950e-01, 2.2864923912e+00, 6.8497706170e+01
|
||||
2.2725000000e+00, -1.4140089323e+00, 5.6265936150e-01, 2.3279169527e+00, 7.6977731449e+01
|
||||
2.2750000000e+00, -1.4079992252e+00, 5.4524403075e-01, 2.3703005464e+00, 8.4185914361e+01
|
||||
2.2775000000e+00, -1.4017046041e+00, 5.2568029716e-01, 2.3732372275e+00, 9.1024691361e+01
|
||||
2.2800000000e+00, -1.3975350481e+00, 5.2113203306e-01, 2.3543987425e+00, 8.7330915293e+01
|
||||
2.2825000000e+00, -1.3910354120e+00, 5.0042143784e-01, 2.3579342756e+00, 9.3965131923e+01
|
||||
2.2850000000e+00, -1.3846384367e+00, 4.7965986969e-01, 2.3511051154e+00, 9.9030416283e+01
|
||||
2.2875000000e+00, -1.3786805619e+00, 4.6288075194e-01, 2.3214343427e+00, 1.0015455240e+02
|
||||
2.2900000000e+00, -1.3728631380e+00, 4.4354797547e-01, 2.2977622632e+00, 1.0441100615e+02
|
||||
2.2925000000e+00, -1.3681270040e+00, 4.3523919316e-01, 2.2585729849e+00, 1.0107312359e+02
|
||||
2.2950000000e+00, -1.3624504602e+00, 4.1673254603e-01, 2.2389047831e+00, 1.0403363863e+02
|
||||
2.2975000000e+00, -1.3565953786e+00, 3.9838756094e-01, 2.1824829900e+00, 1.0383821824e+02
|
||||
2.3000000000e+00, -1.3511819856e+00, 3.8332719588e-01, 2.1263252655e+00, 1.0201495996e+02
|
||||
2.3025000000e+00, -1.3459750036e+00, 3.6852182503e-01, 2.0584668387e+00, 9.9043185844e+01
|
||||
2.3050000000e+00, -1.3410449433e+00, 3.5529420228e-01, 2.0233641780e+00, 9.8051738051e+01
|
||||
2.3075000000e+00, -1.3356380574e+00, 3.3821511019e-01, 1.9765817132e+00, 9.6610908663e+01
|
||||
2.3100000000e+00, -1.3312335792e+00, 3.2791911334e-01, 1.9482717900e+00, 9.3938812725e+01
|
||||
2.3125000000e+00, -1.3265281407e+00, 3.1650024103e-01, 1.8866108078e+00, 9.0745642785e+01
|
||||
2.3150000000e+00, -1.3213570816e+00, 3.0165088591e-01, 1.8328587933e+00, 8.6773821212e+01
|
||||
2.3175000000e+00, -1.3169661819e+00, 2.9025108787e-01, 1.7849045063e+00, 8.3756495749e+01
|
||||
2.3200000000e+00, -1.3123531422e+00, 2.7861143534e-01, 1.7532314462e+00, 8.0700260422e+01
|
||||
2.3225000000e+00, -1.3081331530e+00, 2.6924682031e-01, 1.6993863803e+00, 7.7356207676e+01
|
||||
2.3250000000e+00, -1.3039487514e+00, 2.6017408491e-01, 1.6719621986e+00, 7.4762050132e+01
|
||||
2.3275000000e+00, -1.3001743636e+00, 2.5394626256e-01, 1.6411234741e+00, 7.1864351455e+01
|
||||
2.3300000000e+00, -1.2954729226e+00, 2.4022551831e-01, 1.5937347320e+00, 6.7652303476e+01
|
||||
2.3325000000e+00, -1.2918274963e+00, 2.3413760969e-01, 1.5608875327e+00, 6.4537229062e+01
|
||||
2.3350000000e+00, -1.2883449654e+00, 2.2984127650e-01, 1.5380256275e+00, 6.3247579985e+01
|
||||
2.3375000000e+00, -1.2842525830e+00, 2.2127140538e-01, 1.5096960822e+00, 6.0113946712e+01
|
||||
2.3400000000e+00, -1.2803538262e+00, 2.1303147959e-01, 1.4843229112e+00, 5.7133039949e+01
|
||||
2.3425000000e+00, -1.2767572134e+00, 2.0771398800e-01, 1.4554302732e+00, 5.4780330832e+01
|
||||
2.3450000000e+00, -1.2730700894e+00, 2.0096379172e-01, 1.4347401282e+00, 5.1677318731e+01
|
||||
2.3475000000e+00, -1.2695535104e+00, 1.9664818894e-01, 1.4155735395e+00, 5.0309401513e+01
|
||||
43
src/main.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
/** @file main.cpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 0.1
|
||||
*
|
||||
* @brief The main program
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#include "monte_carlo.hpp"
|
||||
#include "utils.hpp"
|
||||
|
||||
#include <iostream>
|
||||
#include <omp.h>
|
||||
|
||||
/** @brief The main function.*/
|
||||
int main()
|
||||
{
|
||||
// uint test_cycles = test_2x2_lattice(1e-7, 10000);
|
||||
// monte_carlo(1.0, 2, 10000, "output/2_lattice_test.txt");
|
||||
|
||||
// Test burn-in time
|
||||
monte_carlo_progression(1.0, 20, 10000, "output/burn_in_time_1_0.txt");
|
||||
monte_carlo_progression(2.4, 20, 10000, "output/burn_in_time_2_4.txt");
|
||||
|
||||
// Test the openmp speedup
|
||||
double t0, t1, t2;
|
||||
t0 = omp_get_wtime();
|
||||
phase_transition(20, 2.1, 2.4, 1000, monte_carlo_serial,
|
||||
"output/phase_transition/size_20.txt");
|
||||
t1 = omp_get_wtime();
|
||||
phase_transition(20, 2.1, 2.4, 1000, monte_carlo_parallel,
|
||||
"output/phase_transition/size_20.txt");
|
||||
t2 = omp_get_wtime();
|
||||
|
||||
std::cout << "Time serial : " << t1 - t0 << " seconds" << '\n';
|
||||
std::cout << "Time parallel : " << t2 - t1 << " seconds" << '\n';
|
||||
std::cout << "Speedup parallel: " << (t1 - t0) / (t2 - t1) << '\n';
|
||||
|
||||
return 0;
|
||||
}
|
||||
195
src/monte_carlo.cpp
Normal file
@ -0,0 +1,195 @@
|
||||
/** @file monte_carlo.cpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 1.0
|
||||
*
|
||||
* @brief Implementation of the monte carlo functions
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#include "monte_carlo.hpp"
|
||||
|
||||
uint test_2x2_lattice(double tol, uint max_cycles)
|
||||
{
|
||||
data_t data, tmp;
|
||||
size_t L = 2;
|
||||
size_t n_spins = L * L;
|
||||
double T = 1.;
|
||||
size_t cycles = 0;
|
||||
|
||||
// Create random engine using the mersenne twister
|
||||
std::random_device rd;
|
||||
std::mt19937 engine(rd());
|
||||
|
||||
IsingModel test(L, T);
|
||||
|
||||
double E, M;
|
||||
|
||||
std::function<bool(double, double)> is_close = [tol](double a, double b) {
|
||||
return std::abs(a - b) < tol;
|
||||
};
|
||||
|
||||
// Loop through cycles
|
||||
while (cycles++ < max_cycles) {
|
||||
data += test.Metropolis(engine);
|
||||
tmp = data / (cycles * n_spins);
|
||||
// if (close(EPS_2, tmp.E)
|
||||
//&& close(MAG_2, tmp.M)
|
||||
//&& close(CV_2, (tmp.E2 - tmp.E * tmp.E) / (T * T))
|
||||
//&& close(X_2, (tmp.M2 - tmp.M_abs * tmp.M_abs) / T)) {
|
||||
// return cycles;
|
||||
//}
|
||||
if (is_close(EPS_2, tmp.E) && is_close(MAG_2, tmp.M)) {
|
||||
return cycles;
|
||||
}
|
||||
}
|
||||
std::cout << "hello" << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void monte_carlo_progression(double T, uint L, uint cycles,
|
||||
const std::string filename)
|
||||
{
|
||||
// Set some variables
|
||||
data_t data, tmp;
|
||||
uint n_spins = L * L;
|
||||
|
||||
// File stuff
|
||||
std::string directory = utils::dirname(filename);
|
||||
std::ofstream ofile;
|
||||
|
||||
// Create random engine using the mersenne twister
|
||||
std::random_device rd;
|
||||
std::mt19937 engine(rd());
|
||||
|
||||
IsingModel ising(L, T);
|
||||
|
||||
// Create path and open file
|
||||
utils::mkpath(directory);
|
||||
ofile.open(filename);
|
||||
|
||||
// Loop through cycles
|
||||
for (size_t i = 1; i <= cycles; i++) {
|
||||
data += ising.Metropolis(engine);
|
||||
tmp = data / (i * n_spins);
|
||||
ofile << i << ',' << tmp.E << ',' << tmp.E2 << ',' << tmp.M << ','
|
||||
<< tmp.M2 << ',' << tmp.M_abs << '\n';
|
||||
}
|
||||
ofile.close();
|
||||
}
|
||||
|
||||
void pd_estimate(double T, uint L, uint cycles, const std::string filename)
|
||||
{
|
||||
// Set some variables
|
||||
data_t data;
|
||||
uint n_spins = L * L;
|
||||
|
||||
// File stuff
|
||||
std::string directory = utils::dirname(filename);
|
||||
std::ofstream ofile;
|
||||
|
||||
// Create random engine using the mersenne twister
|
||||
std::random_device rd;
|
||||
std::mt19937 engine(rd());
|
||||
|
||||
IsingModel ising(L, T);
|
||||
|
||||
// Create path and open file
|
||||
utils::mkpath(directory);
|
||||
ofile.open(filename);
|
||||
|
||||
double E, M;
|
||||
|
||||
// Figure out bin widths and such
|
||||
}
|
||||
|
||||
// Code for seeing phase transitions.
|
||||
void monte_carlo_serial(data_t &data, uint L, double T, uint cycles)
|
||||
{
|
||||
IsingModel model(L, T);
|
||||
// Create random engine using the mersenne twister
|
||||
std::random_device rd;
|
||||
std::mt19937 engine(rd());
|
||||
|
||||
for (size_t i = 0; i < BURN_IN_TIME; i++) {
|
||||
model.Metropolis(engine);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < cycles; i++) {
|
||||
data += model.Metropolis(engine);
|
||||
}
|
||||
data /= cycles;
|
||||
}
|
||||
|
||||
void monte_carlo_parallel(data_t &data, uint L, double T, uint cycles)
|
||||
{
|
||||
#pragma omp parallel
|
||||
{
|
||||
// Each thread creates an instance of IsingModel.
|
||||
IsingModel model(L, T);
|
||||
// Each thread creates an instance of the mersenne twister
|
||||
std::random_device rd;
|
||||
std::mt19937 engine(rd());
|
||||
|
||||
data_t tmp;
|
||||
|
||||
// Each thread runs the Metropolis algorithm before starting to collect
|
||||
// samples
|
||||
for (size_t i = 0; i < BURN_IN_TIME; i++) {
|
||||
model.Metropolis(engine);
|
||||
}
|
||||
|
||||
// Now each thread work on one loop together, but using their own
|
||||
// instances of things, but the total of cycles add up.
|
||||
// static ensure that each thread gets the same amount of iterations
|
||||
#pragma omp for schedule(static)
|
||||
for (size_t i = 0; i < cycles; i++) {
|
||||
tmp = tmp + model.Metropolis(engine);
|
||||
}
|
||||
|
||||
// Combine all the data.
|
||||
#pragma omp critical
|
||||
{
|
||||
data += tmp;
|
||||
}
|
||||
}
|
||||
|
||||
data /= cycles;
|
||||
}
|
||||
|
||||
void phase_transition(
|
||||
uint L, double start_T, double end_T, uint points_T,
|
||||
std::function<void(data_t &, uint, double, uint)> monte_carlo,
|
||||
std::string outfile)
|
||||
{
|
||||
double dt_T = (end_T - start_T) / points_T;
|
||||
uint cycles = 10000;
|
||||
uint N = L * L;
|
||||
std::ofstream ofile;
|
||||
|
||||
data_t data[points_T];
|
||||
|
||||
for (size_t i = 0; i < points_T; i++) {
|
||||
monte_carlo(data[i], L, start_T + dt_T * i, cycles);
|
||||
}
|
||||
|
||||
utils::mkpath(utils::dirname(outfile));
|
||||
ofile.open(outfile);
|
||||
|
||||
double temp, CV, X;
|
||||
|
||||
using utils::scientific_format;
|
||||
for (size_t i = 0; i < points_T; i++) {
|
||||
temp = start_T + dt_T * i;
|
||||
CV = (data[i].E2 - data[i].E * data[i].E) / (N * temp * temp);
|
||||
X = (data[i].M2 - data[i].M_abs * data[i].M_abs) / (N * temp);
|
||||
|
||||
ofile << scientific_format(temp) << ','
|
||||
<< scientific_format(data[i].E / N) << ','
|
||||
<< scientific_format(data[i].M_abs / N) << ','
|
||||
<< scientific_format(CV) << ',' << scientific_format(X) << '\n';
|
||||
}
|
||||
ofile.close();
|
||||
}
|
||||
10000
src/output/burn_in_time_1_0.txt
Normal file
10000
src/output/burn_in_time_2_4.txt
Normal file
1000000
src/output/pd_estimate/estimate_1_0.txt
Normal file
1000000
src/output/pd_estimate/estimate_2_4.txt
Normal file
20
src/output/phase_transition/size_100.txt
Normal file
@ -0,0 +1,20 @@
|
||||
2.1000000000e+00, -1.6430520000e+00, 7.7473400000e-01, 1.6535122358e+00, 1.7265302497e+02
|
||||
2.1100000000e+00, -1.6516480000e+00, 8.6467000000e-01, 8.7186742436e-01, 1.0421056872e+00
|
||||
2.1200000000e+00, -1.6270200000e+00, 8.0407000000e-01, 2.7887602350e+00, 8.3555593868e+01
|
||||
2.1300000000e+00, -1.5994120000e+00, 6.7194400000e-01, 4.3729133461e+00, 2.6185272143e+02
|
||||
2.1400000000e+00, -1.6217640000e+00, 8.3655000000e-01, 9.9463775002e-01, 4.2131976636e+00
|
||||
2.1500000000e+00, -1.5937360000e+00, 7.0996800000e-01, 2.4162040108e+00, 3.4357462593e+02
|
||||
2.1600000000e+00, -1.5761360000e+00, 7.3020000000e-01, 2.6656805213e+00, 1.6620343333e+02
|
||||
2.1700000000e+00, -1.5729480000e+00, 6.7936000000e-01, 1.7718118796e+00, 3.3487288848e+02
|
||||
2.1800000000e+00, -1.5582320000e+00, 6.3931200000e-01, 2.2734462082e+00, 3.9228516081e+02
|
||||
2.1900000000e+00, -1.5503080000e+00, 7.4721400000e-01, 2.0228292488e+00, 1.5073709317e+02
|
||||
2.2000000000e+00, -1.5352080000e+00, 6.2459400000e-01, 3.3548428430e+00, 3.1016489620e+02
|
||||
2.2100000000e+00, -1.5187040000e+00, 7.0442400000e-01, 2.5744935280e+00, 8.1006035403e+01
|
||||
2.2200000000e+00, -1.5132120000e+00, 6.6437400000e-01, 1.4477685577e+00, 2.0499570686e+02
|
||||
2.2300000000e+00, -1.4990000000e+00, 6.7951600000e-01, 2.6845824368e+00, 1.0561703383e+02
|
||||
2.2400000000e+00, -1.4805520000e+00, 6.8579600000e-01, 2.8442715561e+00, 4.0452682071e+01
|
||||
2.2500000000e+00, -1.4575960000e+00, 6.6534400000e-01, 1.4885641165e+00, 4.4587630507e+01
|
||||
2.2600000000e+00, -1.4503840000e+00, 6.3443200000e-01, 2.5192570757e+00, 5.8918802549e+01
|
||||
2.2700000000e+00, -1.4075120000e+00, 5.4128400000e-01, 3.7187701217e+00, 8.3216885216e+01
|
||||
2.2800000000e+00, -1.3916480000e+00, 4.2257200000e-01, 2.0701156048e+00, 1.6466588428e+02
|
||||
2.2900000000e+00, -1.3798040000e+00, 4.5941000000e-01, 1.8364165138e+00, 1.4511618297e+02
|
||||
40
src/output/phase_transition/size_20.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6625156400e+00, 8.6910133000e-01, 9.5696304357e-01, 9.4913259852e-01
|
||||
2.1075000000e+00, -1.6554401200e+00, 8.6484241000e-01, 9.8226993247e-01, 1.0178323351e+00
|
||||
2.1150000000e+00, -1.6470453600e+00, 8.5922299000e-01, 1.0221041779e+00, 1.1775457977e+00
|
||||
2.1225000000e+00, -1.6386650600e+00, 8.5492499000e-01, 1.0355690437e+00, 1.1699614838e+00
|
||||
2.1300000000e+00, -1.6306238000e+00, 8.4866520000e-01, 1.0759872577e+00, 1.4500484899e+00
|
||||
2.1375000000e+00, -1.6240600800e+00, 8.4567939000e-01, 1.0825692342e+00, 1.3974233224e+00
|
||||
2.1450000000e+00, -1.6131636800e+00, 8.3678164000e-01, 1.1422199470e+00, 1.7791537825e+00
|
||||
2.1525000000e+00, -1.6077274400e+00, 8.3640880000e-01, 1.1129383548e+00, 1.4676026170e+00
|
||||
2.1600000000e+00, -1.6000611800e+00, 8.2985937000e-01, 1.1585460611e+00, 1.8289667728e+00
|
||||
2.1675000000e+00, -1.5884657200e+00, 8.1965183000e-01, 1.2165947128e+00, 2.2642538275e+00
|
||||
2.1750000000e+00, -1.5795650400e+00, 8.1403904000e-01, 1.2330982912e+00, 2.2661363229e+00
|
||||
2.1825000000e+00, -1.5697331000e+00, 8.0542012000e-01, 1.2837252582e+00, 2.7128540296e+00
|
||||
2.1900000000e+00, -1.5630710600e+00, 8.0289440000e-01, 1.2742009541e+00, 2.4972906573e+00
|
||||
2.1975000000e+00, -1.5531626800e+00, 7.9552304000e-01, 1.3002667168e+00, 2.6933828130e+00
|
||||
2.2050000000e+00, -1.5420299000e+00, 7.8440265000e-01, 1.3613775582e+00, 3.2860629339e+00
|
||||
2.2125000000e+00, -1.5301128800e+00, 7.7433883000e-01, 1.3870305740e+00, 3.5248225816e+00
|
||||
2.2200000000e+00, -1.5199860800e+00, 7.6495144000e-01, 1.4371483651e+00, 3.9440153589e+00
|
||||
2.2275000000e+00, -1.5112876400e+00, 7.5936574000e-01, 1.4282841390e+00, 3.9059652730e+00
|
||||
2.2350000000e+00, -1.4987811400e+00, 7.4736039000e-01, 1.4805200551e+00, 4.4067690933e+00
|
||||
2.2425000000e+00, -1.4877502600e+00, 7.3644173000e-01, 1.5208932156e+00, 4.7639126447e+00
|
||||
2.2500000000e+00, -1.4775453200e+00, 7.2605359000e-01, 1.5527163375e+00, 5.1987228619e+00
|
||||
2.2575000000e+00, -1.4666540200e+00, 7.1811029000e-01, 1.5612536957e+00, 5.1929811112e+00
|
||||
2.2650000000e+00, -1.4539513600e+00, 7.0484040000e-01, 1.5723571698e+00, 5.5184202610e+00
|
||||
2.2725000000e+00, -1.4367662000e+00, 6.8174252000e-01, 1.6512021639e+00, 6.6492140328e+00
|
||||
2.2800000000e+00, -1.4294025000e+00, 6.7859838000e-01, 1.6270371494e+00, 6.4012406073e+00
|
||||
2.2875000000e+00, -1.4169279000e+00, 6.6525245000e-01, 1.6428448249e+00, 6.7543798591e+00
|
||||
2.2950000000e+00, -1.3996755800e+00, 6.4290059000e-01, 1.6663740272e+00, 7.4794676998e+00
|
||||
2.3025000000e+00, -1.3898972200e+00, 6.3332714000e-01, 1.6668693759e+00, 7.6239716203e+00
|
||||
2.3100000000e+00, -1.3765670800e+00, 6.1751829000e-01, 1.6814152554e+00, 8.0793865048e+00
|
||||
2.3175000000e+00, -1.3673885200e+00, 6.1048156000e-01, 1.6719530236e+00, 7.9834325092e+00
|
||||
2.3250000000e+00, -1.3507194000e+00, 5.8849663000e-01, 1.6540478234e+00, 8.4400616479e+00
|
||||
2.3325000000e+00, -1.3419322000e+00, 5.8003772000e-01, 1.6505290982e+00, 8.5347441419e+00
|
||||
2.3400000000e+00, -1.3301354400e+00, 5.6658683000e-01, 1.6287723907e+00, 8.6290573881e+00
|
||||
2.3475000000e+00, -1.3159556000e+00, 5.4850347000e-01, 1.6009764633e+00, 8.8155796120e+00
|
||||
2.3550000000e+00, -1.3036089400e+00, 5.3375286000e-01, 1.5907684622e+00, 8.8937461302e+00
|
||||
2.3625000000e+00, -1.2925638800e+00, 5.2118845000e-01, 1.5540934272e+00, 8.9793123448e+00
|
||||
2.3700000000e+00, -1.2796754000e+00, 5.0464912000e-01, 1.5219544044e+00, 8.9277036259e+00
|
||||
2.3775000000e+00, -1.2694211200e+00, 4.9138599000e-01, 1.4960472939e+00, 9.0412768003e+00
|
||||
2.3850000000e+00, -1.2580858000e+00, 4.8003279000e-01, 1.4819905639e+00, 8.9047058742e+00
|
||||
2.3925000000e+00, -1.2454207000e+00, 4.6279792000e-01, 1.4270988627e+00, 8.9721031463e+00
|
||||
40
src/output/phase_transition/size_40.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6622797350e+00, 8.6877407250e-01, 9.5567806651e-01, 9.8147697992e-01
|
||||
2.1075000000e+00, -1.6547305950e+00, 8.6450518000e-01, 9.9535412470e-01, 1.0304271388e+00
|
||||
2.1150000000e+00, -1.6461610400e+00, 8.5798441750e-01, 1.0352652008e+00, 1.6124922452e+00
|
||||
2.1225000000e+00, -1.6396024000e+00, 8.5557728250e-01, 1.0354923754e+00, 1.1988364979e+00
|
||||
2.1300000000e+00, -1.6316293500e+00, 8.5005824750e-01, 1.0732217395e+00, 1.4119685195e+00
|
||||
2.1375000000e+00, -1.6236286050e+00, 8.4517540750e-01, 1.0769820154e+00, 1.4710966393e+00
|
||||
2.1450000000e+00, -1.6153820150e+00, 8.3946159500e-01, 1.1271921720e+00, 1.6687002201e+00
|
||||
2.1525000000e+00, -1.6068065100e+00, 8.3363872250e-01, 1.1495976711e+00, 1.8247675553e+00
|
||||
2.1600000000e+00, -1.5978354200e+00, 8.2731076750e-01, 1.1853606459e+00, 2.0545214633e+00
|
||||
2.1675000000e+00, -1.5892344450e+00, 8.2106255750e-01, 1.2130300272e+00, 2.3787017160e+00
|
||||
2.1750000000e+00, -1.5796918500e+00, 8.1345822000e-01, 1.2545220874e+00, 2.7583825623e+00
|
||||
2.1825000000e+00, -1.5688456550e+00, 8.0330364250e-01, 1.3218301637e+00, 3.4393726593e+00
|
||||
2.1900000000e+00, -1.5609628600e+00, 7.9828227000e-01, 1.3372447866e+00, 3.5269845643e+00
|
||||
2.1975000000e+00, -1.5504653650e+00, 7.8927257750e-01, 1.3776628756e+00, 4.0468001481e+00
|
||||
2.2050000000e+00, -1.5400715600e+00, 7.7925900250e-01, 1.4439659127e+00, 4.9865313475e+00
|
||||
2.2125000000e+00, -1.5272054350e+00, 7.6240370500e-01, 1.5571481687e+00, 7.9591108355e+00
|
||||
2.2200000000e+00, -1.5173578050e+00, 7.5578622500e-01, 1.5363018077e+00, 6.6462064867e+00
|
||||
2.2275000000e+00, -1.5055947800e+00, 7.4214450000e-01, 1.6226908081e+00, 9.1970975406e+00
|
||||
2.2350000000e+00, -1.4915661700e+00, 7.2487094000e-01, 1.6677105232e+00, 1.0608417150e+01
|
||||
2.2425000000e+00, -1.4789497150e+00, 7.0510204750e-01, 1.7972172744e+00, 1.3850190623e+01
|
||||
2.2500000000e+00, -1.4653741350e+00, 6.8869280000e-01, 1.8388319480e+00, 1.4921830171e+01
|
||||
2.2575000000e+00, -1.4528484650e+00, 6.7231492250e-01, 1.8477513072e+00, 1.6530581320e+01
|
||||
2.2650000000e+00, -1.4402261650e+00, 6.5936857000e-01, 1.8590357068e+00, 1.6063067017e+01
|
||||
2.2725000000e+00, -1.4222563800e+00, 6.2293262000e-01, 1.9992421791e+00, 2.1840352266e+01
|
||||
2.2800000000e+00, -1.4063347400e+00, 5.9406071750e-01, 1.9987254060e+00, 2.4950922905e+01
|
||||
2.2875000000e+00, -1.3921083000e+00, 5.7001746250e-01, 1.9905529154e+00, 2.6920791872e+01
|
||||
2.2950000000e+00, -1.3772602300e+00, 5.4192346250e-01, 2.0345936571e+00, 2.9461147831e+01
|
||||
2.3025000000e+00, -1.3592291000e+00, 5.0487428250e-01, 2.0080249573e+00, 3.1399705871e+01
|
||||
2.3100000000e+00, -1.3468006600e+00, 4.8679404500e-01, 1.9730349202e+00, 3.0775650777e+01
|
||||
2.3175000000e+00, -1.3299259700e+00, 4.5233827000e-01, 1.8829556161e+00, 3.1147148449e+01
|
||||
2.3250000000e+00, -1.3214973550e+00, 4.4813110500e-01, 1.8562140409e+00, 2.9824762701e+01
|
||||
2.3325000000e+00, -1.3084303850e+00, 4.2212242000e-01, 1.7521801514e+00, 2.9896121339e+01
|
||||
2.3400000000e+00, -1.2917741050e+00, 3.8334075250e-01, 1.6829510451e+00, 2.9354634676e+01
|
||||
2.3475000000e+00, -1.2818705700e+00, 3.7399742250e-01, 1.6087852604e+00, 2.8047210836e+01
|
||||
2.3550000000e+00, -1.2669429100e+00, 3.3850521000e-01, 1.5316803298e+00, 2.7053230647e+01
|
||||
2.3625000000e+00, -1.2598714700e+00, 3.3718502250e-01, 1.5074030363e+00, 2.6352567952e+01
|
||||
2.3700000000e+00, -1.2463587450e+00, 3.0685811250e-01, 1.4058337089e+00, 2.4345645377e+01
|
||||
2.3775000000e+00, -1.2369106000e+00, 2.9851349500e-01, 1.3690730713e+00, 2.3087640376e+01
|
||||
2.3850000000e+00, -1.2253778200e+00, 2.8001894250e-01, 1.3225881964e+00, 2.1903217225e+01
|
||||
2.3925000000e+00, -1.2169469200e+00, 2.6822913000e-01, 1.2553704384e+00, 1.9769545898e+01
|
||||
40
src/output/phase_transition/size_60.txt
Normal file
@ -0,0 +1,40 @@
|
||||
2.1000000000e+00, -1.6621962911e+00, 8.6890925778e-01, 9.5361152667e-01, 9.6223269193e-01
|
||||
2.1075000000e+00, -1.6547459578e+00, 8.6449425444e-01, 9.8692347472e-01, 1.0104256857e+00
|
||||
2.1150000000e+00, -1.6475410489e+00, 8.6023612667e-01, 1.0118054584e+00, 1.1740863563e+00
|
||||
2.1225000000e+00, -1.6400448356e+00, 8.5576667556e-01, 1.0350543921e+00, 1.2036969150e+00
|
||||
2.1300000000e+00, -1.6319048667e+00, 8.5070053556e-01, 1.0622139632e+00, 1.2823294407e+00
|
||||
2.1375000000e+00, -1.6235323867e+00, 8.4513149333e-01, 1.0872419951e+00, 1.4795693530e+00
|
||||
2.1450000000e+00, -1.6149848378e+00, 8.3908183222e-01, 1.1321425521e+00, 1.7639898731e+00
|
||||
2.1525000000e+00, -1.6067640178e+00, 8.3358287667e-01, 1.1574935239e+00, 1.9329959753e+00
|
||||
2.1600000000e+00, -1.5981387822e+00, 8.2712448667e-01, 1.1842116764e+00, 2.2857671701e+00
|
||||
2.1675000000e+00, -1.5887297267e+00, 8.2039500778e-01, 1.2250102668e+00, 2.3216363394e+00
|
||||
2.1750000000e+00, -1.5792858200e+00, 8.1215292667e-01, 1.2809102889e+00, 3.2976581364e+00
|
||||
2.1825000000e+00, -1.5698999178e+00, 8.0543515444e-01, 1.2897499082e+00, 3.0689600517e+00
|
||||
2.1900000000e+00, -1.5595909889e+00, 7.9334455889e-01, 1.4022144335e+00, 7.1916263997e+00
|
||||
2.1975000000e+00, -1.5500973267e+00, 7.8910716778e-01, 1.3834378075e+00, 3.9131182050e+00
|
||||
2.2050000000e+00, -1.5389720533e+00, 7.7785239556e-01, 1.4395003068e+00, 4.7871676535e+00
|
||||
2.2125000000e+00, -1.5274289600e+00, 7.6295899222e-01, 1.5640821055e+00, 8.4400925392e+00
|
||||
2.2200000000e+00, -1.5169899867e+00, 7.5402749778e-01, 1.5893465700e+00, 8.6577275955e+00
|
||||
2.2275000000e+00, -1.5033868644e+00, 7.3668809111e-01, 1.6686859867e+00, 1.1255544331e+01
|
||||
2.2350000000e+00, -1.4932659333e+00, 7.2855027111e-01, 1.6737154831e+00, 1.0762639719e+01
|
||||
2.2425000000e+00, -1.4753668311e+00, 6.8912228778e-01, 1.9655435096e+00, 2.7405406539e+01
|
||||
2.2500000000e+00, -1.4625924333e+00, 6.7169439222e-01, 1.9646823861e+00, 2.8594737606e+01
|
||||
2.2575000000e+00, -1.4476503156e+00, 6.4951994444e-01, 2.0489553518e+00, 3.1319346151e+01
|
||||
2.2650000000e+00, -1.4323468422e+00, 6.1730053444e-01, 2.1991556061e+00, 4.1161024971e+01
|
||||
2.2725000000e+00, -1.4162150000e+00, 5.8035393778e-01, 2.2440905034e+00, 5.0193062424e+01
|
||||
2.2800000000e+00, -1.3990341289e+00, 5.4783150000e-01, 2.1855676664e+00, 5.0667766539e+01
|
||||
2.2875000000e+00, -1.3832335156e+00, 5.0997404889e-01, 2.1912983169e+00, 5.7571542597e+01
|
||||
2.2950000000e+00, -1.3675628622e+00, 4.7549316444e-01, 2.1749166435e+00, 6.0859477858e+01
|
||||
2.3025000000e+00, -1.3532294311e+00, 4.4664324778e-01, 2.0402963575e+00, 5.7174910866e+01
|
||||
2.3100000000e+00, -1.3374246667e+00, 4.0357828111e-01, 1.9765530124e+00, 6.1530521314e+01
|
||||
2.3175000000e+00, -1.3249220933e+00, 3.8342978556e-01, 1.9076619557e+00, 5.7044773510e+01
|
||||
2.3250000000e+00, -1.3111594378e+00, 3.4732440778e-01, 1.7700432455e+00, 5.5185839387e+01
|
||||
2.3325000000e+00, -1.2936005867e+00, 2.9724400889e-01, 1.6170480838e+00, 4.8715166578e+01
|
||||
2.3400000000e+00, -1.2828922378e+00, 2.7810549556e-01, 1.5751237442e+00, 4.7849906011e+01
|
||||
2.3475000000e+00, -1.2724545578e+00, 2.6550136111e-01, 1.4857345621e+00, 4.2928035886e+01
|
||||
2.3550000000e+00, -1.2628247400e+00, 2.5449181778e-01, 1.4571388750e+00, 4.0233429281e+01
|
||||
2.3625000000e+00, -1.2515646000e+00, 2.3003589778e-01, 1.3609546182e+00, 3.5246421247e+01
|
||||
2.3700000000e+00, -1.2421973711e+00, 2.1779594556e-01, 1.3295975991e+00, 3.3294841600e+01
|
||||
2.3775000000e+00, -1.2313705889e+00, 1.9896996444e-01, 1.2685761823e+00, 2.9499572063e+01
|
||||
2.3850000000e+00, -1.2223373556e+00, 1.8700736333e-01, 1.2113320606e+00, 2.6271112534e+01
|
||||
2.3925000000e+00, -1.2134457600e+00, 1.7935795333e-01, 1.1651102072e+00, 2.3971087154e+01
|
||||
0
src/output/phase_transition/size_80.txt
Normal file
1292
src/output/test_2x2.txt
Normal file
108
src/phase_transition_mpi.cpp
Normal file
@ -0,0 +1,108 @@
|
||||
/** @file phase_transition_mpi.cpp
|
||||
*
|
||||
* @author Cory Alexander Balaton (coryab)
|
||||
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
|
||||
*
|
||||
* @version 1.0
|
||||
*
|
||||
* @brief Sweep over different temperatures and generate data.
|
||||
*
|
||||
* @bug No known bugs
|
||||
* */
|
||||
#include "data_type.hpp"
|
||||
#include "monte_carlo.hpp"
|
||||
#include "utils.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <iterator>
|
||||
#include <mpi.h>
|
||||
|
||||
/** @brief The main function*/
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
double start = 1., end = 3.;
|
||||
uint points = 1000, L = 20, N;
|
||||
double dt = (end - start) / points;
|
||||
uint cycles = 10000;
|
||||
N = L * L;
|
||||
std::ofstream ofile;
|
||||
|
||||
data_t data[points];
|
||||
|
||||
// MPI stuff
|
||||
int rank, cluster_size;
|
||||
|
||||
// Initialize MPI
|
||||
MPI_Init(&argc, &argv);
|
||||
|
||||
// Get the cluster size and rank
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &cluster_size);
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
|
||||
uint remainder = points % cluster_size;
|
||||
double i_start;
|
||||
uint i_points;
|
||||
// The last
|
||||
if (rank < remainder) {
|
||||
i_points = points / cluster_size + 1;
|
||||
i_start = start + dt * i_points * rank;
|
||||
}
|
||||
else {
|
||||
i_points = points / cluster_size;
|
||||
i_start = start + dt * (i_points * rank + remainder);
|
||||
}
|
||||
|
||||
data_t i_data[i_points];
|
||||
std::cout << "Rank " << rank << ": " << i_points << ',' << i_start << '\n';
|
||||
|
||||
for (size_t i = 0; i < i_points; i++) {
|
||||
monte_carlo_serial(i_data[i], L, i_start + dt * i, cycles);
|
||||
}
|
||||
|
||||
if (rank == 0) {
|
||||
std::copy_n(i_data, i_points, data);
|
||||
for (size_t i = 1; i < cluster_size; i++) {
|
||||
if (rank < remainder) {
|
||||
MPI_Recv((void *)i_data,
|
||||
sizeof(data_t) * (points / cluster_size + 1), MPI_CHAR,
|
||||
i, MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
|
||||
std::copy_n(i_data, points / cluster_size + 1,
|
||||
data + (points / cluster_size) * i);
|
||||
}
|
||||
else {
|
||||
MPI_Recv((void *)i_data,
|
||||
sizeof(data_t) * (points / cluster_size), MPI_CHAR, i,
|
||||
MPI_ANY_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
|
||||
std::copy_n(i_data, points / cluster_size,
|
||||
data + (points / cluster_size) * i + remainder);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
MPI_Send(i_data, i_points * sizeof(data_t), MPI_CHAR, 0, rank,
|
||||
MPI_COMM_WORLD);
|
||||
}
|
||||
|
||||
MPI_Finalize();
|
||||
|
||||
std::string outfile = "output/phase_transition/size_20.txt";
|
||||
utils::mkpath(utils::dirname(outfile));
|
||||
ofile.open(outfile);
|
||||
|
||||
double temp, CV, X;
|
||||
|
||||
using utils::scientific_format;
|
||||
for (size_t i = 0; i < points; i++) {
|
||||
temp = start + dt * i;
|
||||
CV = (data[i].E2 - data[i].E * data[i].E) / (N * temp * temp);
|
||||
X = (data[i].M2 - data[i].M_abs * data[i].M_abs) / (N * temp);
|
||||
|
||||
ofile << scientific_format(temp) << ','
|
||||
<< scientific_format(data[i].E / N) << ','
|
||||
<< scientific_format(data[i].M_abs / N) << ','
|
||||
<< scientific_format(CV) << ',' << scientific_format(X) << '\n';
|
||||
}
|
||||
ofile.close();
|
||||
}
|
||||
48
src/scripts/2x2_analysis.py
Normal file
@ -0,0 +1,48 @@
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
|
||||
def plot_from_file():
|
||||
figure1, ax1 = plt.subplots()
|
||||
figure2, ax2 = plt.subplots()
|
||||
figure3, ax3 = plt.subplots()
|
||||
figure4, ax4 = plt.subplots()
|
||||
|
||||
label = "something"
|
||||
with open("output/test_2x2.txt") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
t = []
|
||||
energy = []
|
||||
magnetization = []
|
||||
CV = []
|
||||
X = []
|
||||
for line in lines:
|
||||
items = line.strip().split(",")
|
||||
t.append(int(items[0]))
|
||||
energy.append(float(items[1]))
|
||||
magnetization.append(float(items[2]))
|
||||
CV.append(float(items[3]))
|
||||
X.append(float(items[4]))
|
||||
|
||||
ax1.plot(t, energy, label=f"<epsilon> {label}")
|
||||
ax2.plot(t, magnetization, label=f"<|m|> {label}")
|
||||
ax3.plot(t, CV, label=f"CV {label}")
|
||||
ax4.plot(t, X, label=f"X {label}")
|
||||
|
||||
# ax1.set_yscale("log")
|
||||
# ax2.set_yscale("log")
|
||||
|
||||
figure1.legend()
|
||||
figure1.savefig("../latex/images/2x2_energy.pdf")
|
||||
figure2.legend()
|
||||
figure2.savefig("../latex/images/2x2_magnetization.pdf")
|
||||
figure3.legend()
|
||||
figure3.savefig("../latex/images/2x2_heat_capacity.pdf")
|
||||
figure4.legend()
|
||||
figure4.savefig("../latex/images/2x2_susceptibility.pdf")
|
||||
|
||||
def main():
|
||||
plot_from_file()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
40
src/scripts/burn_in_time.py
Normal file
@ -0,0 +1,40 @@
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def plot_from_file():
|
||||
files = [
|
||||
"output/burn_in_time_1_0.txt",
|
||||
"output/burn_in_time_2_4.txt",
|
||||
]
|
||||
labels = [
|
||||
"1.0",
|
||||
"2.4"
|
||||
]
|
||||
figure1, ax1 = plt.subplots()
|
||||
figure2, ax2 = plt.subplots()
|
||||
|
||||
for infile, label in zip(files, labels):
|
||||
with open(infile) as f:
|
||||
lines = f.readlines()
|
||||
|
||||
t = []
|
||||
energy = []
|
||||
magnetization = []
|
||||
for line in lines:
|
||||
items = line.strip().split(",")
|
||||
t.append(int(items[0]))
|
||||
energy.append(float(items[1]))
|
||||
magnetization.append(float(items[5]))
|
||||
|
||||
ax1.plot(t, energy, label=f"<epsilon> {label}")
|
||||
ax2.plot(t, magnetization, label=f"<|m|> {label}")
|
||||
|
||||
figure1.legend()
|
||||
figure1.savefig("../latex/images/burn_in_time_energy.pdf")
|
||||
figure2.legend()
|
||||
figure2.savefig("../latex/images/burn_in_time_magnetization.pdf")
|
||||
|
||||
def main():
|
||||
plot_from_file()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
24
src/scripts/pd_estimate.py
Normal file
@ -0,0 +1,24 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
from pathlib import Path
|
||||
|
||||
def plot(infile, outfile):
|
||||
|
||||
figure1, ax1 = plt.subplots()
|
||||
arr = []
|
||||
with open(infile) as f:
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
vals = line.strip().split(",")
|
||||
arr.append(float(vals[0]))
|
||||
|
||||
ax1.hist(arr, np.arange(min(arr), max(arr) + .02, .02), density=True)
|
||||
|
||||
figure1.savefig(outfile)
|
||||
|
||||
if __name__ == "__main__":
|
||||
plot("output/pd_estimate/estimate_1_0.txt", "../latex/images/pd_estimate_1_0.pdf")
|
||||
plot("output/pd_estimate/estimate_2_4.txt", "../latex/images/pd_estimate_2_4.pdf")
|
||||
|
||||
|
||||
|
||||
61
src/scripts/phase_transition.py
Normal file
@ -0,0 +1,61 @@
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
def plot_phase_transition(indir, outdir):
|
||||
files = [
|
||||
"size_20.txt",
|
||||
"size_40.txt",
|
||||
"size_60.txt",
|
||||
"size_80.txt",
|
||||
"size_100.txt",
|
||||
]
|
||||
labels = [
|
||||
"L = 20",
|
||||
"L = 40",
|
||||
"L = 60",
|
||||
"L = 80",
|
||||
"L = 100",
|
||||
]
|
||||
|
||||
figure1, ax1 = plt.subplots()
|
||||
figure2, ax2 = plt.subplots()
|
||||
figure3, ax3 = plt.subplots()
|
||||
figure4, ax4 = plt.subplots()
|
||||
|
||||
for file, label in zip(files, labels):
|
||||
t = []
|
||||
e = []
|
||||
m = []
|
||||
CV = []
|
||||
X = []
|
||||
|
||||
with open(Path(indir, file)) as f:
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
l = line.strip().split(",")
|
||||
t.append(float(l[0]))
|
||||
e.append(float(l[1]))
|
||||
m.append(float(l[2]))
|
||||
CV.append(float(l[3]))
|
||||
X.append(float(l[4]))
|
||||
|
||||
ax1.plot(t,e,label=label)
|
||||
ax2.plot(t,m,label=label)
|
||||
ax3.plot(t,CV, label=label)
|
||||
ax4.plot(t,X, label=label)
|
||||
|
||||
figure1.legend()
|
||||
figure2.legend()
|
||||
figure3.legend()
|
||||
figure4.legend()
|
||||
|
||||
figure1.savefig(Path(outdir, "energy.pdf"))
|
||||
figure2.savefig(Path(outdir, "magnetization.pdf"))
|
||||
figure3.savefig(Path(outdir, "heat_capacity.pdf"))
|
||||
figure4.savefig(Path(outdir, "susceptibility.pdf"))
|
||||
|
||||
if __name__ == "__main__":
|
||||
plot_phase_transition("fox_output/phase_transition/10M/", "../latex/images/phase_transition/wide/10M/")
|
||||
plot_phase_transition("fox_output/phase_transition/1M/", "../latex/images/phase_transition/wide/1M/")
|
||||
plot_phase_transition("fox_output/phase_transition/narrow/10M/", "../latex/images/phase_transition/narrow/10M/")
|
||||