From 0c80cea7094f57fb456895631d84d1b2d99f653e Mon Sep 17 00:00:00 2001 From: Pascal Engeler <engelerp@phys.ethz.ch> Date: Tue, 21 Jan 2020 10:29:38 +0100 Subject: [PATCH] How to implement a new project --- README.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0f18324..04e59e0 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,24 @@ contents is the following: ## Implementing a new project In order to implement a new project, follow these steps: -1. Identify force - - $d^2_t x = F$ +1. Identify force on a single drum + - Depends on static parameters (w, m, a, etc.) and dynamic parameters and variables (x, v, etc.). + - 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`. +4. Write custom `Grabber` that extracts the relevant data (inspiration in `include/grabber.hpp`) +3. Write custom child of `Force` to calculate the force. +4. Write custom children of `Coupler` and `Driver` to correctly update the drive and couplings. +5. If desired, write a custom child of `LatticeGenerator` to generate a custom lattice, +or use the generator `projects/braidingTightBinding/include/rbcomb_generator_braid.hpp` to +create the RBComb. +6. If desired, write a child of `MatrixElementCalculator` to calculate matrix elements +for the dynamic matrix. +7. Check the unit tests (`unit_tests`) or other projects to see how a `main.cpp` could be +constructed. + + <a name="Classes"></a> ## Classes -- GitLab