How to contribute#

I welcome contributions! To get started:

  1. Fork the repository on GitHub and clone it locally.

  2. Create a new branch for your changes.

  3. Make your modifications, ensuring they align with the project’s goals.

  4. Push the branch to your fork on GitHub.

  5. 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/

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')

. }}}

vim cheatsheet#

Action

Command

Select previous select

gv

Fold to 80 characters

gq

Fold all

zm

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