How to contribute#
I welcome contributions! To get started:
Fork the repository on GitHub and clone it locally.
Create a new branch for your changes.
Make your modifications, ensuring they align with the project’s goals.
Push the branch to your fork on GitHub.
Submit a pull request with a detailed description of your changes.
You can find the repository here: shaussler/TheoreticalUniverse
Once your pull request is reviewed and accepted, an automated pipeline will run, and your contribution will be deployed.
Running calculations#
Warning
This is not used anymore, I found a way to simplify calculations with a permutation operator. Also the work to be put in writing symbolic computation is more than just perform the calculations.
Some of the calculations were performed using symbolic computation software. I found only one library capable of performing symbolic calculations with differential forms: pycartan. However, this library has not been updated since 2017 and is limited to Euclidean geometries.
To extend its functionality to Minkowski space, I monkey-patched the library. You can install all required dependencies by running:
# Install build dependencies
# --------------------------
pip install wheel setuptools
# Install pycartan and dependencies
# ---------------------------------
pip install numpy sympy scipy
pip install symbtools
pip install pycartan
# Build theoretical_python
# ------------------------
python setup.py bdist_wheel
# Install theoretical_python
# --------------------------
pip install dist/theoretical_python*.whl
Build locally#
The site is served on localhost:8000
. From the
TheoreticalUniverse/theoretical_universe
directory, run:
make clean
sphinx-build ./ _build/html/
python3 -m http.server 8000 --directory _build/html/
To build in parallel:
sphinx-build -j 4 ./ _build/html/
To automaticall update on modifications:
sphinx-autobuild -j 4 ./ _build/html/
Check for broken links#
sphinx-build ./ _build/html/ -b linkcheck
Hiding content under construction#
Since I am working from my mobile phone, the sphinx configuration checks if the
environment variable TERMUX_VERSION
is set in order to determine whether
draft content should be shown. To hide content, use:
.. ifconfig:: draft in ('yes')
. }}}
Dropdown#
You can keep a dropdown admonition while working by setting the :class:
to
toggle-shown
.
.. admonition:: All Calculation Steps
:class: dropdown,toggle-shown
vim cheatsheet#
Action |
Command |
---|---|
Select previous select |
|
Fold to 80 characters |
|
Fold all |
|
neovim configuration#
I use neovim on Android termux and you might find my configuration helpfull, should you want to correct, modify or add to this serie of articles. To install neovim plugins:
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
My configuration is included in the repository:
" Set color scheme to 'desert'
" ----------------------------
colorscheme desert
" Set textwidth to 100 characters
" -------------------------------
" set textwidth=100
" Tab settings
" ------------
set tabstop=2
set softtabstop=0
set shiftwidth=2
set expandtab
" Set Android system clipboard
set clipboard+=unnamedplus
" Line numbering
set number
" Show white spaces
set list
" Mouse support
set mouse=a
" Backspace behavior
set backspace=2
" Encoding
set encoding=utf-8
" Color column
set colorcolumn=4,81,101,121
highlight ColorColumn guibg=green
highlight ColorColumn ctermbg=235 guibg=#2c2d27
highlight ColorColumn ctermbg=237
" Use vim-plug as the plugin manager
" ----------------------------------
" call plug#begin('~/.vim/plugged')
"
" " Add the reStructuredText syntax highlighting plugin
" " ---------------------------------------------------
"
" Plug 'marshallward/vim-restructuredtext'
" Plug 'habamax/vim-rst'
"
" " Linting with ALE
" Plug 'dense-analysis/ale'
"
" call plug#end()
"
" let g:ale_linters = {'python': ['flake8']}
" let g:ale_fixers = {'python': ['autopep8']}
" let g:ale_python_flake8_executable = 'flake8'
" let g:ale_fix_on_save = 1
" Set custom fold markers
" -----------------------
set foldmethod=marker
set foldmarker={{{,}}}
" Enable filetype plugins and indentation
" ---------------------------------------
filetype plugin indent on
" Enable syntax highlighting
" --------------------------
syntax on
" Auto-apply filetype and syntax highlighting for .rst files
" ----------------------------------------------------------
" autocmd BufRead,BufNewFile *.rst set filetype=rst
" Shortcuts to UTF-8 characters
" -----------------------------
imap \alpha α
imap \beta β
imap \gamma γ
imap \delta δ
imap \epsilon ε
imap \zeta ζ
imap \eta η
imap \theta θ
imap \iota ι
imap \kappa κ
imap \lambda λ
imap \mu μ
imap \nu ν
imap \xi ξ
imap \omicron ο
imap \pi π
imap \rho ρ
imap \sigma σ
imap \tau τ
imap \upsilon υ
imap \phi φ
imap \chi χ
imap \psi ψ
imap \omega ω
imap \Pi Π
imap \Delta Δ
imap \Lambda Λ
imap \nabla ∇
imap \laplacian ∆
imap \partial ∂
imap \star ⋆
imap \wedge ∧
imap \vee ∨
imap \otimes ⊗
imap \times ⨯
imap \flat ♭
imap \sharp ♯
imap \rightarrow →
To install in vim:
:PlugInstall