From 935d398134439611529aba06477a30953d9f8486 Mon Sep 17 00:00:00 2001 From: Pascal Engeler <engelerp@phys.ethz.ch> Date: Wed, 22 Jan 2020 16:30:23 +0100 Subject: [PATCH] More project creation information --- README.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3000615..6c22611 100644 --- a/README.md +++ b/README.md @@ -57,23 +57,26 @@ In order to implement a new project, follow these steps: - Coupling and driving parameters are dynamic. 2. Write custom versions of classes `DrumParameters` (everything that is static) and `DrumVariables` (everything that is dynamic) to accomodate these. Inspiration in `lib/drum_variables.hpp` and -`lib/drum_parameters.hpp`. -3. Write custom `Grabber` that extracts the relevant data (inspiration in `include/grabber.hpp`) -4. Write custom child of `Force` to calculate the force. +`lib/drum_parameters.hpp`. Take into account the information provided [here](#drumparams) and [here](#drumvars). +3. Write custom `Grabber` that extracts the relevant data (inspiration in `include/grabber.hpp`). +Take into account what's stated [here](#grabber). +4. Write custom child of `Force` to calculate the force. For more information, have a look [here](#force). 5. Write custom children of `Coupler` and `Driver` to correctly update the drive and couplings. -6. If desired, write a custom child of `LatticeGenerator` to generate a custom lattice, +Remember to read [this](#coupler) and [this](#driver) +6. If desired, write a custom child of `LatticeGenerator` to generate a custom lattice (have a look [here](#latticegenerator)), or use the generator `projects/braidingTightBinding/include/rbcomb_generator_braid.hpp` to -create the RBComb. +create the RBComb. When working with lattices, always keep in mind the [neighbour ordering convention](#noc) +and the [inexistent neighbour convention](#inc). 7. If desired, write a child of `MatrixElementCalculator` to calculate matrix elements -for the dynamic matrix. -8. Check the unit tests (`unit_tests`) or other projects to see how a `main.cpp` could be +for the dynamic matrix. See more information [here](#mec). +8. Check the [unit tests](#UT) or other projects to see how a `main.cpp` could be constructed. Hints for organizing, building and running simulations 1. Use a Makefile. - The framework should be compiled with c++ 2a. - The `Diagonalizer` requires LAPACK to be linked. - - Get inspiration from other projects. + - Get inspiration from other projects and [unit tests](#UT). 2. Organize executables in `bin` 3. Store data and plots in subfolders of `results` -- GitLab